|
|
@@ -251,14 +251,21 @@ class PassNode extends TempNode {
|
|
|
*/
|
|
|
this._height = 1;
|
|
|
|
|
|
- const depthTexture = new DepthTexture();
|
|
|
- depthTexture.isRenderTargetTexture = true;
|
|
|
- //depthTexture.type = FloatType;
|
|
|
- depthTexture.name = 'depth';
|
|
|
-
|
|
|
const renderTarget = new RenderTarget( this._width * this._pixelRatio, this._height * this._pixelRatio, { type: HalfFloatType, ...options, } );
|
|
|
renderTarget.texture.name = 'output';
|
|
|
- renderTarget.depthTexture = depthTexture;
|
|
|
+
|
|
|
+ let depthTexture = null;
|
|
|
+
|
|
|
+ if ( this.scope === PassNode.DEPTH || options.depthBuffer !== false ) {
|
|
|
+
|
|
|
+ depthTexture = new DepthTexture();
|
|
|
+ depthTexture.isRenderTargetTexture = true;
|
|
|
+ //depthTexture.type = FloatType;
|
|
|
+ depthTexture.name = 'depth';
|
|
|
+
|
|
|
+ renderTarget.depthTexture = depthTexture;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* The pass's render target.
|
|
|
@@ -310,13 +317,18 @@ class PassNode extends TempNode {
|
|
|
* A dictionary holding the internal result textures.
|
|
|
*
|
|
|
* @private
|
|
|
- * @type {Object<string, Texture>}
|
|
|
+ * @type {{ output: Texture, depth?: DepthTexture }}
|
|
|
*/
|
|
|
this._textures = {
|
|
|
- output: renderTarget.texture,
|
|
|
- depth: depthTexture
|
|
|
+ output: renderTarget.texture
|
|
|
};
|
|
|
|
|
|
+ if ( depthTexture !== null ) {
|
|
|
+
|
|
|
+ this._textures.depth = depthTexture;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* A dictionary holding the internal texture nodes.
|
|
|
*
|
|
|
@@ -567,6 +579,12 @@ class PassNode extends TempNode {
|
|
|
|
|
|
if ( texture === undefined ) {
|
|
|
|
|
|
+ if ( name === 'depth' ) {
|
|
|
+
|
|
|
+ throw new Error( 'THREE.PassNode: Depth texture is not available for this pass.' );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
const refTexture = this.renderTarget.texture;
|
|
|
|
|
|
texture = refTexture.clone();
|
|
|
@@ -757,7 +775,7 @@ class PassNode extends TempNode {
|
|
|
|
|
|
this.renderTarget.texture.type = renderer.getOutputBufferType();
|
|
|
|
|
|
- if ( renderer.reversedDepthBuffer === true ) {
|
|
|
+ if ( renderer.reversedDepthBuffer === true && this.renderTarget.depthTexture !== null ) {
|
|
|
|
|
|
this.renderTarget.depthTexture.type = FloatType;
|
|
|
|