19 lines
537 B
GLSL

#version 330 core
layout(location = 0) in vec3 aPos; // Position
layout(location = 1) in vec4 aColor; // Color (RGBA)
layout(location = 2) in float aLife; // Life
out vec4 vColor;
void main() {
float alpha = aLife;
if (aLife > 0.0) {
alpha = aLife / 10.0; // Fade mortal particles
} else if (aLife < 0.0) {
alpha = 1.0; // Eternal particles are fully opaque
}
vColor = vec4(aColor.rgb, aColor.a * alpha);
gl_Position = vec4(aPos, 1.0);
gl_PointSize = 10.0; // Make them big enough to see!
}