Browse Source

TSL: Fix varying code sequence in vertex stage (#33709)

sunag 1 week ago
parent
commit
175e58e440
1 changed files with 12 additions and 2 deletions
  1. 12 2
      src/nodes/core/VaryingNode.js

+ 12 - 2
src/nodes/core/VaryingNode.js

@@ -170,8 +170,18 @@ class VaryingNode extends Node {
 			const type = this.getNodeType( builder );
 			const propertyName = builder.getPropertyName( varying, NodeShaderStage.VERTEX );
 
-			// force node run in vertex stage
-			builder.flowNodeFromShaderStage( NodeShaderStage.VERTEX, properties.node, type, propertyName );
+			if ( builder.shaderStage === NodeShaderStage.VERTEX ) {
+
+				const snippet = properties.node.build( builder, type );
+
+				builder.addLineFlowCode( `${ propertyName } = ${ snippet }`, this );
+
+			} else {
+
+				// force node run in vertex stage
+				builder.flowNodeFromShaderStage( NodeShaderStage.VERTEX, properties.node, type, propertyName );
+
+			}
 
 			properties[ propertyKey ] = propertyName;
 

粤ICP备19079148号