[Bf-blender-cvs] [42f2ec08d29] greasepencil-object: Fix error in VFX Pixelate modifier

Antonio Vazquez noreply at git.blender.org
Thu Feb 22 18:36:07 CET 2018


Commit: 42f2ec08d295557b45231aea49be0884df7c3820
Author: Antonio Vazquez
Date:   Thu Feb 22 18:35:09 2018 +0100
Branches: greasepencil-object
https://developer.blender.org/rB42f2ec08d295557b45231aea49be0884df7c3820

Fix error in VFX Pixelate modifier

The location must be multiplied by ModelViewProjection matrix.

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

M	source/blender/draw/engines/gpencil/shaders/gpencil_pixel_frag.glsl

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

diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_pixel_frag.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_pixel_frag.glsl
index 5a5310f7b9e..a109ea88613 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_pixel_frag.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_pixel_frag.glsl
@@ -1,3 +1,4 @@
+uniform mat4 ModelViewProjectionMatrix;
 uniform mat4 ProjectionMatrix;
 uniform mat4 ViewMatrix;
 
@@ -22,10 +23,11 @@ vec2 nsize = max(size, 3.0);
 void main()
 {
 	vec2 uv = vec2(gl_FragCoord.xy);
+	vec4 nloc = ModelViewProjectionMatrix * vec4(loc, 1.0);
 	
-	float dx = (ProjectionMatrix[3][3] == 0.0) ? (nsize[0] / (loc.z * defaultpixsize)) : (nsize[0] / defaultpixsize);
-	float dy = (ProjectionMatrix[3][3] == 0.0) ? (nsize[1] / (loc.z * defaultpixsize)) : (nsize[1] / defaultpixsize);
-	
+	float dx = (ProjectionMatrix[3][3] == 0.0) ? (nsize[0] / (nloc.z * defaultpixsize)) : (nsize[0] / defaultpixsize);
+	float dy = (ProjectionMatrix[3][3] == 0.0) ? (nsize[1] / (nloc.z * defaultpixsize)) : (nsize[1] / defaultpixsize);
+
 	dx = max(abs(dx), 3.0);
 	dy = max(abs(dy), 3.0);



More information about the Bf-blender-cvs mailing list