Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2020-02-03 15:46:38 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-02-03 18:15:05 +0300
commit88ffee6953cc15a74ace6ef19a37b53cf10f08cd (patch)
treee8c1ddc09c2095a0fd8d9cb8d97435b7336015d0 /source/blender/draw
parentdcf44dfe8e0b0a084554ecb2cb2d34f0e273d933 (diff)
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.
Diffstat (limited to 'source/blender/draw')
-rw-r--r--source/blender/draw/engines/overlay/shaders/armature_shape_outline_geom.glsl4
1 files changed, 2 insertions, 2 deletions
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);