@@ -203,19 +203,27 @@ class CubeCamera extends Object3D {
203203
204204 renderTarget . texture . generateMipmaps = false ;
205205
206+ // https://github.com/mrdoob/three.js/issues/31413#issuecomment-3095966812
207+ const reversedDepthBuffer = ! ! ( renderer . isWebGLRenderer && renderer . state . buffers . depth . getReversed ( ) ) ;
208+
206209 renderer . setRenderTarget ( renderTarget , 0 , activeMipmapLevel ) ;
210+ if ( reversedDepthBuffer && renderer . autoClear === false ) renderer . clearDepth ( ) ;
207211 renderer . render ( scene , cameraPX ) ;
208212
209213 renderer . setRenderTarget ( renderTarget , 1 , activeMipmapLevel ) ;
214+ if ( reversedDepthBuffer && renderer . autoClear === false ) renderer . clearDepth ( ) ;
210215 renderer . render ( scene , cameraNX ) ;
211216
212217 renderer . setRenderTarget ( renderTarget , 2 , activeMipmapLevel ) ;
218+ if ( reversedDepthBuffer && renderer . autoClear === false ) renderer . clearDepth ( ) ;
213219 renderer . render ( scene , cameraPY ) ;
214220
215221 renderer . setRenderTarget ( renderTarget , 3 , activeMipmapLevel ) ;
222+ if ( reversedDepthBuffer && renderer . autoClear === false ) renderer . clearDepth ( ) ;
216223 renderer . render ( scene , cameraNY ) ;
217224
218225 renderer . setRenderTarget ( renderTarget , 4 , activeMipmapLevel ) ;
226+ if ( reversedDepthBuffer && renderer . autoClear === false ) renderer . clearDepth ( ) ;
219227 renderer . render ( scene , cameraPZ ) ;
220228
221229 // mipmaps are generated during the last call of render()
@@ -224,6 +232,7 @@ class CubeCamera extends Object3D {
224232 renderTarget . texture . generateMipmaps = generateMipmaps ;
225233
226234 renderer . setRenderTarget ( renderTarget , 5 , activeMipmapLevel ) ;
235+ if ( reversedDepthBuffer && renderer . autoClear === false ) renderer . clearDepth ( ) ;
227236 renderer . render ( scene , cameraNZ ) ;
228237
229238 renderer . setRenderTarget ( currentRenderTarget , currentActiveCubeFace , currentActiveMipmapLevel ) ;
0 commit comments