b27a4bba4caa804ae1b71f4763d34c44d38b000c
[blender.git] / source / blender / draw / modes / shaders / edit_mesh_overlay_facedot_vert.glsl
1
2 uniform mat4 ModelViewProjectionMatrix;
3
4 in vec3 pos;
5 in vec4 norAndFlag;
6
7 flat out int isSelected;
8
9 #ifdef VERTEX_FACING
10 uniform mat4 ProjectionMatrix;
11 uniform mat4 ModelViewMatrix;
12 uniform mat3 NormalMatrix;
13 uniform vec3 eye;
14
15 in vec3 vnor;
16 out float facing;
17 #endif
18
19 void main()
20 {
21         gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0);
22         /* Bias Facedot Z position in clipspace. */
23         gl_Position.z -= 0.0002;
24         gl_PointSize = sizeFaceDot;
25         isSelected = int(norAndFlag.w);
26 #ifdef VERTEX_FACING
27         vec3 view_normal = normalize(NormalMatrix * norAndFlag.xyz);
28         vec3 view_vec = (ProjectionMatrix[3][3] == 0.0)
29                 ? normalize((ModelViewMatrix * vec4(pos, 1.0)).xyz)
30                 : vec3(0.0, 0.0, 1.0);
31         facing = dot(view_vec, view_normal);
32 #endif
33 }