diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-05-20 23:48:35 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-05-26 23:28:52 +0300 |
commit | 6b38fa8caba68ed9e694b995e71e190d9d07df25 (patch) | |
tree | 5217a41917546c96c3c4db8017de1b93ade8fa0f /source/blender/draw/modes/shaders/armature_shape_outline_vert.glsl | |
parent | 581b021a1f1e987df66a659683cfc057f51dc204 (diff) |
Armature: Modify Shape outline shader to use Line adjacency instead of tri.
This is much faster and simpler. This is also to make it compatible with
custom bone shape in the future.
Diffstat (limited to 'source/blender/draw/modes/shaders/armature_shape_outline_vert.glsl')
-rw-r--r-- | source/blender/draw/modes/shaders/armature_shape_outline_vert.glsl | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/source/blender/draw/modes/shaders/armature_shape_outline_vert.glsl b/source/blender/draw/modes/shaders/armature_shape_outline_vert.glsl index 0d09114579c..3e7a185bb62 100644 --- a/source/blender/draw/modes/shaders/armature_shape_outline_vert.glsl +++ b/source/blender/draw/modes/shaders/armature_shape_outline_vert.glsl @@ -15,8 +15,7 @@ in mat4 InstanceModelMatrix; in vec4 outlineColorSize; out vec4 pPos; -out float vZ; -out float vFacing; +out vec3 vPos; out vec2 ssPos; out vec2 ssNor; out vec4 vColSize; @@ -34,25 +33,15 @@ void main() mat3 NormalMatrix = transpose(inverse(mat3(ViewMatrix * InstanceModelMatrix))); vec4 viewpos = ViewMatrix * (InstanceModelMatrix * vec4(pos, 1.0)); - pPos = ProjectionMatrix * viewpos; - vZ = abs(viewpos.z); - /* if perspective */ - vec3 V = (ProjectionMatrix[3][3] == 0.0) ? normalize(-viewpos.xyz) : vec3(0.0, 0.0, 1.0); + vPos = viewpos.xyz; + pPos = ProjectionMatrix * viewpos; /* TODO FIX: there is still a problem with this vector * when the bone is scaled or in persp mode. But it's * barelly visible at the outline corners. */ ssNor = normalize((NormalMatrix * snor).xy); - vec3 normal = normalize(NormalMatrix * nor); - /* Add a small bias to avoid loosing outline - * on faces orthogonal to the view. - * (test case: octahedral bone without rotation in front view.) */ - normal.z += 1e-6; - - vFacing = dot(V, normal); - ssPos = proj(pPos); vColSize = outlineColorSize; |