[Bf-blender-cvs] [2893417d670] master: Fix T62580 Workbench: Shadow glitch due to degenerate threshold
Clément Foucault
noreply at git.blender.org
Tue Jul 9 20:38:48 CEST 2019
Commit: 2893417d670c935993606b860ba9aaec1b1dd6e1
Author: Clément Foucault
Date: Tue Jul 9 20:38:40 2019 +0200
Branches: master
https://developer.blender.org/rB2893417d670c935993606b860ba9aaec1b1dd6e1
Fix T62580 Workbench: Shadow glitch due to degenerate threshold
Fix by adding a threshold instead of direct null comparison.
===================================================================
M source/blender/draw/engines/workbench/shaders/workbench_shadow_geom.glsl
===================================================================
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_shadow_geom.glsl b/source/blender/draw/engines/workbench/shaders/workbench_shadow_geom.glsl
index 8ee70c37949..2c9190bfcf4 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_shadow_geom.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_shadow_geom.glsl
@@ -37,6 +37,7 @@ in VertexData
vData[];
#define DEGENERATE_TRIS_WORKAROUND
+#define DEGENERATE_TRIS_AREA_THRESHOLD 4e-17
#define len_sqr(a) dot(a, a)
@@ -67,7 +68,7 @@ void main()
#ifdef DEGENERATE_TRIS_WORKAROUND
/* Check if area is null */
vec2 faces_area = vec2(len_sqr(n1), len_sqr(n2));
- bvec2 degen_faces = equal(abs(faces_area), vec2(0.0));
+ bvec2 degen_faces = lessThan(abs(faces_area), vec2(DEGENERATE_TRIS_AREA_THRESHOLD));
/* Both triangles are degenerate, abort. */
if (all(degen_faces)) {
More information about the Bf-blender-cvs
mailing list