Cleanup: Clarify alloc comment text
[blender.git] / source / blender / gpu / shaders / gpu_shader_instance_screen_aligned_vert.glsl
1
2 uniform mat4 ViewProjectionMatrix;
3 #ifdef USE_WORLD_CLIP_PLANES
4 uniform mat4 ModelMatrix;
5 #endif
6 uniform vec3 screen_vecs[2];
7
8 /* ---- Instantiated Attrs ---- */
9 in vec3 pos; /* using Z as axis id */
10
11 /* ---- Per instance Attrs ---- */
12 in mat4 InstanceModelMatrix;
13 in vec3 color;
14 in float size;
15
16 flat out vec4 finalColor;
17
18 void main()
19 {
20   vec3 offset = vec3(0.0);
21
22 #ifdef AXIS_NAME
23   if (pos.z == 0.0) {
24     offset = vec3(1.125, 0.0, 0.0);
25   }
26   else if (pos.z == 1.0) {
27     offset = vec3(0.0, 1.125, 0.0);
28   }
29   else {
30     offset = vec3(0.0, 0.0, 1.125);
31   }
32   offset *= size;
33 #endif
34
35   vec3 screen_pos = screen_vecs[0].xyz * pos.x + screen_vecs[1].xyz * pos.y;
36   vec4 pos_4d = InstanceModelMatrix * vec4(offset, 1.0) + vec4(screen_pos * size, 0.0);
37   gl_Position = ViewProjectionMatrix * pos_4d;
38   finalColor = vec4(color, 1.0);
39
40 #ifdef USE_WORLD_CLIP_PLANES
41   world_clip_planes_calc_clip_distance((ModelMatrix * pos_4d).xyz);
42 #endif
43 }