Browse Source

WebGLMaterials: Only update transmission uniforms when material.transmission > 0. (#22427)

Mr.doob 3 years ago
parent
commit
8582be05d9
1 changed files with 13 additions and 14 deletions
  1. 13 14
      src/renderers/webgl/WebGLMaterials.js

+ 13 - 14
src/renderers/webgl/WebGLMaterials.js

@@ -632,32 +632,31 @@ function WebGLMaterials( properties ) {
 
 		}
 
-		uniforms.transmission.value = material.transmission;
+		if ( material.transmission > 0 ) {
 
-		if ( material.transmissionMap ) {
+			uniforms.transmission.value = material.transmission;
+			uniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;
+			uniforms.transmissionSamplerSize.value.set( transmissionRenderTarget.width, transmissionRenderTarget.height );
 
-			uniforms.transmissionMap.value = material.transmissionMap;
+			if ( material.transmissionMap ) {
 
-		}
+				uniforms.transmissionMap.value = material.transmissionMap;
 
-		if ( material.transmission > 0.0 ) {
+			}
 
-			uniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;
-			uniforms.transmissionSamplerSize.value.set( transmissionRenderTarget.width, transmissionRenderTarget.height );
+			uniforms.thickness.value = material.thickness;
 
-		}
+			if ( material.thicknessMap ) {
 
-		uniforms.thickness.value = material.thickness;
+				uniforms.thicknessMap.value = material.thicknessMap;
 
-		if ( material.thicknessMap ) {
+			}
 
-			uniforms.thicknessMap.value = material.thicknessMap;
+			uniforms.attenuationDistance.value = material.attenuationDistance;
+			uniforms.attenuationTint.value.copy( material.attenuationTint );
 
 		}
 
-		uniforms.attenuationDistance.value = material.attenuationDistance;
-		uniforms.attenuationTint.value.copy( material.attenuationTint );
-
 		uniforms.specularIntensity.value = material.specularIntensity;
 		uniforms.specularTint.value.copy( material.specularTint );