Fix T64574 : Weird shadow mesh glitches in viewport
authorClément Foucault <foucault.clem@gmail.com>
Tue, 14 May 2019 11:57:41 +0000 (13:57 +0200)
committerClément Foucault <foucault.clem@gmail.com>
Tue, 14 May 2019 12:07:08 +0000 (14:07 +0200)
This is not the most clean but this is what is needed to make
point_object_to_ndc equivalent to
point_object_to_world + point_world_to_ndc

source/blender/draw/modes/shaders/common_view_lib.glsl

index ce48138a80de2adb649458ddaca452768b205fb2..79ac351912d30375177cb44c3f86310e96b373e5 100644 (file)
@@ -39,8 +39,8 @@ uniform mat4 ModelMatrixInverse;
 #define normal_world_to_object(n) (transpose(mat3(ModelMatrix)) * n)
 #define normal_world_to_view(n) (mat3(ViewMatrix) * n)
 
-#define point_object_to_ndc(p) (ViewProjectionMatrix * vec4(ModelMatrix * vec4(p, 1.0)).xyz, 1.0))
-#define point_object_to_view(p) ((ViewMatrix * vec4(ModelMatrix * vec4(p, 1.0)).xyz, 1.0)).xyz)
+#define point_object_to_ndc(p) (ViewProjectionMatrix * vec4((ModelMatrix * vec4(p, 1.0)).xyz, 1.0))
+#define point_object_to_view(p) ((ViewMatrix * vec4((ModelMatrix * vec4(p, 1.0)).xyz, 1.0)).xyz)
 #define point_object_to_world(p) ((ModelMatrix * vec4(p, 1.0)).xyz)
 #define point_view_to_ndc(p) (ProjectionMatrix * vec4(p, 1.0))
 #define point_view_to_object(p) ((ModelMatrixInverse * (ViewMatrixInverse * vec4(p, 1.0))).xyz)