vertex_shader_v4.glsl Full Listing#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #version 330
// Time since burst start
uniform float time;
// (x, y) position passed in
in vec2 in_pos;
// Velocity of particle
in vec2 in_vel;
// Color of particle
in vec3 in_color;
// Fade rate
in float in_fade_rate;
// Output the color to the fragment shader
out vec4 color;
void main() {
// Calculate alpha based on time and fade rate
float alpha = 1.0 - (in_fade_rate * time);
if(alpha < 0.0) alpha = 0;
// Set the RGBA color
color = vec4(in_color[0], in_color[1], in_color[2], alpha);
// Calculate a new position
vec2 new_pos = in_pos + (time * in_vel);
// Set the position. (x, y, z, w)
gl_Position = vec4(new_pos, 0.0, 1);
}
|