File tree Expand file tree Collapse file tree 1 file changed +24
-6
lines changed
src/renderers/shaders/ShaderChunk Expand file tree Collapse file tree 1 file changed +24
-6
lines changed Original file line number Diff line number Diff line change @@ -262,9 +262,18 @@ export default /* glsl */`
262262
263263 if ( viewSpaceZ - shadowCameraFar <= 0.0 && viewSpaceZ - shadowCameraNear >= 0.0 ) {
264264
265- // Calculate perspective depth for cube shadow map
266- // Standard perspective depth formula: depth = (far * (z - near)) / (z * (far - near))
267- float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) );
265+ // viewZ to perspective depth
266+
267+ #ifdef USE_REVERSED_DEPTH_BUFFER
268+
269+ float dp = ( shadowCameraNear * ( shadowCameraFar - viewSpaceZ ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) );
270+
271+ #else
272+
273+ float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) );
274+
275+ #endif
276+
268277 dp += shadowBias;
269278
270279 // Hardware PCF with LinearFilter gives us 4-tap filtering per sample
@@ -317,9 +326,18 @@ export default /* glsl */`
317326
318327 if ( viewSpaceZ - shadowCameraFar <= 0.0 && viewSpaceZ - shadowCameraNear >= 0.0 ) {
319328
320- // Calculate perspective depth for cube shadow map
321- // Standard perspective depth formula: depth = (far * (z - near)) / (z * (far - near))
322- float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) );
329+ // viewZ to perspective depth
330+
331+ #ifdef USE_REVERSED_DEPTH_BUFFER
332+
333+ float dp = ( shadowCameraNear * ( shadowCameraFar - viewSpaceZ ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) );
334+
335+ #else
336+
337+ float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) );
338+
339+ #endif
340+
323341 dp += shadowBias;
324342
325343 // Direction from light to fragment
You can’t perform that action at this time.
0 commit comments