aboutsummaryrefslogtreecommitdiff
path: root/deps/raylib/examples/others/resources/shaders/glsl330/point_particle.vs
blob: e38c8b5a68475e5487f9d4908e21d8ef25c0a803 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#version 330

// Input vertex attributes
in vec3 vertexPosition;

// Input uniform values
uniform mat4 mvp;
uniform float currentTime;

// NOTE: Add here your custom variables

void main()
{
    // Unpack data from vertexPosition
    vec2  pos    = vertexPosition.xy;
    float period = vertexPosition.z;

    // Calculate final vertex position (jiggle it around a bit horizontally)
    pos += vec2(100, 0) * sin(period * currentTime);
    gl_Position = mvp * vec4(pos, 0.0, 1.0);

    // Calculate the screen space size of this particle (also vary it over time)
    gl_PointSize = 10 - 5 * abs(sin(period * currentTime));
}