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-05 21:27:22 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-05-05 22:04:21 +0300
commit3b075d0c8d86551e74672866a1a210adb9f24c24 (patch)
treebb67c759863bb1dac8e6365329acb68f7d9e945a /source/blender/draw/modes/shaders
parenteec3fc1273e6c02ab5749a054261287fb0da0f89 (diff)
Armature: Make bone outlines thickness variable.
Diffstat (limited to 'source/blender/draw/modes/shaders')
-rw-r--r--source/blender/draw/modes/shaders/armature_envelope_outline_vert.glsl6
-rw-r--r--source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl6
-rw-r--r--source/blender/draw/modes/shaders/armature_shape_outline_vert.glsl6
-rw-r--r--source/blender/draw/modes/shaders/armature_sphere_outline_vert.glsl6
4 files changed, 12 insertions, 12 deletions
diff --git a/source/blender/draw/modes/shaders/armature_envelope_outline_vert.glsl b/source/blender/draw/modes/shaders/armature_envelope_outline_vert.glsl
index e534e8cef1d..a836d7fa9e1 100644
--- a/source/blender/draw/modes/shaders/armature_envelope_outline_vert.glsl
+++ b/source/blender/draw/modes/shaders/armature_envelope_outline_vert.glsl
@@ -16,7 +16,7 @@ in vec2 pos2;
/* Assumed to be in world coordinate already. */
in vec4 headSphere;
in vec4 tailSphere;
-in vec4 color;
+in vec4 outlineColorSize;
in vec3 xAxis;
flat out vec4 finalColor;
@@ -145,12 +145,12 @@ void main()
vec2 edge_dir = compute_dir(ss0, ss1, ss2);
bool outer = ((gl_VertexID & 1) == 1);
- vec2 t = lineThickness / viewportSize;
+ vec2 t = outlineColorSize.w * (lineThickness / viewportSize);
t *= pres_fac;
t = (outer) ? t : vec2(0.0);
gl_Position = p1;
gl_Position.xy += t * edge_dir;
- finalColor = color;
+ finalColor = vec4(outlineColorSize.rgb, 1.0);
}
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 07eea8a1f34..dc7ed5e202a 100644
--- a/source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl
+++ b/source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl
@@ -8,7 +8,7 @@ in float vZ[];
in float vFacing[];
in vec2 ssPos[];
in vec2 ssNor[];
-in vec4 vCol[];
+in vec4 vColSize[];
flat out vec4 finalColor;
uniform mat4 ProjectionMatrix;
@@ -53,9 +53,9 @@ void emit_corner(const int e, vec2 thick, bool is_persp)
void main(void)
{
- finalColor = vCol[0];
+ finalColor = vec4(vColSize[0].rgb, 1.0);
- vec2 thick = lineThickness / viewportSize;
+ vec2 thick = vColSize[0].w * (lineThickness / viewportSize);
bool is_persp = (ProjectionMatrix[3][3] == 0.0);
const ivec3 edges = ivec3(0, 2, 4);
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 2bfac594493..73916163b9a 100644
--- a/source/blender/draw/modes/shaders/armature_shape_outline_vert.glsl
+++ b/source/blender/draw/modes/shaders/armature_shape_outline_vert.glsl
@@ -12,14 +12,14 @@ in vec3 snor;
/* ---- Per instance Attribs ---- */
in mat4 InstanceModelMatrix;
-in vec4 color;
+in vec4 outlineColorSize;
out vec4 pPos;
out float vZ;
out float vFacing;
out vec2 ssPos;
out vec2 ssNor;
-out vec4 vCol;
+out vec4 vColSize;
/* project to screen space */
vec2 proj(vec4 pos)
@@ -49,5 +49,5 @@ void main()
ssPos = proj(pPos);
- vCol = color;
+ vColSize = outlineColorSize;
}
diff --git a/source/blender/draw/modes/shaders/armature_sphere_outline_vert.glsl b/source/blender/draw/modes/shaders/armature_sphere_outline_vert.glsl
index b5601e56210..a169facd45a 100644
--- a/source/blender/draw/modes/shaders/armature_sphere_outline_vert.glsl
+++ b/source/blender/draw/modes/shaders/armature_sphere_outline_vert.glsl
@@ -10,7 +10,7 @@ in vec2 pos1;
/* ---- Per instance Attribs ---- */
in mat4 InstanceModelMatrix;
-in vec4 color;
+in vec4 outlineColorSize;
flat out vec4 finalColor;
@@ -91,12 +91,12 @@ void main()
bool outer = ((gl_VertexID & 1) == 1);
- vec2 t = lineThickness / viewportSize;
+ vec2 t = outlineColorSize.w * (lineThickness / viewportSize);
t *= (is_persp) ? abs(V.z) : 1.0;
t = (outer) ? t : vec2(0.0);
gl_Position = p0;
gl_Position.xy += t * edge_dir;
- finalColor = color;
+ finalColor = vec4(outlineColorSize.rgb, 1.0);
}