diff options
author | Antonioya <blendergit@gmail.com> | 2019-07-23 23:29:42 +0300 |
---|---|---|
committer | Antonioya <blendergit@gmail.com> | 2019-07-29 13:41:24 +0300 |
commit | b83a1b62c7db4e11c96b65cb68b2a88eeab7fcbc (patch) | |
tree | 49f3751dae53463d5b943aecc905c1af2cd27860 /source/blender | |
parent | 13f57237f24a4537bef9c080418c7837f6496a6c (diff) |
Fix T66233: Grease Pencil Swirl Effect not working at origin
If the control object is in the origin the radius is wrongly calculated because the result is 0.
Now, this value is clamped to avoid this situation
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_swirl_frag.glsl | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_swirl_frag.glsl b/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_swirl_frag.glsl index b226d4f93bc..01d4fe40195 100644 --- a/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_swirl_frag.glsl +++ b/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_swirl_frag.glsl @@ -42,7 +42,11 @@ void main() vec2 tc = uv - center; float dist = length(tc); - float pxradius = (ProjectionMatrix[3][3] == 0.0) ? (radius / (loc.z * defaultpixsize)) : + float locpixsize = abs((loc.z * defaultpixsize)); + if (locpixsize == 0) { + locpixsize = 1; + } + float pxradius = (ProjectionMatrix[3][3] == 0.0) ? (radius / locpixsize) : (radius / defaultpixsize); pxradius = max(pxradius, 1); |