From 695ca96fb704e63d9b044473b1effed3c50e500e Mon Sep 17 00:00:00 2001 From: sunag Date: Tue, 21 Mar 2023 20:31:21 -0300 Subject: [PATCH] MeshStandardNodeMaterial: Fix specular color node. --- examples/jsm/nodes/materials/MeshStandardNodeMaterial.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js b/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js index e4239b3ae4285b..17d0f241fc5e3d 100644 --- a/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +++ b/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 ) {