diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-05-19 19:53:53 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-05-20 20:14:22 +0300 |
commit | 2c6106247bfde4d649fc788a6b933d48221dc7b3 (patch) | |
tree | bdd8d2ff95288146b33b65b5e206911035a0a6c0 /source/blender/draw/engines/workbench/shaders/workbench_shadow_vert.glsl | |
parent | ef90d467008bbb471021e376b8d36554543544a4 (diff) |
Workbench: Precompute light direction in object space.
Avoid 2 matrix multiplication in the shader.
Diffstat (limited to 'source/blender/draw/engines/workbench/shaders/workbench_shadow_vert.glsl')
-rw-r--r-- | source/blender/draw/engines/workbench/shaders/workbench_shadow_vert.glsl | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_shadow_vert.glsl b/source/blender/draw/engines/workbench/shaders/workbench_shadow_vert.glsl index 8f02ce26626..4a06d325db6 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_shadow_vert.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_shadow_vert.glsl @@ -1,7 +1,6 @@ #define EPSILON 0.0001 -#define INFINITE 10000.0 +#define INFINITE 1000000.0 -uniform mat4 ModelMatrixInverse; uniform mat4 ModelViewProjectionMatrix; uniform mat4 ViewProjectionMatrix; uniform vec3 lightDirection = vec3(0.57, 0.57, -0.57); @@ -16,9 +15,7 @@ out VertexData { void main() { - /* TODO precompute light_direction */ - vec3 light_direction = mat3(ModelMatrixInverse) * lightDirection; vData.pos = pos; vData.frontPosition = ModelViewProjectionMatrix * vec4(pos, 1.0); - vData.backPosition = ModelViewProjectionMatrix * vec4(pos + light_direction * INFINITE, 1.0); + vData.backPosition = ModelViewProjectionMatrix * vec4(pos + lightDirection * INFINITE, 1.0); } |