Browse Source

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

sunag 1 year ago
parent
commit
b609f8a0d7
1 changed files with 11 additions and 4 deletions
  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 ) {
 	generate( builder ) {
 
 
-		const type = this.getNodeType( builder );
+		const properties = builder.getNodeProperties( this );
 		const varying = this.setupVarying( builder );
 		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 );
 		return builder.getPropertyName( varying );