diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-05-20 14:16:14 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-05-20 17:58:07 +0300 |
commit | d9d65a06d3db36efd5848cf7ae3e08c72c2c296b (patch) | |
tree | 74157d860a6191d92b70df8c8b3f667bc9302ca4 /source/blender/draw/engines/eevee/shaders/shadow_vert.glsl | |
parent | 4c3382d55f98c721f6116919acce4abba8f01f11 (diff) |
Eevee: Move cube shadows to octahedron shadowmaps.
We render linear distance to the light in a R32 texture and store it into an octahedron projection inside a 2D texture array.
This render the sampling function much more simpler and without edge artifacts.
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/shadow_vert.glsl')
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/shadow_vert.glsl | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/shadow_vert.glsl b/source/blender/draw/engines/eevee/shaders/shadow_vert.glsl index ffb99f1b35c..323cf4d2a99 100644 --- a/source/blender/draw/engines/eevee/shaders/shadow_vert.glsl +++ b/source/blender/draw/engines/eevee/shaders/shadow_vert.glsl @@ -1,12 +1,21 @@ +layout(std140) uniform shadow_render_block { + mat4 ShadowMatrix[6]; + vec4 lampPosition; + int layer; +}; + uniform mat4 ShadowModelMatrix; in vec3 pos; out vec4 vPos; +out float lDist; + flat out int face; void main() { vPos = ShadowModelMatrix * vec4(pos, 1.0); + lDist = distance(lampPosition.xyz, vPos.xyz); face = gl_InstanceID; }
\ No newline at end of file |