Merge branch 'master' into blender2.8
[blender.git] / source / blender / draw / modes / shaders / object_particle_dot_vert.glsl
1
2 uniform mat4 ModelViewMatrix;
3 uniform mat4 ProjectionMatrix;
4 uniform float pixel_size;
5 uniform float size;
6
7 in vec3 pos;
8 in float val;
9
10 out vec4 radii;
11 flat out float finalVal;
12
13 void main() {
14         gl_Position = ModelViewMatrix * vec4(pos, 1.0);
15
16         float psize = (ProjectionMatrix[3][3] == 0.0) ? (size / (-gl_Position.z * pixel_size)) : (size / pixel_size);
17
18         gl_PointSize = psize;
19
20         // calculate concentric radii in pixels
21         float radius = 0.5 * psize;
22
23         // start at the outside and progress toward the center
24         radii[0] = radius;
25         radii[1] = radius - 1.0;
26         radii[2] = radius - 1.0;
27         radii[3] = radius - 2.0;
28
29         // convert to PointCoord units
30         radii /= psize;
31
32         gl_Position = ProjectionMatrix * gl_Position;
33
34         finalVal = val;
35 }