Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 26 additions & 2 deletions src/renderers/common/Renderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -1465,6 +1465,28 @@ class Renderer {

}

// make sure a new render target has correct default depth values

if ( renderTarget !== null && renderTarget.depthBuffer === true ) {

const renderTargetData = this._textures.get( renderTarget );

if ( renderTargetData.depthInitialized !== true ) {

// we need a single manual clear if auto clear depth is disabled

if ( this.autoClear === false || ( this.autoClear === true && this.autoClearDepth === false ) ) {

this.clearDepth();

}

renderTargetData.depthInitialized = true;

}

}

//

const renderContext = this._renderContexts.get( renderTarget, this._mrt, this._callDepth );
Expand Down Expand Up @@ -2198,7 +2220,7 @@ class Renderer {

const renderTargetData = this._textures.get( renderTarget );

renderContext = this._renderContexts.get( renderTarget );
renderContext = this._renderContexts.get( renderTarget, null, - 1 ); // using - 1 for the call depth to get a render context for the clear operation
renderContext.textures = renderTargetData.textures;
renderContext.depthTexture = renderTargetData.depthTexture;
renderContext.width = renderTargetData.width;
Expand All @@ -2217,6 +2239,8 @@ class Renderer {
renderContext.activeCubeFace = this.getActiveCubeFace();
renderContext.activeMipmapLevel = this.getActiveMipmapLevel();

if ( renderTarget.depthBuffer === true ) renderTargetData.depthInitialized = true;

}

this.backend.clear( color, depth, stencil, renderContext );
Expand Down Expand Up @@ -2480,7 +2504,7 @@ class Renderer {
/**
* Sets the output render target for the renderer.
*
* @param {Object} renderTarget - The render target to set as the output target.
* @param {?RenderTarget} renderTarget - The render target to set as the output target.
*/
setOutputRenderTarget( renderTarget ) {

Expand Down