[Bf-blender-cvs] [20421ef9528] master: Cleanup: DRW: Move ModelMatrix declaration to common_view_lib

Clément Foucault noreply at git.blender.org
Tue May 14 11:01:52 CEST 2019


Commit: 20421ef9528c562a39b92e18d3e1f858df228953
Author: Clément Foucault
Date:   Tue May 14 00:48:17 2019 +0200
Branches: master
https://developer.blender.org/rB20421ef9528c562a39b92e18d3e1f858df228953

Cleanup: DRW: Move ModelMatrix declaration to common_view_lib

===================================================================

M	source/blender/draw/engines/eevee/shaders/lit_surface_vert.glsl
M	source/blender/draw/engines/eevee/shaders/prepass_vert.glsl
M	source/blender/draw/engines/eevee/shaders/shadow_vert.glsl
M	source/blender/draw/engines/gpencil/shaders/gpencil_edit_point_vert.glsl
M	source/blender/draw/engines/gpencil/shaders/gpencil_fill_vert.glsl
M	source/blender/draw/engines/gpencil/shaders/gpencil_point_vert.glsl
M	source/blender/draw/engines/gpencil/shaders/gpencil_stroke_vert.glsl
M	source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl
M	source/blender/draw/engines/workbench/shaders/workbench_shadow_vert.glsl
M	source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl
M	source/blender/draw/engines/workbench/shaders/workbench_volume_vert.glsl
M	source/blender/draw/modes/shaders/armature_axes_vert.glsl
M	source/blender/draw/modes/shaders/armature_envelope_outline_vert.glsl
M	source/blender/draw/modes/shaders/armature_envelope_solid_vert.glsl
M	source/blender/draw/modes/shaders/armature_stick_vert.glsl
M	source/blender/draw/modes/shaders/common_view_lib.glsl
M	source/blender/draw/modes/shaders/edit_curve_overlay_handle_vert.glsl
M	source/blender/draw/modes/shaders/edit_curve_overlay_loosevert_vert.glsl
M	source/blender/draw/modes/shaders/edit_curve_overlay_normals_vert.glsl
M	source/blender/draw/modes/shaders/edit_lattice_overlay_loosevert_vert.glsl
M	source/blender/draw/modes/shaders/edit_mesh_overlay_facefill_vert.glsl
M	source/blender/draw/modes/shaders/edit_mesh_overlay_mesh_analysis_vert.glsl
M	source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl
M	source/blender/draw/modes/shaders/edit_normals_vert.glsl
M	source/blender/draw/modes/shaders/object_empty_axes_vert.glsl
M	source/blender/draw/modes/shaders/object_empty_image_vert.glsl
M	source/blender/draw/modes/shaders/object_mball_handles_vert.glsl
M	source/blender/draw/modes/shaders/object_outline_prepass_vert.glsl
M	source/blender/draw/modes/shaders/object_particle_dot_vert.glsl
M	source/blender/draw/modes/shaders/object_particle_prim_vert.glsl
M	source/blender/draw/modes/shaders/overlay_face_orientation_vert.glsl
M	source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl
M	source/blender/draw/modes/shaders/paint_face_vert.glsl
M	source/blender/draw/modes/shaders/paint_texture_vert.glsl
M	source/blender/draw/modes/shaders/paint_vertex_vert.glsl
M	source/blender/draw/modes/shaders/paint_weight_vert.glsl
M	source/blender/draw/modes/shaders/paint_wire_vert.glsl
M	source/blender/draw/modes/shaders/particle_strand_vert.glsl
M	source/blender/draw/modes/shaders/sculpt_mask_vert.glsl
M	source/blender/draw/modes/shaders/volume_velocity_vert.glsl
M	source/blender/gpu/intern/gpu_codegen.c
M	source/blender/gpu/shaders/gpu_shader_material.glsl

===================================================================

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
+

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list