瀏覽代碼

TSL: `VaryingNode` - Fix twice flow node (#28504)

sunag 1 年之前
父節點
當前提交
b609f8a0d7
共有 1 個文件被更改,包括 11 次插入4 次删除
  1. 11 4
      examples/jsm/nodes/core/VaryingNode.js

+ 11 - 4
examples/jsm/nodes/core/VaryingNode.js

@@ -66,13 +66,20 @@ class VaryingNode extends Node {
 
 	generate( builder ) {
 
-		const type = this.getNodeType( builder );
+		const properties = builder.getNodeProperties( this );
 		const varying = this.setupVarying( builder );
 
-		const propertyName = builder.getPropertyName( varying, NodeShaderStage.VERTEX );
+		if ( properties.propertyName === undefined ) {
+
+			const type = this.getNodeType( builder );
+			const propertyName = builder.getPropertyName( varying, NodeShaderStage.VERTEX );
+
+			// force node run in vertex stage
+			builder.flowNodeFromShaderStage( NodeShaderStage.VERTEX, this.node, type, propertyName );
+
+			properties.propertyName = propertyName;
 
-		// force node run in vertex stage
-		builder.flowNodeFromShaderStage( NodeShaderStage.VERTEX, this.node, type, propertyName );
+		}
 
 		return builder.getPropertyName( varying );