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>2019-12-05 18:24:56 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-12-05 18:36:06 +0300
commitb9f896f6f1bca1e1121a139941dd4a531d2b0f61 (patch)
tree8319ac955206f9ed02d8095d38192fd3c80ca859 /source/blender/draw/engines/overlay/shaders/armature_shape_wire_vert.glsl
parentd40579c62b40e2ad7d30ae4196169c3328610d41 (diff)
Overlay Engine: Armature: Use Wire AA on custom bone loose edges
Diffstat (limited to 'source/blender/draw/engines/overlay/shaders/armature_shape_wire_vert.glsl')
-rw-r--r--source/blender/draw/engines/overlay/shaders/armature_shape_wire_vert.glsl29
1 files changed, 29 insertions, 0 deletions
diff --git a/source/blender/draw/engines/overlay/shaders/armature_shape_wire_vert.glsl b/source/blender/draw/engines/overlay/shaders/armature_shape_wire_vert.glsl
new file mode 100644
index 00000000000..27dc2d24831
--- /dev/null
+++ b/source/blender/draw/engines/overlay/shaders/armature_shape_wire_vert.glsl
@@ -0,0 +1,29 @@
+
+/* ---- Instantiated Attrs ---- */
+in vec3 pos;
+in vec3 nor;
+
+/* ---- Per instance Attrs ---- */
+in mat4 inst_obmat;
+
+out vec4 finalColor;
+flat out vec2 edgeStart;
+noperspective out vec2 edgePos;
+
+void main()
+{
+ vec4 bone_color, state_color;
+ mat4 model_mat = extract_matrix_packed_data(inst_obmat, state_color, bone_color);
+
+ vec3 world_pos = (model_mat * vec4(pos, 1.0)).xyz;
+ gl_Position = point_world_to_ndc(world_pos);
+
+ finalColor.rgb = mix(state_color.rgb, bone_color.rgb, 0.5);
+ finalColor.a = 1.0;
+
+ edgeStart = edgePos = ((gl_Position.xy / gl_Position.w) * 0.5 + 0.5) * sizeViewport.xy;
+
+#ifdef USE_WORLD_CLIP_PLANES
+ world_clip_planes_calc_clip_distance(world_pos);
+#endif
+}