diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-05-09 00:13:09 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-05-09 00:28:06 +0300 |
commit | c9537ee5c3f58105f553a32f337f7c5d1be8b1a4 (patch) | |
tree | 03dc791e54d44b4e278c2e9ac57746b4e72d86e3 /source/blender/draw/modes/shaders/armature_shape_solid_vert.glsl | |
parent | 82046756898b5056f6318ab36fa0bfe331eddd42 (diff) |
Overlay: Remove use of NormalMatrix
Diffstat (limited to 'source/blender/draw/modes/shaders/armature_shape_solid_vert.glsl')
-rw-r--r-- | source/blender/draw/modes/shaders/armature_shape_solid_vert.glsl | 13 |
1 files changed, 4 insertions, 9 deletions
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 2df25bf0e03..4107aab03ff 100644 --- a/source/blender/draw/modes/shaders/armature_shape_solid_vert.glsl +++ b/source/blender/draw/modes/shaders/armature_shape_solid_vert.glsl @@ -1,11 +1,4 @@ -uniform mat3 NormalMatrix; -uniform mat4 ViewMatrixInverse; -uniform mat4 ViewProjectionMatrix; - -uniform mat4 ViewMatrix; -uniform mat4 ProjectionMatrix; - /* ---- Instantiated Attrs ---- */ in vec3 pos; in vec3 nor; @@ -19,8 +12,10 @@ out vec4 finalColor; void main() { - mat3 NormalMatrix = transpose(inverse(mat3(ViewMatrix * InstanceModelMatrix))); - vec3 normal = normalize(NormalMatrix * nor); + /* This is slow and run per vertex, but it's still faster than + * doing it per instance on CPU and sending it on via instance attribute. */ + mat3 normal_mat = transpose(inverse(mat3(InstanceModelMatrix))); + vec3 normal = normalize(transform_normal_world_to_view(normal_mat * nor)); /* Do lighting at an angle to avoid flat shading on front facing bone. */ const vec3 light = vec3(0.1, 0.1, 0.8); |