Browse Source

Improve metallic transmission (#21894)

* Improve Metallic Transmission shader

* Update example screenshots
Takahiro 4 years ago
parent
commit
3fb307979f

BIN
examples/screenshots/webgl_loader_gltf_transmission.jpg


+ 2 - 2
src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js

@@ -11,11 +11,11 @@ material.specularRoughness = min( material.specularRoughness, 1.0 );
 
 #ifdef REFLECTIVITY
 
-	material.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );
+	material.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), rawDiffuseColor, metalnessFactor );
 
 #else
 
-	material.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );
+	material.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), rawDiffuseColor, metalnessFactor );
 
 #endif
 

+ 3 - 0
src/renderers/shaders/ShaderLib/meshphysical_frag.glsl.js

@@ -100,6 +100,9 @@ void main() {
 	#include <clearcoat_normal_fragment_begin>
 	#include <clearcoat_normal_fragment_maps>
 	#include <emissivemap_fragment>
+
+	vec3 rawDiffuseColor = diffuseColor.rgb;
+
 	#include <transmission_fragment>
 
 	// accumulation