@@ -251,14 +251,22 @@ class PassNode extends TempNode {
251251 */
252252 this . _height = 1 ;
253253
254- const depthTexture = new DepthTexture ( ) ;
255- depthTexture . isRenderTargetTexture = true ;
256- //depthTexture.type = FloatType;
257- depthTexture . name = 'depth' ;
258-
259254 const renderTarget = new RenderTarget ( this . _width * this . _pixelRatio , this . _height * this . _pixelRatio , { type : HalfFloatType , ...options , } ) ;
260255 renderTarget . texture . name = 'output' ;
261- renderTarget . depthTexture = depthTexture ;
256+
257+ let depthTexture = null ;
258+
259+ if ( this . scope === PassNode . DEPTH || options . depthBuffer !== false ) {
260+
261+ depthTexture = new DepthTexture ( ) ;
262+ depthTexture . isRenderTargetTexture = true ;
263+ //depthTexture.type = FloatType;
264+ depthTexture . name = 'depth' ;
265+
266+ renderTarget . depthTexture = depthTexture ;
267+
268+ }
269+
262270
263271 /**
264272 * The pass's render target.
@@ -310,13 +318,18 @@ class PassNode extends TempNode {
310318 * A dictionary holding the internal result textures.
311319 *
312320 * @private
313- * @type {Object<string, Texture> }
321+ * @type {{ output: Texture, depth?: DepthTexture } }
314322 */
315323 this . _textures = {
316- output : renderTarget . texture ,
317- depth : depthTexture
324+ output : renderTarget . texture
318325 } ;
319326
327+ if ( depthTexture !== null ) {
328+
329+ this . _textures . depth = depthTexture ;
330+
331+ }
332+
320333 /**
321334 * A dictionary holding the internal texture nodes.
322335 *
@@ -757,7 +770,7 @@ class PassNode extends TempNode {
757770
758771 this . renderTarget . texture . type = renderer . getOutputBufferType ( ) ;
759772
760- if ( renderer . reversedDepthBuffer === true ) {
773+ if ( renderer . reversedDepthBuffer === true && this . renderTarget . depthTexture !== null ) {
761774
762775 this . renderTarget . depthTexture . type = FloatType ;
763776
0 commit comments