|
@@ -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' ) );
|