diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-05-05 21:27:22 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-05-05 22:04:21 +0300 |
commit | 3b075d0c8d86551e74672866a1a210adb9f24c24 (patch) | |
tree | bb67c759863bb1dac8e6365329acb68f7d9e945a /source/blender/draw/modes/shaders | |
parent | eec3fc1273e6c02ab5749a054261287fb0da0f89 (diff) |
Armature: Make bone outlines thickness variable.
Diffstat (limited to 'source/blender/draw/modes/shaders')
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); } |