[Bf-blender-cvs] [88ffee6953c] blender-v2.82-release: Overlay: Armature: Improve bone outline z-bias in orthographic mode

Clément Foucault noreply at git.blender.org
Mon Feb 3 16:17:28 CET 2020


Commit: 88ffee6953cc15a74ace6ef19a37b53cf10f08cd
Author: Clément Foucault
Date:   Mon Feb 3 13:46:38 2020 +0100
Branches: blender-v2.82-release
https://developer.blender.org/rB88ffee6953cc15a74ace6ef19a37b53cf10f08cd

Overlay: Armature: Improve bone outline z-bias in orthographic mode

The bias was too big and cause interpenetration on geometry that was in
front of bones.

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

M	source/blender/draw/engines/overlay/shaders/armature_shape_outline_geom.glsl

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

diff --git a/source/blender/draw/engines/overlay/shaders/armature_shape_outline_geom.glsl b/source/blender/draw/engines/overlay/shaders/armature_shape_outline_geom.glsl
index db5975ea226..6398426952c 100644
--- a/source/blender/draw/engines/overlay/shaders/armature_shape_outline_geom.glsl
+++ b/source/blender/draw/engines/overlay/shaders/armature_shape_outline_geom.glsl
@@ -70,7 +70,7 @@ void main(void)
   /* Offset away from the center to avoid overlap with solid shape. */
   gl_Position.xy += (edge_dir - perp) * sizeViewportInv.xy * gl_Position.w;
   /* Improve AA bleeding inside bone silhouette. */
-  gl_Position.z -= 1e-4;
+  gl_Position.z -= (is_persp) ? 1e-4 : 1e-6;
   edgeStart = edgePos = ((gl_Position.xy / gl_Position.w) * 0.5 + 0.5) * sizeViewport.xy;
 #ifdef USE_WORLD_CLIP_PLANES
   world_clip_planes_set_clip_distance(gl_in[1].gl_ClipDistance);
@@ -81,7 +81,7 @@ void main(void)
   /* Offset away from the center to avoid overlap with solid shape. */
   gl_Position.xy += (edge_dir + perp) * sizeViewportInv.xy * gl_Position.w;
   /* Improve AA bleeding inside bone silhouette. */
-  gl_Position.z -= 1e-4;
+  gl_Position.z -= (is_persp) ? 1e-4 : 1e-6;
   edgeStart = edgePos = ((gl_Position.xy / gl_Position.w) * 0.5 + 0.5) * sizeViewport.xy;
 #ifdef USE_WORLD_CLIP_PLANES
   world_clip_planes_set_clip_distance(gl_in[2].gl_ClipDistance);



More information about the Bf-blender-cvs mailing list