Cleanup: replace attrib w/ attr
[blender.git] / source / blender / gpu / shaders / gpu_shader_instance_screen_aligned_vert.glsl
index 429b648ca53ae83d048600bbbc655c6d79177632..17799281f325aa8e2195e2493cf6853a9cca9874 100644 (file)
@@ -1,11 +1,14 @@
 
 uniform mat4 ViewProjectionMatrix;
 
 uniform mat4 ViewProjectionMatrix;
+#ifdef USE_WORLD_CLIP_PLANES
+uniform mat4 ModelMatrix;
+#endif
 uniform vec3 screen_vecs[2];
 
 uniform vec3 screen_vecs[2];
 
-/* ---- Instantiated Attribs ---- */
+/* ---- Instantiated Attrs ---- */
 in vec3 pos; /* using Z as axis id */
 
 in vec3 pos; /* using Z as axis id */
 
-/* ---- Per instance Attribs ---- */
+/* ---- Per instance Attrs ---- */
 in mat4 InstanceModelMatrix;
 in vec3 color;
 in float size;
 in mat4 InstanceModelMatrix;
 in vec3 color;
 in float size;
@@ -27,6 +30,11 @@ void main()
 #endif
 
        vec3 screen_pos = screen_vecs[0].xyz * pos.x + screen_vecs[1].xyz * pos.y;
 #endif
 
        vec3 screen_pos = screen_vecs[0].xyz * pos.x + screen_vecs[1].xyz * pos.y;
-       gl_Position = ViewProjectionMatrix * (InstanceModelMatrix * vec4(offset, 1.0) + vec4(screen_pos * size, 0.0));
+       vec4 pos_4d = InstanceModelMatrix * vec4(offset, 1.0) + vec4(screen_pos * size, 0.0);
+       gl_Position = ViewProjectionMatrix * pos_4d;
        finalColor = vec4(color, 1.0);
        finalColor = vec4(color, 1.0);
+
+#ifdef USE_WORLD_CLIP_PLANES
+       world_clip_planes_calc_clip_distance((ModelMatrix * pos_4d).xyz);
+#endif
 }
 }