diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-05-21 01:15:19 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-05-26 23:28:52 +0300 |
commit | 44935fdfa342307259c4f7163738d5e74374e70a (patch) | |
tree | d8222164a793cc0f13c8e7201aa7c3fa6fcca699 /source/blender/draw/modes/shaders | |
parent | 2241a61aabf50bf10b7561dbd57fc2ded64d29c3 (diff) |
Armature: Make Custom bone have the same appearance as other bones.
I had to correct some errors in the winding order of the normal bones.
Diffstat (limited to 'source/blender/draw/modes/shaders')
3 files changed, 12 insertions, 5 deletions
diff --git a/source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl b/source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl index 4fb6fe5a245..11924b19cf8 100644 --- a/source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl +++ b/source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl @@ -57,12 +57,19 @@ void main(void) vec3 v12 = vPos[2] - vPos[1]; vec3 v13 = vPos[3] - vPos[1]; - float fac1 = dot(view_vec, cross(v10, v12)); - float fac2 = dot(view_vec, cross(v12, v13)); + vec3 n0 = cross(v12, v10); + vec3 n3 = cross(v13, v12); + + float fac0 = dot(view_vec, n0); + float fac3 = dot(view_vec, n3); /* If both adjacent verts are facing the camera the same way, * then it isn't an outline edge. */ - if (sign(fac1) == sign(fac2)) + if (sign(fac0) == sign(fac3)) + return; + + /* Don't outline if concave edge. */ + if (dot(n0, v13) > 0.0) return; vec2 thick = vColSize[0].w * (lineThickness / viewportSize); diff --git a/source/blender/draw/modes/shaders/armature_shape_solid_frag.glsl b/source/blender/draw/modes/shaders/armature_shape_solid_frag.glsl index 248281f4e79..89f4d97f29b 100644 --- a/source/blender/draw/modes/shaders/armature_shape_solid_frag.glsl +++ b/source/blender/draw/modes/shaders/armature_shape_solid_frag.glsl @@ -1,5 +1,5 @@ -flat in vec4 finalColor; +in vec4 finalColor; out vec4 fragColor; diff --git a/source/blender/draw/modes/shaders/armature_shape_solid_vert.glsl b/source/blender/draw/modes/shaders/armature_shape_solid_vert.glsl index 701fc9c38ab..505868c9dcf 100644 --- a/source/blender/draw/modes/shaders/armature_shape_solid_vert.glsl +++ b/source/blender/draw/modes/shaders/armature_shape_solid_vert.glsl @@ -16,7 +16,7 @@ in mat4 InstanceModelMatrix; in vec3 boneColor; in vec3 stateColor; -flat out vec4 finalColor; +out vec4 finalColor; void main() { |