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>2018-05-21 01:15:19 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-05-26 23:28:52 +0300
commit44935fdfa342307259c4f7163738d5e74374e70a (patch)
treed8222164a793cc0f13c8e7201aa7c3fa6fcca699 /source/blender/draw/modes/shaders
parent2241a61aabf50bf10b7561dbd57fc2ded64d29c3 (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')
-rw-r--r--source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl13
-rw-r--r--source/blender/draw/modes/shaders/armature_shape_solid_frag.glsl2
-rw-r--r--source/blender/draw/modes/shaders/armature_shape_solid_vert.glsl2
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()
{