Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2019-05-14 01:48:17 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-05-14 11:57:04 +0300
commit20421ef9528c562a39b92e18d3e1f858df228953 (patch)
tree78111ea4d0873b7765ee65b22172379f231dbf6f /source/blender
parent016fc7f0c238fae9904dd6f0e48bec3a06b691e6 (diff)
Cleanup: DRW: Move ModelMatrix declaration to common_view_lib
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/draw/engines/eevee/shaders/lit_surface_vert.glsl5
-rw-r--r--source/blender/draw/engines/eevee/shaders/prepass_vert.glsl3
-rw-r--r--source/blender/draw/engines/eevee/shaders/shadow_vert.glsl4
-rw-r--r--source/blender/draw/engines/gpencil/shaders/gpencil_edit_point_vert.glsl1
-rw-r--r--source/blender/draw/engines/gpencil/shaders/gpencil_fill_vert.glsl1
-rw-r--r--source/blender/draw/engines/gpencil/shaders/gpencil_point_vert.glsl2
-rw-r--r--source/blender/draw/engines/gpencil/shaders/gpencil_stroke_vert.glsl1
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl2
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_shadow_vert.glsl2
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl3
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_volume_vert.glsl2
-rw-r--r--source/blender/draw/modes/shaders/armature_axes_vert.glsl6
-rw-r--r--source/blender/draw/modes/shaders/armature_envelope_outline_vert.glsl5
-rw-r--r--source/blender/draw/modes/shaders/armature_envelope_solid_vert.glsl5
-rw-r--r--source/blender/draw/modes/shaders/armature_stick_vert.glsl5
-rw-r--r--source/blender/draw/modes/shaders/common_view_lib.glsl35
-rw-r--r--source/blender/draw/modes/shaders/edit_curve_overlay_handle_vert.glsl1
-rw-r--r--source/blender/draw/modes/shaders/edit_curve_overlay_loosevert_vert.glsl1
-rw-r--r--source/blender/draw/modes/shaders/edit_curve_overlay_normals_vert.glsl1
-rw-r--r--source/blender/draw/modes/shaders/edit_lattice_overlay_loosevert_vert.glsl3
-rw-r--r--source/blender/draw/modes/shaders/edit_mesh_overlay_facefill_vert.glsl2
-rw-r--r--source/blender/draw/modes/shaders/edit_mesh_overlay_mesh_analysis_vert.glsl1
-rw-r--r--source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl3
-rw-r--r--source/blender/draw/modes/shaders/edit_normals_vert.glsl3
-rw-r--r--source/blender/draw/modes/shaders/object_empty_axes_vert.glsl5
-rw-r--r--source/blender/draw/modes/shaders/object_empty_image_vert.glsl1
-rw-r--r--source/blender/draw/modes/shaders/object_mball_handles_vert.glsl3
-rw-r--r--source/blender/draw/modes/shaders/object_outline_prepass_vert.glsl2
-rw-r--r--source/blender/draw/modes/shaders/object_particle_dot_vert.glsl2
-rw-r--r--source/blender/draw/modes/shaders/object_particle_prim_vert.glsl2
-rw-r--r--source/blender/draw/modes/shaders/overlay_face_orientation_vert.glsl1
-rw-r--r--source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl3
-rw-r--r--source/blender/draw/modes/shaders/paint_face_vert.glsl2
-rw-r--r--source/blender/draw/modes/shaders/paint_texture_vert.glsl2
-rw-r--r--source/blender/draw/modes/shaders/paint_vertex_vert.glsl2
-rw-r--r--source/blender/draw/modes/shaders/paint_weight_vert.glsl2
-rw-r--r--source/blender/draw/modes/shaders/paint_wire_vert.glsl2
-rw-r--r--source/blender/draw/modes/shaders/particle_strand_vert.glsl2
-rw-r--r--source/blender/draw/modes/shaders/sculpt_mask_vert.glsl2
-rw-r--r--source/blender/draw/modes/shaders/volume_velocity_vert.glsl2
-rw-r--r--source/blender/gpu/intern/gpu_codegen.c53
-rw-r--r--source/blender/gpu/shaders/gpu_shader_material.glsl5
42 files changed, 56 insertions, 134 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/lit_surface_vert.glsl b/source/blender/draw/engines/eevee/shaders/lit_surface_vert.glsl
index 4243d0ef870..0a2785bafca 100644
--- a/source/blender/draw/engines/eevee/shaders/lit_surface_vert.glsl
+++ b/source/blender/draw/engines/eevee/shaders/lit_surface_vert.glsl
@@ -1,9 +1,4 @@
-#ifndef USE_ATTR
-uniform mat4 ModelMatrix;
-uniform mat4 ModelMatrixInverse;
-#endif
-
#ifndef HAIR_SHADER
in vec3 pos;
in vec3 nor;
diff --git a/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl b/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl
index 7f154c9130a..fe274f59167 100644
--- a/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl
+++ b/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl
@@ -1,7 +1,4 @@
-uniform mat4 ModelMatrix;
-uniform mat4 ModelMatrixInverse;
-
#ifdef CLIP_PLANES
/* keep in sync with DRWManager.view_data */
layout(std140) uniform clip_block
diff --git a/source/blender/draw/engines/eevee/shaders/shadow_vert.glsl b/source/blender/draw/engines/eevee/shaders/shadow_vert.glsl
index 4f59725fcf8..7dd9af310ed 100644
--- a/source/blender/draw/engines/eevee/shaders/shadow_vert.glsl
+++ b/source/blender/draw/engines/eevee/shaders/shadow_vert.glsl
@@ -1,8 +1,4 @@
-#ifndef USE_ATTR
-uniform mat4 ModelMatrix;
-#endif
-
in vec3 pos;
in vec3 nor;
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_edit_point_vert.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_edit_point_vert.glsl
index 12e7f3ee516..a1cfb2ae4ae 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_edit_point_vert.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_edit_point_vert.glsl
@@ -1,4 +1,3 @@
-uniform mat4 ModelMatrix;
in vec3 pos;
in vec4 color;
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_fill_vert.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_fill_vert.glsl
index 4517b68b5e6..eb452f4c660 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_fill_vert.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_fill_vert.glsl
@@ -1,4 +1,3 @@
-uniform mat4 ModelMatrix;
in vec3 pos;
in vec4 color;
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_point_vert.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_point_vert.glsl
index 355d5ef1b0f..ef8b361373f 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_point_vert.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_point_vert.glsl
@@ -1,6 +1,4 @@
-uniform mat4 ModelMatrix;
-
uniform float pixsize; /* rv3d->pixsize */
uniform int keep_size;
uniform float objscale;
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_vert.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_vert.glsl
index 4e2ec784385..c7089f357f9 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_vert.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_vert.glsl
@@ -1,4 +1,3 @@
-uniform mat4 ModelMatrix;
uniform float pixsize; /* rv3d->pixsize */
uniform int keep_size;
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl b/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl
index 2955bcb9cca..5d4153999c0 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl
@@ -1,5 +1,3 @@
-uniform mat4 ModelMatrix;
-uniform mat4 ModelMatrixInverse;
#ifndef HAIR_SHADER
in vec3 pos;
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_shadow_vert.glsl b/source/blender/draw/engines/workbench/shaders/workbench_shadow_vert.glsl
index 85145a2dcdc..e07f87525e2 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_shadow_vert.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_shadow_vert.glsl
@@ -1,7 +1,5 @@
#define INFINITE 1000.0
-uniform mat4 ModelMatrix;
-
uniform vec3 lightDirection = vec3(0.57, 0.57, -0.57);
uniform float lightDistance = 1e4;
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl
index cef405d12d3..848cd49bf53 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl
@@ -1,7 +1,4 @@
-uniform mat4 ModelMatrix;
-uniform mat4 ModelMatrixInverse;
-
uniform vec3 OrcoTexCoFactors[2];
uniform sampler2D depthBuffer;
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_volume_vert.glsl b/source/blender/draw/engines/workbench/shaders/workbench_volume_vert.glsl
index 1834173fee9..6f0bb56fafd 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_volume_vert.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_volume_vert.glsl
@@ -1,6 +1,4 @@
-uniform mat4 ModelMatrix;
-
uniform vec3 OrcoTexCoFactors[2];
uniform float slicePosition;
uniform int sliceAxis; /* -1 is no slice, 0 is X, 1 is Y, 2 is Z. */
diff --git a/source/blender/draw/modes/shaders/armature_axes_vert.glsl b/source/blender/draw/modes/shaders/armature_axes_vert.glsl
index a689dce4d70..d7ed3e9ab71 100644
--- a/source/blender/draw/modes/shaders/armature_axes_vert.glsl
+++ b/source/blender/draw/modes/shaders/armature_axes_vert.glsl
@@ -1,9 +1,7 @@
uniform mat4 ViewProjectionMatrix;
uniform vec3 screenVecs[3];
-#ifdef USE_WORLD_CLIP_PLANES
-uniform mat4 ModelMatrix;
-#endif
+
/* ---- Instantiated Attrs ---- */
in float axis; /* position on the axis. [0.0-1.0] is X axis, [1.0-2.0] is Y, etc... */
in vec2 screenPos;
@@ -32,6 +30,6 @@ void main()
finalColor.a = 1.0;
#ifdef USE_WORLD_CLIP_PLANES
- world_clip_planes_calc_clip_distance((ModelMatrix * pos_4d).xyz);
+ world_clip_planes_calc_clip_distance(pos_4d.xyz);
#endif
}
diff --git a/source/blender/draw/modes/shaders/armature_envelope_outline_vert.glsl b/source/blender/draw/modes/shaders/armature_envelope_outline_vert.glsl
index 1e7fc4d11b8..c0bde90bf28 100644
--- a/source/blender/draw/modes/shaders/armature_envelope_outline_vert.glsl
+++ b/source/blender/draw/modes/shaders/armature_envelope_outline_vert.glsl
@@ -3,9 +3,6 @@ uniform mat4 ViewMatrix;
uniform mat4 ViewMatrixInverse;
uniform mat4 ViewProjectionMatrix;
uniform mat4 ProjectionMatrix;
-#ifdef USE_WORLD_CLIP_PLANES
-uniform mat4 ModelMatrix;
-#endif
uniform vec2 viewportSize;
uniform float lineThickness = 2.0;
@@ -145,7 +142,7 @@ void main()
vec4 pos_4d = vec4(wpos1, 1.0);
#ifdef USE_WORLD_CLIP_PLANES
- world_clip_planes_calc_clip_distance((ModelMatrix * pos_4d).xyz);
+ world_clip_planes_calc_clip_distance(pos_4d.xyz);
#endif
vec4 V = ViewMatrix * pos_4d;
diff --git a/source/blender/draw/modes/shaders/armature_envelope_solid_vert.glsl b/source/blender/draw/modes/shaders/armature_envelope_solid_vert.glsl
index 7f8ccc0c95a..d9567bb84f4 100644
--- a/source/blender/draw/modes/shaders/armature_envelope_solid_vert.glsl
+++ b/source/blender/draw/modes/shaders/armature_envelope_solid_vert.glsl
@@ -2,9 +2,6 @@
uniform mat4 ViewMatrix;
uniform mat4 ViewMatrixInverse;
uniform mat4 ViewProjectionMatrix;
-#ifdef USE_WORLD_CLIP_PLANES
-uniform mat4 ModelMatrix;
-#endif
/* ---- Instantiated Attrs ---- */
in vec3 pos;
@@ -57,6 +54,6 @@ void main()
vec4 pos_4d = vec4(sp, 1.0);
gl_Position = ViewProjectionMatrix * pos_4d;
#ifdef USE_WORLD_CLIP_PLANES
- world_clip_planes_calc_clip_distance((ModelMatrix * pos_4d).xyz);
+ world_clip_planes_calc_clip_distance(pos_4d.xyz);
#endif
}
diff --git a/source/blender/draw/modes/shaders/armature_stick_vert.glsl b/source/blender/draw/modes/shaders/armature_stick_vert.glsl
index 9e5a3d76c0d..fd8a12fcd2c 100644
--- a/source/blender/draw/modes/shaders/armature_stick_vert.glsl
+++ b/source/blender/draw/modes/shaders/armature_stick_vert.glsl
@@ -1,7 +1,7 @@
uniform mat4 ProjectionMatrix;
uniform mat4 ViewProjectionMatrix;
-uniform mat4 ModelMatrix;
+
uniform mat4 ViewMatrix;
uniform vec2 viewportSize;
@@ -88,8 +88,7 @@ void main()
gl_Position.z += (is_bone) ? 0.0 : 1e-6; /* Avoid Z fighting of head/tails. */
#ifdef USE_WORLD_CLIP_PLANES
- world_clip_planes_calc_clip_distance(
- (ModelMatrix * (is_head ? boneStart_4d : boneEnd_4d)).xyz);
+ world_clip_planes_calc_clip_distance((is_head ? boneStart_4d : boneEnd_4d).xyz);
#endif
}
else {
diff --git a/source/blender/draw/modes/shaders/common_view_lib.glsl b/source/blender/draw/modes/shaders/common_view_lib.glsl
index bdf184cb31e..99410b41ce6 100644
--- a/source/blender/draw/modes/shaders/common_view_lib.glsl
+++ b/source/blender/draw/modes/shaders/common_view_lib.glsl
@@ -14,23 +14,26 @@ layout(std140) uniform viewBlock
vec4 clipPlanes[2];
};
- /** Transform shortcuts. */
- /* Rule of thumb: Try to reuse world positions and normals because converting though viewspace
- * will always be decomposed in at least 2 matrix operation. */
+uniform mat4 ModelMatrix;
+uniform mat4 ModelMatrixInverse;
- /**
- * Some clarification:
- * Usually Normal matrix is transpose(inverse(ViewMatrix * ModelMatrix))
- *
- * But since it is slow to multiply matrices we decompose it. Decomposing
- * inversion and transposition both invert the product order leaving us with
- * the same original order:
- * transpose(ViewMatrixInverse) * transpose(ModelMatrixInverse)
- *
- * Knowing that the view matrix is orthogonal, the transpose is also the inverse.
- * Note: This is only valid because we are only using the mat3 of the ViewMatrixInverse.
- * ViewMatrix * transpose(ModelMatrixInverse)
- **/
+/** Transform shortcuts. */
+/* Rule of thumb: Try to reuse world positions and normals because converting though viewspace
+ * will always be decomposed in at least 2 matrix operation. */
+
+/**
+ * Some clarification:
+ * Usually Normal matrix is transpose(inverse(ViewMatrix * ModelMatrix))
+ *
+ * But since it is slow to multiply matrices we decompose it. Decomposing
+ * inversion and transposition both invert the product order leaving us with
+ * the same original order:
+ * transpose(ViewMatrixInverse) * transpose(ModelMatrixInverse)
+ *
+ * Knowing that the view matrix is orthogonal, the transpose is also the inverse.
+ * Note: This is only valid because we are only using the mat3 of the ViewMatrixInverse.
+ * ViewMatrix * transpose(ModelMatrixInverse)
+ **/
#define normal_object_to_view(n) (mat3(ViewMatrix) * (transpose(mat3(ModelMatrixInverse)) * n))
#define normal_object_to_world(n) (transpose(mat3(ModelMatrixInverse)) * n)
#define normal_world_to_object(n) (transpose(mat3(ModelMatrix)) * n)
diff --git a/source/blender/draw/modes/shaders/edit_curve_overlay_handle_vert.glsl b/source/blender/draw/modes/shaders/edit_curve_overlay_handle_vert.glsl
index 1773414a3fc..2f3d37a6e73 100644
--- a/source/blender/draw/modes/shaders/edit_curve_overlay_handle_vert.glsl
+++ b/source/blender/draw/modes/shaders/edit_curve_overlay_handle_vert.glsl
@@ -1,5 +1,4 @@
/* Draw Curve Handles */
-uniform mat4 ModelMatrix;
in vec3 pos;
in int data;
diff --git a/source/blender/draw/modes/shaders/edit_curve_overlay_loosevert_vert.glsl b/source/blender/draw/modes/shaders/edit_curve_overlay_loosevert_vert.glsl
index 16975187176..b1b707b59f4 100644
--- a/source/blender/draw/modes/shaders/edit_curve_overlay_loosevert_vert.glsl
+++ b/source/blender/draw/modes/shaders/edit_curve_overlay_loosevert_vert.glsl
@@ -1,5 +1,4 @@
/* Draw Curve Vertices */
-uniform mat4 ModelMatrix;
uniform vec2 viewportSize;
diff --git a/source/blender/draw/modes/shaders/edit_curve_overlay_normals_vert.glsl b/source/blender/draw/modes/shaders/edit_curve_overlay_normals_vert.glsl
index b746c8d0a74..ef60ddbc395 100644
--- a/source/blender/draw/modes/shaders/edit_curve_overlay_normals_vert.glsl
+++ b/source/blender/draw/modes/shaders/edit_curve_overlay_normals_vert.glsl
@@ -1,5 +1,4 @@
/* Draw Curve Normals */
-uniform mat4 ModelMatrix;
uniform float normalSize;
diff --git a/source/blender/draw/modes/shaders/edit_lattice_overlay_loosevert_vert.glsl b/source/blender/draw/modes/shaders/edit_lattice_overlay_loosevert_vert.glsl
index a4773f31977..f7df6bb4b68 100644
--- a/source/blender/draw/modes/shaders/edit_lattice_overlay_loosevert_vert.glsl
+++ b/source/blender/draw/modes/shaders/edit_lattice_overlay_loosevert_vert.glsl
@@ -1,8 +1,5 @@
-
/* Draw Lattice Vertices */
-uniform mat4 ModelMatrix;
-
uniform vec2 viewportSize;
in vec3 pos;
diff --git a/source/blender/draw/modes/shaders/edit_mesh_overlay_facefill_vert.glsl b/source/blender/draw/modes/shaders/edit_mesh_overlay_facefill_vert.glsl
index f81da2ff0e8..a20c1124fe1 100644
--- a/source/blender/draw/modes/shaders/edit_mesh_overlay_facefill_vert.glsl
+++ b/source/blender/draw/modes/shaders/edit_mesh_overlay_facefill_vert.glsl
@@ -1,6 +1,4 @@
-uniform mat4 ModelMatrix;
-
uniform ivec4 dataMask = ivec4(0xFF);
in vec3 pos;
diff --git a/source/blender/draw/modes/shaders/edit_mesh_overlay_mesh_analysis_vert.glsl b/source/blender/draw/modes/shaders/edit_mesh_overlay_mesh_analysis_vert.glsl
index 98cb788b75d..968a63c7780 100644
--- a/source/blender/draw/modes/shaders/edit_mesh_overlay_mesh_analysis_vert.glsl
+++ b/source/blender/draw/modes/shaders/edit_mesh_overlay_mesh_analysis_vert.glsl
@@ -1,4 +1,3 @@
-uniform mat4 ModelMatrix;
in vec3 pos;
in vec4 weight_color;
diff --git a/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl b/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl
index b4476c98382..9711c9feeb8 100644
--- a/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl
+++ b/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl
@@ -1,7 +1,4 @@
-uniform mat4 ModelMatrix;
-uniform mat4 ModelMatrixInverse;
-
uniform float faceAlphaMod;
uniform ivec4 dataMask = ivec4(0xFF);
uniform float ofs;
diff --git a/source/blender/draw/modes/shaders/edit_normals_vert.glsl b/source/blender/draw/modes/shaders/edit_normals_vert.glsl
index 31b2faa7667..9bf0fb7315c 100644
--- a/source/blender/draw/modes/shaders/edit_normals_vert.glsl
+++ b/source/blender/draw/modes/shaders/edit_normals_vert.glsl
@@ -1,7 +1,4 @@
-uniform mat4 ModelMatrix;
-uniform mat4 ModelMatrixInverse;
-
uniform float normalSize;
in vec3 pos;
diff --git a/source/blender/draw/modes/shaders/object_empty_axes_vert.glsl b/source/blender/draw/modes/shaders/object_empty_axes_vert.glsl
index 7fd955343fc..43c8e313fc3 100644
--- a/source/blender/draw/modes/shaders/object_empty_axes_vert.glsl
+++ b/source/blender/draw/modes/shaders/object_empty_axes_vert.glsl
@@ -1,8 +1,5 @@
uniform mat4 ViewProjectionMatrix;
-#ifdef USE_WORLD_CLIP_PLANES
-uniform mat4 ModelMatrix;
-#endif
uniform vec3 screenVecs[3];
@@ -33,6 +30,6 @@ void main()
finalColor = vec4(color, 1.0);
#ifdef USE_WORLD_CLIP_PLANES
- world_clip_planes_calc_clip_distance((ModelMatrix * pos_4d).xyz);
+ world_clip_planes_calc_clip_distance(pos_4d.xyz);
#endif
}
diff --git a/source/blender/draw/modes/shaders/object_empty_image_vert.glsl b/source/blender/draw/modes/shaders/object_empty_image_vert.glsl
index 5ac3b49b394..36e86290be7 100644
--- a/source/blender/draw/modes/shaders/object_empty_image_vert.glsl
+++ b/source/blender/draw/modes/shaders/object_empty_image_vert.glsl
@@ -1,4 +1,3 @@
-uniform mat4 ModelMatrix;
uniform vec2 aspect;
uniform float size;
diff --git a/source/blender/draw/modes/shaders/object_mball_handles_vert.glsl b/source/blender/draw/modes/shaders/object_mball_handles_vert.glsl
index c395ed01bca..9414309570b 100644
--- a/source/blender/draw/modes/shaders/object_mball_handles_vert.glsl
+++ b/source/blender/draw/modes/shaders/object_mball_handles_vert.glsl
@@ -4,7 +4,6 @@
* Note that if the stiffness is zero, it assumes the scale is directly multiplied by the radius */
uniform mat4 ViewProjectionMatrix;
-uniform mat4 ModelMatrix;
uniform vec3 screen_vecs[2];
/* ---- Instantiated Attrs ---- */
@@ -32,6 +31,6 @@ void main()
finalColor = vec4(color, 1.0);
#ifdef USE_WORLD_CLIP_PLANES
- world_clip_planes_calc_clip_distance((ModelMatrix * world_pos).xyz);
+ world_clip_planes_calc_clip_distance(world_pos.xyz);
#endif
}
diff --git a/source/blender/draw/modes/shaders/object_outline_prepass_vert.glsl b/source/blender/draw/modes/shaders/object_outline_prepass_vert.glsl
index fcffc7a8ae0..e34afe95b5e 100644
--- a/source/blender/draw/modes/shaders/object_outline_prepass_vert.glsl
+++ b/source/blender/draw/modes/shaders/object_outline_prepass_vert.glsl
@@ -1,6 +1,4 @@
-uniform mat4 ModelMatrix;
-
in vec3 pos;
out vec4 pPos;
diff --git a/source/blender/draw/modes/shaders/object_particle_dot_vert.glsl b/source/blender/draw/modes/shaders/object_particle_dot_vert.glsl
index 921a0a57218..f98ae9a9515 100644
--- a/source/blender/draw/modes/shaders/object_particle_dot_vert.glsl
+++ b/source/blender/draw/modes/shaders/object_particle_dot_vert.glsl
@@ -1,6 +1,4 @@
-uniform mat4 ModelMatrix;
-
uniform float pixel_size;
uniform float size;
diff --git a/source/blender/draw/modes/shaders/object_particle_prim_vert.glsl b/source/blender/draw/modes/shaders/object_particle_prim_vert.glsl
index f1107de8068..46aceb245f4 100644
--- a/source/blender/draw/modes/shaders/object_particle_prim_vert.glsl
+++ b/source/blender/draw/modes/shaders/object_particle_prim_vert.glsl
@@ -1,6 +1,4 @@
-uniform mat4 ModelMatrix;
-
uniform bool screen_space;
uniform float draw_size;
uniform vec3 color;
diff --git a/source/blender/draw/modes/shaders/overlay_face_orientation_vert.glsl b/source/blender/draw/modes/shaders/overlay_face_orientation_vert.glsl
index 5025d054048..2dd84c0a060 100644
--- a/source/blender/draw/modes/shaders/overlay_face_orientation_vert.glsl
+++ b/source/blender/draw/modes/shaders/overlay_face_orientation_vert.glsl
@@ -1,4 +1,3 @@
-uniform mat4 ModelMatrix;
in vec3 pos;
diff --git a/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl b/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl
index dd64ff10a34..23f64e6e49c 100644
--- a/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl
+++ b/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl
@@ -1,7 +1,4 @@
-uniform mat4 ModelMatrix;
-uniform mat4 ModelMatrixInverse;
-
uniform float wireStepParam;
uniform float ofs;
diff --git a/source/blender/draw/modes/shaders/paint_face_vert.glsl b/source/blender/draw/modes/shaders/paint_face_vert.glsl
index 7ea2390dd3f..4b5191ead07 100644
--- a/source/blender/draw/modes/shaders/paint_face_vert.glsl
+++ b/source/blender/draw/modes/shaders/paint_face_vert.glsl
@@ -1,6 +1,4 @@
-uniform mat4 ModelMatrix;
-
in vec3 pos;
in vec4 nor; /* select flag on the 4th component */
diff --git a/source/blender/draw/modes/shaders/paint_texture_vert.glsl b/source/blender/draw/modes/shaders/paint_texture_vert.glsl
index 14d3afd6272..564f988348e 100644
--- a/source/blender/draw/modes/shaders/paint_texture_vert.glsl
+++ b/source/blender/draw/modes/shaders/paint_texture_vert.glsl
@@ -1,6 +1,4 @@
-uniform mat4 ModelMatrix;
-
in vec2 u; /* active uv map */
in vec3 pos;
diff --git a/source/blender/draw/modes/shaders/paint_vertex_vert.glsl b/source/blender/draw/modes/shaders/paint_vertex_vert.glsl
index 871f52b9df3..53e72cc8a20 100644
--- a/source/blender/draw/modes/shaders/paint_vertex_vert.glsl
+++ b/source/blender/draw/modes/shaders/paint_vertex_vert.glsl
@@ -1,6 +1,4 @@
-uniform mat4 ModelMatrix;
-
in vec3 pos;
in vec3 c; /* active color */
diff --git a/source/blender/draw/modes/shaders/paint_weight_vert.glsl b/source/blender/draw/modes/shaders/paint_weight_vert.glsl
index fb0e6c535d1..330cc7d19f4 100644
--- a/source/blender/draw/modes/shaders/paint_weight_vert.glsl
+++ b/source/blender/draw/modes/shaders/paint_weight_vert.glsl
@@ -1,6 +1,4 @@
-uniform mat4 ModelMatrix;
-
in float weight;
in vec3 pos;
diff --git a/source/blender/draw/modes/shaders/paint_wire_vert.glsl b/source/blender/draw/modes/shaders/paint_wire_vert.glsl
index 7e9a5b9bfe6..10bf8729f47 100644
--- a/source/blender/draw/modes/shaders/paint_wire_vert.glsl
+++ b/source/blender/draw/modes/shaders/paint_wire_vert.glsl
@@ -1,6 +1,4 @@
-uniform mat4 ModelMatrix;
-
in vec3 pos;
in vec4 nor; /* flag stored in w */
diff --git a/source/blender/draw/modes/shaders/particle_strand_vert.glsl b/source/blender/draw/modes/shaders/particle_strand_vert.glsl
index 14f9050f9df..c3f8fb89c17 100644
--- a/source/blender/draw/modes/shaders/particle_strand_vert.glsl
+++ b/source/blender/draw/modes/shaders/particle_strand_vert.glsl
@@ -1,6 +1,4 @@
-uniform mat4 ModelMatrix;
-
in vec3 pos;
in float color;
diff --git a/source/blender/draw/modes/shaders/sculpt_mask_vert.glsl b/source/blender/draw/modes/shaders/sculpt_mask_vert.glsl
index ee05844d8f6..7b026836690 100644
--- a/source/blender/draw/modes/shaders/sculpt_mask_vert.glsl
+++ b/source/blender/draw/modes/shaders/sculpt_mask_vert.glsl
@@ -1,6 +1,4 @@
-uniform mat4 ModelMatrix;
-
uniform float maskOpacity;
in vec3 pos;
diff --git a/source/blender/draw/modes/shaders/volume_velocity_vert.glsl b/source/blender/draw/modes/shaders/volume_velocity_vert.glsl
index 87fa3519da1..e96a789b8b1 100644
--- a/source/blender/draw/modes/shaders/volume_velocity_vert.glsl
+++ b/source/blender/draw/modes/shaders/volume_velocity_vert.glsl
@@ -1,6 +1,4 @@
-uniform mat4 ModelMatrix;
-
uniform sampler3D velocityX;
uniform sampler3D velocityY;
uniform sampler3D velocityZ;
diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c
index b909839473f..8dda98ab990 100644
--- a/source/blender/gpu/intern/gpu_codegen.c
+++ b/source/blender/gpu/intern/gpu_codegen.c
@@ -1035,12 +1035,39 @@ static char *code_generate_vertex(ListBase *nodes, const char *vert_code, bool u
BLI_dynstr_append(ds, "out vec3 barycentricPosg;\n");
}
+ BLI_dynstr_append(ds, "\n#define USE_ATTR\n");
+
+ /* Prototype, defined later (this is because of matrices definition). */
+ BLI_dynstr_append(ds, "void pass_attr(in vec3 position);\n");
+
+ BLI_dynstr_append(ds, "\n");
+
+ if (use_geom) {
+ /* XXX HACK: Eevee specific. */
+ char *vert_new, *vert_new2;
+ vert_new = BLI_str_replaceN(vert_code, "worldPosition", "worldPositiong");
+ vert_new2 = vert_new;
+ vert_new = BLI_str_replaceN(vert_new2, "viewPosition", "viewPositiong");
+ MEM_freeN(vert_new2);
+ vert_new2 = vert_new;
+ vert_new = BLI_str_replaceN(vert_new2, "worldNormal", "worldNormalg");
+ MEM_freeN(vert_new2);
+ vert_new2 = vert_new;
+ vert_new = BLI_str_replaceN(vert_new2, "viewNormal", "viewNormalg");
+ MEM_freeN(vert_new2);
+
+ BLI_dynstr_append(ds, vert_new);
+
+ MEM_freeN(vert_new);
+ }
+ else {
+ BLI_dynstr_append(ds, vert_code);
+ }
+
BLI_dynstr_append(ds, "\n");
BLI_dynstr_append(ds,
"#define USE_ATTR\n"
- "uniform mat4 ModelMatrixInverse;\n"
- "uniform mat4 ModelMatrix;\n"
"vec3 srgb_to_linear_attr(vec3 c) {\n"
"\tc = max(c, vec3(0.0));\n"
"\tvec3 c1 = c * (1.0 / 12.92);\n"
@@ -1177,28 +1204,6 @@ static char *code_generate_vertex(ListBase *nodes, const char *vert_code, bool u
BLI_dynstr_append(ds, "}\n");
- if (use_geom) {
- /* XXX HACK: Eevee specific. */
- char *vert_new, *vert_new2;
- vert_new = BLI_str_replaceN(vert_code, "worldPosition", "worldPositiong");
- vert_new2 = vert_new;
- vert_new = BLI_str_replaceN(vert_new2, "viewPosition", "viewPositiong");
- MEM_freeN(vert_new2);
- vert_new2 = vert_new;
- vert_new = BLI_str_replaceN(vert_new2, "worldNormal", "worldNormalg");
- MEM_freeN(vert_new2);
- vert_new2 = vert_new;
- vert_new = BLI_str_replaceN(vert_new2, "viewNormal", "viewNormalg");
- MEM_freeN(vert_new2);
-
- BLI_dynstr_append(ds, vert_new);
-
- MEM_freeN(vert_new);
- }
- else {
- BLI_dynstr_append(ds, vert_code);
- }
-
code = BLI_dynstr_get_cstring(ds);
BLI_dynstr_free(ds);
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl
index 023870125c9..6a3d6c3b142 100644
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl
@@ -1,9 +1,4 @@
-#ifndef USE_ATTR
-uniform mat4 ModelMatrix;
-uniform mat4 ModelMatrixInverse;
-#endif
-
/* Converters */
float convert_rgba_to_float(vec4 color)