浏览代码

RendererNodes: Add .isToneMappingState (#26463)

* Renderer: Added .getRenderTarget()

* Nodes: Add .isToneMappingState

* Revert Add getRenderTarget()
sunag 2 年之前
父节点
当前提交
e4db75aeaa
共有 2 个文件被更改,包括 18 次插入7 次删除
  1. 6 6
      examples/jsm/renderers/common/Renderer.js
  2. 12 1
      examples/jsm/renderers/common/nodes/Nodes.js

+ 6 - 6
examples/jsm/renderers/common/Renderer.js

@@ -600,6 +600,12 @@ class Renderer {
 
 	}
 
+	getRenderTarget() {
+
+		return this._renderTarget;
+
+	}
+
 	async compute( computeNodes ) {
 
 		if ( this._initialized === false ) await this.init();
@@ -650,12 +656,6 @@ class Renderer {
 
 	}
 
-	getRenderTarget() {
-
-		return this._renderTarget;
-
-	}
-
 	hasFeature( name ) {
 
 		return this.backend.hasFeature( name );

+ 12 - 1
examples/jsm/renderers/common/nodes/Nodes.js

@@ -77,6 +77,8 @@ class Nodes extends DataMap {
 
 	getToneMappingNode() {
 
+		if ( this.isToneMappingState === false ) return null;
+
 		return this.renderer.toneMappingNode || this.get( this.renderer ).toneMappingNode || null;
 
 	}
@@ -107,13 +109,22 @@ class Nodes extends DataMap {
 
 	}
 
+	get isToneMappingState() {
+
+		const renderer = this.renderer;
+		const renderTarget = renderer.getRenderTarget();
+
+		return renderTarget && renderTarget.isCubeRenderTarget ? false : true;
+
+	}
+
 	updateToneMapping() {
 
 		const renderer = this.renderer;
 		const rendererData = this.get( renderer );
 		const rendererToneMapping = renderer.toneMapping;
 
-		if ( rendererToneMapping !== NoToneMapping ) {
+		if ( this.isToneMappingState && rendererToneMapping !== NoToneMapping ) {
 
 			if ( rendererData.toneMapping !== rendererToneMapping ) {