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>2019-12-05 18:08:52 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-12-05 18:36:06 +0300
commitd40579c62b40e2ad7d30ae4196169c3328610d41 (patch)
tree1aeeb85fa19408d6836ecd8f03e1d91eefd39ad5 /source/blender/draw/engines/overlay/shaders/armature_dof_vert.glsl
parent95ca3f6536f1b756a0c87578f8d9d757ba9cd3a4 (diff)
Overlay Engine: Fix bone outline antialiasing
Diffstat (limited to 'source/blender/draw/engines/overlay/shaders/armature_dof_vert.glsl')
-rw-r--r--source/blender/draw/engines/overlay/shaders/armature_dof_vert.glsl12
1 files changed, 11 insertions, 1 deletions
diff --git a/source/blender/draw/engines/overlay/shaders/armature_dof_vert.glsl b/source/blender/draw/engines/overlay/shaders/armature_dof_vert.glsl
index 371229f23ab..b15554bbb6a 100644
--- a/source/blender/draw/engines/overlay/shaders/armature_dof_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/armature_dof_vert.glsl
@@ -8,6 +8,8 @@ in vec4 color;
in mat4 inst_obmat;
flat out vec4 finalColor;
+flat out vec2 edgeStart;
+noperspective out vec2 edgePos;
vec3 sphere_project(float ax, float az)
{
@@ -28,6 +30,14 @@ void main()
vec3 final_pos = sphere_project(pos.x * abs((pos.x > 0.0) ? amax.x : amin.x),
pos.y * abs((pos.y > 0.0) ? amax.y : amin.y));
- gl_Position = ViewProjectionMatrix * (model_mat * vec4(final_pos, 1.0));
+
+ vec3 world_pos = (model_mat * vec4(final_pos, 1.0)).xyz;
+ gl_Position = point_world_to_ndc(world_pos);
finalColor = color;
+
+ edgeStart = edgePos = ((gl_Position.xy / gl_Position.w) * 0.5 + 0.5) * sizeViewport.xy;
+
+#ifdef USE_WORLD_CLIP_PLANES
+ world_clip_planes_calc_clip_distance(world_pos);
+#endif
}