瀏覽代碼

MeshStandardNodeMaterial: Fix specular color node. (#25700)

sunag 2 年之前
父節點
當前提交
946f27f70a
共有 1 個文件被更改,包括 6 次插入3 次删除
  1. 6 3
      examples/jsm/nodes/materials/MeshStandardNodeMaterial.js

+ 6 - 3
examples/jsm/nodes/materials/MeshStandardNodeMaterial.js

@@ -1,7 +1,7 @@
 import NodeMaterial, { addNodeMaterial } from './NodeMaterial.js';
 import { diffuseColor, metalness, roughness, specularColor } from '../core/PropertyNode.js';
 import { mix } from '../math/MathNode.js';
-import { materialRoughness, materialMetalness, materialColor } from '../accessors/MaterialNode.js';
+import { materialRoughness, materialMetalness } from '../accessors/MaterialNode.js';
 import getRoughness from '../functions/material/getRoughness.js';
 import physicalLightingModel from '../functions/PhysicalLightingModel.js';
 import { float, vec3, vec4 } from '../shadernode/ShaderNode.js';
@@ -55,7 +55,6 @@ class MeshStandardNodeMaterial extends NodeMaterial {
 		const metalnessNode = this.metalnessNode ? float( this.metalnessNode ) : materialMetalness;
 
 		stack.assign( metalness, metalnessNode );
-		stack.assign( diffuseColor, vec4( diffuseColor.rgb.mul( metalnessNode.invert() ), diffuseColor.a ) );
 
 		// ROUGHNESS
 
@@ -66,10 +65,14 @@ class MeshStandardNodeMaterial extends NodeMaterial {
 
 		// SPECULAR COLOR
 
-		const specularColorNode = mix( vec3( 0.04 ), materialColor.rgb, metalnessNode );
+		const specularColorNode = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessNode );
 
 		stack.assign( specularColor, specularColorNode );
 
+		// DIFFUSE COLOR
+
+		stack.assign( diffuseColor, vec4( diffuseColor.rgb.mul( metalnessNode.invert() ), diffuseColor.a ) );
+
 	}
 
 	copy( source ) {