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-20 23:48:35 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-05-26 23:28:52 +0300
commit6b38fa8caba68ed9e694b995e71e190d9d07df25 (patch)
tree5217a41917546c96c3c4db8017de1b93ade8fa0f /source/blender/draw/modes/shaders/armature_shape_outline_vert.glsl
parent581b021a1f1e987df66a659683cfc057f51dc204 (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.glsl17
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;