diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-07-23 21:33:29 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-07-24 16:36:37 +0300 |
commit | 7585c8272201856e8504a93b435d3bed3476b98e (patch) | |
tree | 3ff68347e65fe678d5ddb89381e222f1de8a9d1a /source/blender/draw/engines/eevee/shaders/effect_minmaxz_frag.glsl | |
parent | 85f1b7358abb602b5a6200e2da32e82bfbf4ab65 (diff) |
Eevee: Make MinmaxZ compatible with textureArray
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/effect_minmaxz_frag.glsl')
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/effect_minmaxz_frag.glsl | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/effect_minmaxz_frag.glsl b/source/blender/draw/engines/eevee/shaders/effect_minmaxz_frag.glsl index f9478f6770e..3d580d0ce39 100644 --- a/source/blender/draw/engines/eevee/shaders/effect_minmaxz_frag.glsl +++ b/source/blender/draw/engines/eevee/shaders/effect_minmaxz_frag.glsl @@ -4,11 +4,20 @@ * Adapted from http://rastergrid.com/blog/2010/10/hierarchical-z-map-based-occlusion-culling/ **/ +#ifdef LAYERED +uniform sampler2DArray depthBuffer; +uniform int depthLayer; +#else uniform sampler2D depthBuffer; +#endif float sampleLowerMip(ivec2 texel) { +#ifdef LAYERED + return texelFetch(depthBuffer, ivec3(texel, depthLayer), 0).r; +#else return texelFetch(depthBuffer, texel, 0).r; +#endif } void minmax(inout float out_val, float in_val) @@ -23,7 +32,7 @@ void minmax(inout float out_val, float in_val) void main() { ivec2 texelPos = ivec2(gl_FragCoord.xy); - ivec2 mipsize = textureSize(depthBuffer, 0); + ivec2 mipsize = textureSize(depthBuffer, 0).xy; #ifndef COPY_DEPTH texelPos *= 2; |