浏览代码

NodeMaterial: Added support to material.vertexColors (#25002)

* NodeMaterial: Added support to .vertexColors

* Revert "NodeMaterial: Added support to .vertexColors"

This reverts commit 0fc4ae19cb2ed3a5b59bb5e4ffd9b9cfc210df22.

* move to colorNode
sunag 2 年之前
父节点
当前提交
2c069a909e
共有 1 个文件被更改,包括 9 次插入1 次删除
  1. 9 1
      examples/jsm/nodes/materials/NodeMaterial.js

+ 9 - 1
examples/jsm/nodes/materials/NodeMaterial.js

@@ -3,7 +3,7 @@ import { getNodesKeys, getCacheKey } from '../core/NodeUtils.js';
 import ExpressionNode from '../core/ExpressionNode.js';
 import {
 	float, vec3, vec4,
-	assign, label, mul, bypass,
+	assign, label, mul, bypass, attribute,
 	positionLocal, skinning, instance, modelViewProjection, lightingContext, colorSpace,
 	materialAlphaTest, materialColor, materialOpacity
 } from '../shadernode/ShaderNodeElements.js';
@@ -80,6 +80,14 @@ class NodeMaterial extends ShaderMaterial {
 		let colorNode = vec4( this.colorNode || materialColor );
 		let opacityNode = this.opacityNode ? float( this.opacityNode ) : materialOpacity;
 
+		// VERTEX COLORS
+
+		if ( this.vertexColors === true && builder.geometry.hasAttribute( 'color' ) ) {
+
+			colorNode = vec4( mul( colorNode.xyz, attribute( 'color' ) ), colorNode.a );
+		
+		}
+
 		// COLOR
 
 		colorNode = builder.addFlow( 'fragment', label( colorNode, 'Color' ) );