2
0
Эх сурвалжийг харах

Implements approach agreed to here: https://github.com/mrdoob/three.js/issues/10691 Support Substance OcclusionRoughnessMetallic maps.

Ben Houston 8 жил өмнө
parent
commit
602a9811d8

+ 1 - 0
src/renderers/shaders/ShaderChunk/aomap_fragment.glsl

@@ -1,5 +1,6 @@
 #ifdef USE_AOMAP
 
+	// reads channel R, intended to be used with a combined OcclusionRoughnessMetallic (RGB) texture
 	float ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;
 
 	reflectedLight.indirectDiffuse *= ambientOcclusion;

+ 3 - 1
src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl

@@ -3,6 +3,8 @@ float metalnessFactor = metalness;
 #ifdef USE_METALNESSMAP
 
 	vec4 texelMetalness = texture2D( metalnessMap, vUv );
-	metalnessFactor *= texelMetalness.r;
+
+	// reads channel B, intended to be used with a combined OcclusionRoughnessMetallic (RGB) texture
+	metalnessFactor *= texelMetalness.b;
 
 #endif

+ 3 - 1
src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl

@@ -3,6 +3,8 @@ float roughnessFactor = roughness;
 #ifdef USE_ROUGHNESSMAP
 
 	vec4 texelRoughness = texture2D( roughnessMap, vUv );
-	roughnessFactor *= texelRoughness.r;
+
+	// reads channel G, intended to be used with a combined OcclusionRoughnessMetallic (RGB) texture
+	roughnessFactor *= texelRoughness.g;
 
 #endif