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

moved all code into constructor

Filipp Keks 5 жил өмнө
parent
commit
2758d9e88e

+ 359 - 358
src/renderers/webgl/WebGLMaterials.js

@@ -7,671 +7,672 @@ import { BackSide } from "../../constants";
  * i.e. uniforms refresh before material is being rendered
  */
 
-var _properties;
-
 function WebGLMaterials( properties ) {
 
-	_properties = properties;
-
-}
+	function refreshUniforms( uniforms, material, environment, pixelRatio, height ) {
 
-WebGLMaterials.prototype.refreshUniforms = function ( uniforms, material, environment, pixelRatio, height ) {
+		if ( material.isMeshBasicMaterial ) {
 
-	if ( material.isMeshBasicMaterial ) {
+			refreshUniformsCommon( uniforms, material );
 
-		refreshUniformsCommon( uniforms, material );
+		} else if ( material.isMeshLambertMaterial ) {
 
-	} else if ( material.isMeshLambertMaterial ) {
+			refreshUniformsCommon( uniforms, material );
+			refreshUniformsLambert( uniforms, material );
 
-		refreshUniformsCommon( uniforms, material );
-		refreshUniformsLambert( uniforms, material );
+		} else if ( material.isMeshToonMaterial ) {
 
-	} else if ( material.isMeshToonMaterial ) {
+			refreshUniformsCommon( uniforms, material );
+			refreshUniformsToon( uniforms, material );
 
-		refreshUniformsCommon( uniforms, material );
-		refreshUniformsToon( uniforms, material );
+		} else if ( material.isMeshPhongMaterial ) {
 
-	} else if ( material.isMeshPhongMaterial ) {
+			refreshUniformsCommon( uniforms, material );
+			refreshUniformsPhong( uniforms, material );
 
-		refreshUniformsCommon( uniforms, material );
-		refreshUniformsPhong( uniforms, material );
+		} else if ( material.isMeshStandardMaterial ) {
 
-	} else if ( material.isMeshStandardMaterial ) {
+			refreshUniformsCommon( uniforms, material, environment );
 
-		refreshUniformsCommon( uniforms, material, environment );
+			if ( material.isMeshPhysicalMaterial ) {
 
-		if ( material.isMeshPhysicalMaterial ) {
+				refreshUniformsPhysical( uniforms, material, environment );
 
-			refreshUniformsPhysical( uniforms, material, environment );
+			} else {
 
-		} else {
+				refreshUniformsStandard( uniforms, material, environment );
 
-			refreshUniformsStandard( uniforms, material, environment );
+			}
 
-		}
+		} else if ( material.isMeshMatcapMaterial ) {
 
-	} else if ( material.isMeshMatcapMaterial ) {
+			refreshUniformsCommon( uniforms, material );
+			refreshUniformsMatcap( uniforms, material );
 
-		refreshUniformsCommon( uniforms, material );
-		refreshUniformsMatcap( uniforms, material );
+		} else if ( material.isMeshDepthMaterial ) {
 
-	} else if ( material.isMeshDepthMaterial ) {
+			refreshUniformsCommon( uniforms, material );
+			refreshUniformsDepth( uniforms, material );
 
-		refreshUniformsCommon( uniforms, material );
-		refreshUniformsDepth( uniforms, material );
+		} else if ( material.isMeshDistanceMaterial ) {
 
-	} else if ( material.isMeshDistanceMaterial ) {
+			refreshUniformsCommon( uniforms, material );
+			refreshUniformsDistance( uniforms, material );
 
-		refreshUniformsCommon( uniforms, material );
-		refreshUniformsDistance( uniforms, material );
+		} else if ( material.isMeshNormalMaterial ) {
 
-	} else if ( material.isMeshNormalMaterial ) {
+			refreshUniformsCommon( uniforms, material );
+			refreshUniformsNormal( uniforms, material );
 
-		refreshUniformsCommon( uniforms, material );
-		refreshUniformsNormal( uniforms, material );
+		} else if ( material.isLineBasicMaterial ) {
 
-	} else if ( material.isLineBasicMaterial ) {
+			refreshUniformsLine( uniforms, material );
 
-		refreshUniformsLine( uniforms, material );
+			if ( material.isLineDashedMaterial ) {
 
-		if ( material.isLineDashedMaterial ) {
+				refreshUniformsDash( uniforms, material );
 
-			refreshUniformsDash( uniforms, material );
+			}
 
-		}
+		} else if ( material.isPointsMaterial ) {
 
-	} else if ( material.isPointsMaterial ) {
+			refreshUniformsPoints( uniforms, material, pixelRatio, height );
 
-		refreshUniformsPoints( uniforms, material, pixelRatio, height );
+		} else if ( material.isSpriteMaterial ) {
 
-	} else if ( material.isSpriteMaterial ) {
+			refreshUniformsSprites( uniforms, material );
 
-		refreshUniformsSprites( uniforms, material );
+		} else if ( material.isShadowMaterial ) {
 
-	} else if ( material.isShadowMaterial ) {
+			uniforms.color.value.copy( material.color );
+			uniforms.opacity.value = material.opacity;
 
-		uniforms.color.value.copy( material.color );
-		uniforms.opacity.value = material.opacity;
+		}
 
-	}
+		if ( material.isShaderMaterial ) {
 
-	if ( material.isShaderMaterial ) {
+			material.uniformsNeedUpdate = false; // #15581
 
-		material.uniformsNeedUpdate = false; // #15581
+		}
 
 	}
 
-};
+	function refreshUniformsCommon( uniforms, material, environment ) {
 
-function refreshUniformsCommon( uniforms, material, environment ) {
+		uniforms.opacity.value = material.opacity;
 
-	uniforms.opacity.value = material.opacity;
+		if ( material.color ) {
 
-	if ( material.color ) {
+			uniforms.diffuse.value.copy( material.color );
 
-		uniforms.diffuse.value.copy( material.color );
+		}
 
-	}
+		if ( material.emissive ) {
+
+			uniforms.emissive.value.copy( material.emissive ).multiplyScalar( material.emissiveIntensity );
 
-	if ( material.emissive ) {
+		}
 
-		uniforms.emissive.value.copy( material.emissive ).multiplyScalar( material.emissiveIntensity );
+		if ( material.map ) {
 
-	}
+			uniforms.map.value = material.map;
 
-	if ( material.map ) {
+		}
 
-		uniforms.map.value = material.map;
+		if ( material.alphaMap ) {
 
-	}
+			uniforms.alphaMap.value = material.alphaMap;
 
-	if ( material.alphaMap ) {
+		}
 
-		uniforms.alphaMap.value = material.alphaMap;
+		if ( material.specularMap ) {
 
-	}
+			uniforms.specularMap.value = material.specularMap;
 
-	if ( material.specularMap ) {
+		}
 
-		uniforms.specularMap.value = material.specularMap;
+		var envMap = material.envMap || environment;
 
-	}
+		if ( envMap ) {
 
-	var envMap = material.envMap || environment;
+			uniforms.envMap.value = envMap;
 
-	if ( envMap ) {
+			uniforms.flipEnvMap.value = envMap.isCubeTexture ? - 1 : 1;
 
-		uniforms.envMap.value = envMap;
+			uniforms.reflectivity.value = material.reflectivity;
+			uniforms.refractionRatio.value = material.refractionRatio;
 
-		uniforms.flipEnvMap.value = envMap.isCubeTexture ? - 1 : 1;
+			uniforms.maxMipLevel.value = properties.get( envMap ).__maxMipLevel;
 
-		uniforms.reflectivity.value = material.reflectivity;
-		uniforms.refractionRatio.value = material.refractionRatio;
+		}
 
-		uniforms.maxMipLevel.value = _properties.get( envMap ).__maxMipLevel;
+		if ( material.lightMap ) {
 
-	}
+			uniforms.lightMap.value = material.lightMap;
+			uniforms.lightMapIntensity.value = material.lightMapIntensity;
 
-	if ( material.lightMap ) {
+		}
 
-		uniforms.lightMap.value = material.lightMap;
-		uniforms.lightMapIntensity.value = material.lightMapIntensity;
+		if ( material.aoMap ) {
 
-	}
+			uniforms.aoMap.value = material.aoMap;
+			uniforms.aoMapIntensity.value = material.aoMapIntensity;
 
-	if ( material.aoMap ) {
+		}
 
-		uniforms.aoMap.value = material.aoMap;
-		uniforms.aoMapIntensity.value = material.aoMapIntensity;
+		// uv repeat and offset setting priorities
+		// 1. color map
+		// 2. specular map
+		// 3. normal map
+		// 4. bump map
+		// 5. alpha map
+		// 6. emissive map
 
-	}
+		var uvScaleMap;
 
-	// uv repeat and offset setting priorities
-	// 1. color map
-	// 2. specular map
-	// 3. normal map
-	// 4. bump map
-	// 5. alpha map
-	// 6. emissive map
+		if ( material.map ) {
 
-	var uvScaleMap;
+			uvScaleMap = material.map;
 
-	if ( material.map ) {
+		} else if ( material.specularMap ) {
 
-		uvScaleMap = material.map;
+			uvScaleMap = material.specularMap;
 
-	} else if ( material.specularMap ) {
+		} else if ( material.displacementMap ) {
 
-		uvScaleMap = material.specularMap;
+			uvScaleMap = material.displacementMap;
 
-	} else if ( material.displacementMap ) {
+		} else if ( material.normalMap ) {
 
-		uvScaleMap = material.displacementMap;
+			uvScaleMap = material.normalMap;
 
-	} else if ( material.normalMap ) {
+		} else if ( material.bumpMap ) {
 
-		uvScaleMap = material.normalMap;
+			uvScaleMap = material.bumpMap;
 
-	} else if ( material.bumpMap ) {
+		} else if ( material.roughnessMap ) {
 
-		uvScaleMap = material.bumpMap;
+			uvScaleMap = material.roughnessMap;
 
-	} else if ( material.roughnessMap ) {
+		} else if ( material.metalnessMap ) {
 
-		uvScaleMap = material.roughnessMap;
+			uvScaleMap = material.metalnessMap;
 
-	} else if ( material.metalnessMap ) {
+		} else if ( material.alphaMap ) {
 
-		uvScaleMap = material.metalnessMap;
+			uvScaleMap = material.alphaMap;
 
-	} else if ( material.alphaMap ) {
+		} else if ( material.emissiveMap ) {
 
-		uvScaleMap = material.alphaMap;
+			uvScaleMap = material.emissiveMap;
 
-	} else if ( material.emissiveMap ) {
+		}
 
-		uvScaleMap = material.emissiveMap;
+		if ( uvScaleMap !== undefined ) {
 
-	}
+			// backwards compatibility
+			if ( uvScaleMap.isWebGLRenderTarget ) {
 
-	if ( uvScaleMap !== undefined ) {
+				uvScaleMap = uvScaleMap.texture;
 
-		// backwards compatibility
-		if ( uvScaleMap.isWebGLRenderTarget ) {
+			}
 
-			uvScaleMap = uvScaleMap.texture;
+			if ( uvScaleMap.matrixAutoUpdate === true ) {
 
-		}
+				uvScaleMap.updateMatrix();
 
-		if ( uvScaleMap.matrixAutoUpdate === true ) {
+			}
 
-			uvScaleMap.updateMatrix();
+			uniforms.uvTransform.value.copy( uvScaleMap.matrix );
 
 		}
 
-		uniforms.uvTransform.value.copy( uvScaleMap.matrix );
+		// uv repeat and offset setting priorities for uv2
+		// 1. ao map
+		// 2. light map
 
-	}
+		var uv2ScaleMap;
 
-	// uv repeat and offset setting priorities for uv2
-	// 1. ao map
-	// 2. light map
+		if ( material.aoMap ) {
 
-	var uv2ScaleMap;
+			uv2ScaleMap = material.aoMap;
 
-	if ( material.aoMap ) {
+		} else if ( material.lightMap ) {
 
-		uv2ScaleMap = material.aoMap;
+			uv2ScaleMap = material.lightMap;
 
-	} else if ( material.lightMap ) {
+		}
 
-		uv2ScaleMap = material.lightMap;
+		if ( uv2ScaleMap !== undefined ) {
 
-	}
+			// backwards compatibility
+			if ( uv2ScaleMap.isWebGLRenderTarget ) {
 
-	if ( uv2ScaleMap !== undefined ) {
+				uv2ScaleMap = uv2ScaleMap.texture;
 
-		// backwards compatibility
-		if ( uv2ScaleMap.isWebGLRenderTarget ) {
+			}
 
-			uv2ScaleMap = uv2ScaleMap.texture;
+			if ( uv2ScaleMap.matrixAutoUpdate === true ) {
 
-		}
+				uv2ScaleMap.updateMatrix();
 
-		if ( uv2ScaleMap.matrixAutoUpdate === true ) {
+			}
 
-			uv2ScaleMap.updateMatrix();
+			uniforms.uv2Transform.value.copy( uv2ScaleMap.matrix );
 
 		}
 
-		uniforms.uv2Transform.value.copy( uv2ScaleMap.matrix );
-
 	}
 
-}
+	function refreshUniformsLine( uniforms, material ) {
+
+		uniforms.diffuse.value.copy( material.color );
+		uniforms.opacity.value = material.opacity;
 
-function refreshUniformsLine( uniforms, material ) {
+	}
 
-	uniforms.diffuse.value.copy( material.color );
-	uniforms.opacity.value = material.opacity;
+	function refreshUniformsDash( uniforms, material ) {
 
-}
+		uniforms.dashSize.value = material.dashSize;
+		uniforms.totalSize.value = material.dashSize + material.gapSize;
+		uniforms.scale.value = material.scale;
 
-function refreshUniformsDash( uniforms, material ) {
+	}
 
-	uniforms.dashSize.value = material.dashSize;
-	uniforms.totalSize.value = material.dashSize + material.gapSize;
-	uniforms.scale.value = material.scale;
+	function refreshUniformsPoints( uniforms, material, pixelRatio, height ) {
 
-}
+		uniforms.diffuse.value.copy( material.color );
+		uniforms.opacity.value = material.opacity;
+		uniforms.size.value = material.size * pixelRatio;
+		uniforms.scale.value = height * 0.5;
 
-function refreshUniformsPoints( uniforms, material, pixelRatio, height ) {
+		if ( material.map ) {
 
-	uniforms.diffuse.value.copy( material.color );
-	uniforms.opacity.value = material.opacity;
-	uniforms.size.value = material.size * pixelRatio;
-	uniforms.scale.value = height * 0.5;
+			uniforms.map.value = material.map;
 
-	if ( material.map ) {
+		}
 
-		uniforms.map.value = material.map;
+		if ( material.alphaMap ) {
 
-	}
+			uniforms.alphaMap.value = material.alphaMap;
 
-	if ( material.alphaMap ) {
+		}
 
-		uniforms.alphaMap.value = material.alphaMap;
+		// uv repeat and offset setting priorities
+		// 1. color map
+		// 2. alpha map
 
-	}
+		var uvScaleMap;
 
-	// uv repeat and offset setting priorities
-	// 1. color map
-	// 2. alpha map
+		if ( material.map ) {
 
-	var uvScaleMap;
+			uvScaleMap = material.map;
 
-	if ( material.map ) {
+		} else if ( material.alphaMap ) {
 
-		uvScaleMap = material.map;
+			uvScaleMap = material.alphaMap;
 
-	} else if ( material.alphaMap ) {
+		}
 
-		uvScaleMap = material.alphaMap;
+		if ( uvScaleMap !== undefined ) {
 
-	}
+			if ( uvScaleMap.matrixAutoUpdate === true ) {
 
-	if ( uvScaleMap !== undefined ) {
+				uvScaleMap.updateMatrix();
 
-		if ( uvScaleMap.matrixAutoUpdate === true ) {
+			}
 
-			uvScaleMap.updateMatrix();
+			uniforms.uvTransform.value.copy( uvScaleMap.matrix );
 
 		}
 
-		uniforms.uvTransform.value.copy( uvScaleMap.matrix );
-
 	}
 
-}
+	function refreshUniformsSprites( uniforms, material ) {
+
+		uniforms.diffuse.value.copy( material.color );
+		uniforms.opacity.value = material.opacity;
+		uniforms.rotation.value = material.rotation;
 
-function refreshUniformsSprites( uniforms, material ) {
+		if ( material.map ) {
 
-	uniforms.diffuse.value.copy( material.color );
-	uniforms.opacity.value = material.opacity;
-	uniforms.rotation.value = material.rotation;
+			uniforms.map.value = material.map;
 
-	if ( material.map ) {
+		}
 
-		uniforms.map.value = material.map;
+		if ( material.alphaMap ) {
 
-	}
+			uniforms.alphaMap.value = material.alphaMap;
 
-	if ( material.alphaMap ) {
+		}
 
-		uniforms.alphaMap.value = material.alphaMap;
+		// uv repeat and offset setting priorities
+		// 1. color map
+		// 2. alpha map
 
-	}
+		var uvScaleMap;
 
-	// uv repeat and offset setting priorities
-	// 1. color map
-	// 2. alpha map
+		if ( material.map ) {
 
-	var uvScaleMap;
+			uvScaleMap = material.map;
 
-	if ( material.map ) {
+		} else if ( material.alphaMap ) {
 
-		uvScaleMap = material.map;
+			uvScaleMap = material.alphaMap;
 
-	} else if ( material.alphaMap ) {
+		}
 
-		uvScaleMap = material.alphaMap;
+		if ( uvScaleMap !== undefined ) {
 
-	}
+			if ( uvScaleMap.matrixAutoUpdate === true ) {
 
-	if ( uvScaleMap !== undefined ) {
+				uvScaleMap.updateMatrix();
 
-		if ( uvScaleMap.matrixAutoUpdate === true ) {
+			}
 
-			uvScaleMap.updateMatrix();
+			uniforms.uvTransform.value.copy( uvScaleMap.matrix );
 
 		}
 
-		uniforms.uvTransform.value.copy( uvScaleMap.matrix );
-
 	}
 
-}
+	function refreshUniformsFog( uniforms, fog ) {
 
-WebGLMaterials.prototype.refreshUniformsFog = function ( uniforms, fog ) {
+		uniforms.fogColor.value.copy( fog.color );
 
-	uniforms.fogColor.value.copy( fog.color );
+		if ( fog.isFog ) {
 
-	if ( fog.isFog ) {
+			uniforms.fogNear.value = fog.near;
+			uniforms.fogFar.value = fog.far;
 
-		uniforms.fogNear.value = fog.near;
-		uniforms.fogFar.value = fog.far;
+		} else if ( fog.isFogExp2 ) {
 
-	} else if ( fog.isFogExp2 ) {
+			uniforms.fogDensity.value = fog.density;
 
-		uniforms.fogDensity.value = fog.density;
+		}
 
 	}
 
-};
+	function refreshUniformsLambert( uniforms, material ) {
 
-function refreshUniformsLambert( uniforms, material ) {
+		if ( material.emissiveMap ) {
 
-	if ( material.emissiveMap ) {
+			uniforms.emissiveMap.value = material.emissiveMap;
 
-		uniforms.emissiveMap.value = material.emissiveMap;
+		}
 
 	}
 
-}
+	function refreshUniformsPhong( uniforms, material ) {
 
-function refreshUniformsPhong( uniforms, material ) {
+		uniforms.specular.value.copy( material.specular );
+		uniforms.shininess.value = Math.max( material.shininess, 1e-4 ); // to prevent pow( 0.0, 0.0 )
 
-	uniforms.specular.value.copy( material.specular );
-	uniforms.shininess.value = Math.max( material.shininess, 1e-4 ); // to prevent pow( 0.0, 0.0 )
+		if ( material.emissiveMap ) {
 
-	if ( material.emissiveMap ) {
+			uniforms.emissiveMap.value = material.emissiveMap;
 
-		uniforms.emissiveMap.value = material.emissiveMap;
+		}
 
-	}
+		if ( material.bumpMap ) {
 
-	if ( material.bumpMap ) {
+			uniforms.bumpMap.value = material.bumpMap;
+			uniforms.bumpScale.value = material.bumpScale;
+			if ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;
 
-		uniforms.bumpMap.value = material.bumpMap;
-		uniforms.bumpScale.value = material.bumpScale;
-		if ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;
+		}
 
-	}
+		if ( material.normalMap ) {
 
-	if ( material.normalMap ) {
+			uniforms.normalMap.value = material.normalMap;
+			uniforms.normalScale.value.copy( material.normalScale );
+			if ( material.side === BackSide ) uniforms.normalScale.value.negate();
 
-		uniforms.normalMap.value = material.normalMap;
-		uniforms.normalScale.value.copy( material.normalScale );
-		if ( material.side === BackSide ) uniforms.normalScale.value.negate();
+		}
 
-	}
+		if ( material.displacementMap ) {
 
-	if ( material.displacementMap ) {
+			uniforms.displacementMap.value = material.displacementMap;
+			uniforms.displacementScale.value = material.displacementScale;
+			uniforms.displacementBias.value = material.displacementBias;
 
-		uniforms.displacementMap.value = material.displacementMap;
-		uniforms.displacementScale.value = material.displacementScale;
-		uniforms.displacementBias.value = material.displacementBias;
+		}
 
 	}
 
-}
+	function refreshUniformsToon( uniforms, material ) {
 
-function refreshUniformsToon( uniforms, material ) {
+		uniforms.specular.value.copy( material.specular );
+		uniforms.shininess.value = Math.max( material.shininess, 1e-4 ); // to prevent pow( 0.0, 0.0 )
 
-	uniforms.specular.value.copy( material.specular );
-	uniforms.shininess.value = Math.max( material.shininess, 1e-4 ); // to prevent pow( 0.0, 0.0 )
+		if ( material.gradientMap ) {
 
-	if ( material.gradientMap ) {
+			uniforms.gradientMap.value = material.gradientMap;
 
-		uniforms.gradientMap.value = material.gradientMap;
+		}
 
-	}
+		if ( material.emissiveMap ) {
 
-	if ( material.emissiveMap ) {
+			uniforms.emissiveMap.value = material.emissiveMap;
 
-		uniforms.emissiveMap.value = material.emissiveMap;
+		}
 
-	}
+		if ( material.bumpMap ) {
 
-	if ( material.bumpMap ) {
+			uniforms.bumpMap.value = material.bumpMap;
+			uniforms.bumpScale.value = material.bumpScale;
+			if ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;
 
-		uniforms.bumpMap.value = material.bumpMap;
-		uniforms.bumpScale.value = material.bumpScale;
-		if ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;
+		}
 
-	}
+		if ( material.normalMap ) {
 
-	if ( material.normalMap ) {
+			uniforms.normalMap.value = material.normalMap;
+			uniforms.normalScale.value.copy( material.normalScale );
+			if ( material.side === BackSide ) uniforms.normalScale.value.negate();
 
-		uniforms.normalMap.value = material.normalMap;
-		uniforms.normalScale.value.copy( material.normalScale );
-		if ( material.side === BackSide ) uniforms.normalScale.value.negate();
+		}
 
-	}
+		if ( material.displacementMap ) {
 
-	if ( material.displacementMap ) {
+			uniforms.displacementMap.value = material.displacementMap;
+			uniforms.displacementScale.value = material.displacementScale;
+			uniforms.displacementBias.value = material.displacementBias;
 
-		uniforms.displacementMap.value = material.displacementMap;
-		uniforms.displacementScale.value = material.displacementScale;
-		uniforms.displacementBias.value = material.displacementBias;
+		}
 
 	}
 
-}
+	function refreshUniformsStandard( uniforms, material, environment ) {
 
-function refreshUniformsStandard( uniforms, material, environment ) {
+		uniforms.roughness.value = material.roughness;
+		uniforms.metalness.value = material.metalness;
 
-	uniforms.roughness.value = material.roughness;
-	uniforms.metalness.value = material.metalness;
+		if ( material.roughnessMap ) {
 
-	if ( material.roughnessMap ) {
+			uniforms.roughnessMap.value = material.roughnessMap;
 
-		uniforms.roughnessMap.value = material.roughnessMap;
+		}
 
-	}
+		if ( material.metalnessMap ) {
 
-	if ( material.metalnessMap ) {
+			uniforms.metalnessMap.value = material.metalnessMap;
 
-		uniforms.metalnessMap.value = material.metalnessMap;
+		}
 
-	}
+		if ( material.emissiveMap ) {
 
-	if ( material.emissiveMap ) {
+			uniforms.emissiveMap.value = material.emissiveMap;
 
-		uniforms.emissiveMap.value = material.emissiveMap;
+		}
 
-	}
+		if ( material.bumpMap ) {
 
-	if ( material.bumpMap ) {
+			uniforms.bumpMap.value = material.bumpMap;
+			uniforms.bumpScale.value = material.bumpScale;
+			if ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;
 
-		uniforms.bumpMap.value = material.bumpMap;
-		uniforms.bumpScale.value = material.bumpScale;
-		if ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;
+		}
 
-	}
+		if ( material.normalMap ) {
 
-	if ( material.normalMap ) {
+			uniforms.normalMap.value = material.normalMap;
+			uniforms.normalScale.value.copy( material.normalScale );
+			if ( material.side === BackSide ) uniforms.normalScale.value.negate();
 
-		uniforms.normalMap.value = material.normalMap;
-		uniforms.normalScale.value.copy( material.normalScale );
-		if ( material.side === BackSide ) uniforms.normalScale.value.negate();
+		}
 
-	}
+		if ( material.displacementMap ) {
 
-	if ( material.displacementMap ) {
+			uniforms.displacementMap.value = material.displacementMap;
+			uniforms.displacementScale.value = material.displacementScale;
+			uniforms.displacementBias.value = material.displacementBias;
 
-		uniforms.displacementMap.value = material.displacementMap;
-		uniforms.displacementScale.value = material.displacementScale;
-		uniforms.displacementBias.value = material.displacementBias;
+		}
 
-	}
+		if ( material.envMap || environment ) {
 
-	if ( material.envMap || environment ) {
+			//uniforms.envMap.value = material.envMap; // part of uniforms common
+			uniforms.envMapIntensity.value = material.envMapIntensity;
 
-		//uniforms.envMap.value = material.envMap; // part of uniforms common
-		uniforms.envMapIntensity.value = material.envMapIntensity;
+		}
 
 	}
 
-}
+	function refreshUniformsPhysical( uniforms, material, environment ) {
 
-function refreshUniformsPhysical( uniforms, material, environment ) {
+		refreshUniformsStandard( uniforms, material, environment );
 
-	refreshUniformsStandard( uniforms, material, environment );
+		uniforms.reflectivity.value = material.reflectivity; // also part of uniforms common
 
-	uniforms.reflectivity.value = material.reflectivity; // also part of uniforms common
+		uniforms.clearcoat.value = material.clearcoat;
+		uniforms.clearcoatRoughness.value = material.clearcoatRoughness;
+		if ( material.sheen ) uniforms.sheen.value.copy( material.sheen );
 
-	uniforms.clearcoat.value = material.clearcoat;
-	uniforms.clearcoatRoughness.value = material.clearcoatRoughness;
-	if ( material.sheen ) uniforms.sheen.value.copy( material.sheen );
+		if ( material.clearcoatMap ) {
 
-	if ( material.clearcoatMap ) {
+			uniforms.clearcoatMap.value = material.clearcoatMap;
 
-		uniforms.clearcoatMap.value = material.clearcoatMap;
+		}
 
-	}
+		if ( material.clearcoatRoughnessMap ) {
 
-	if ( material.clearcoatRoughnessMap ) {
+			uniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;
 
-		uniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;
+		}
 
-	}
+		if ( material.clearcoatNormalMap ) {
 
-	if ( material.clearcoatNormalMap ) {
+			uniforms.clearcoatNormalScale.value.copy( material.clearcoatNormalScale );
+			uniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;
 
-		uniforms.clearcoatNormalScale.value.copy( material.clearcoatNormalScale );
-		uniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;
+			if ( material.side === BackSide ) {
 
-		if ( material.side === BackSide ) {
+				uniforms.clearcoatNormalScale.value.negate();
 
-			uniforms.clearcoatNormalScale.value.negate();
+			}
 
 		}
 
+		uniforms.transparency.value = material.transparency;
+
 	}
 
-	uniforms.transparency.value = material.transparency;
+	function refreshUniformsMatcap( uniforms, material ) {
 
-}
+		if ( material.matcap ) {
 
-function refreshUniformsMatcap( uniforms, material ) {
+			uniforms.matcap.value = material.matcap;
 
-	if ( material.matcap ) {
+		}
 
-		uniforms.matcap.value = material.matcap;
+		if ( material.bumpMap ) {
 
-	}
+			uniforms.bumpMap.value = material.bumpMap;
+			uniforms.bumpScale.value = material.bumpScale;
+			if ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;
 
-	if ( material.bumpMap ) {
+		}
 
-		uniforms.bumpMap.value = material.bumpMap;
-		uniforms.bumpScale.value = material.bumpScale;
-		if ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;
+		if ( material.normalMap ) {
 
-	}
+			uniforms.normalMap.value = material.normalMap;
+			uniforms.normalScale.value.copy( material.normalScale );
+			if ( material.side === BackSide ) uniforms.normalScale.value.negate();
 
-	if ( material.normalMap ) {
+		}
 
-		uniforms.normalMap.value = material.normalMap;
-		uniforms.normalScale.value.copy( material.normalScale );
-		if ( material.side === BackSide ) uniforms.normalScale.value.negate();
+		if ( material.displacementMap ) {
 
-	}
+			uniforms.displacementMap.value = material.displacementMap;
+			uniforms.displacementScale.value = material.displacementScale;
+			uniforms.displacementBias.value = material.displacementBias;
 
-	if ( material.displacementMap ) {
-
-		uniforms.displacementMap.value = material.displacementMap;
-		uniforms.displacementScale.value = material.displacementScale;
-		uniforms.displacementBias.value = material.displacementBias;
+		}
 
 	}
 
-}
+	function refreshUniformsDepth( uniforms, material ) {
 
-function refreshUniformsDepth( uniforms, material ) {
+		if ( material.displacementMap ) {
 
-	if ( material.displacementMap ) {
+			uniforms.displacementMap.value = material.displacementMap;
+			uniforms.displacementScale.value = material.displacementScale;
+			uniforms.displacementBias.value = material.displacementBias;
 
-		uniforms.displacementMap.value = material.displacementMap;
-		uniforms.displacementScale.value = material.displacementScale;
-		uniforms.displacementBias.value = material.displacementBias;
+		}
 
 	}
 
-}
+	function refreshUniformsDistance( uniforms, material ) {
+
+		if ( material.displacementMap ) {
 
-function refreshUniformsDistance( uniforms, material ) {
+			uniforms.displacementMap.value = material.displacementMap;
+			uniforms.displacementScale.value = material.displacementScale;
+			uniforms.displacementBias.value = material.displacementBias;
 
-	if ( material.displacementMap ) {
+		}
 
-		uniforms.displacementMap.value = material.displacementMap;
-		uniforms.displacementScale.value = material.displacementScale;
-		uniforms.displacementBias.value = material.displacementBias;
+		uniforms.referencePosition.value.copy( material.referencePosition );
+		uniforms.nearDistance.value = material.nearDistance;
+		uniforms.farDistance.value = material.farDistance;
 
 	}
 
-	uniforms.referencePosition.value.copy( material.referencePosition );
-	uniforms.nearDistance.value = material.nearDistance;
-	uniforms.farDistance.value = material.farDistance;
+	function refreshUniformsNormal( uniforms, material ) {
 
-}
+		if ( material.bumpMap ) {
 
-function refreshUniformsNormal( uniforms, material ) {
+			uniforms.bumpMap.value = material.bumpMap;
+			uniforms.bumpScale.value = material.bumpScale;
+			if ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;
 
-	if ( material.bumpMap ) {
+		}
 
-		uniforms.bumpMap.value = material.bumpMap;
-		uniforms.bumpScale.value = material.bumpScale;
-		if ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;
+		if ( material.normalMap ) {
 
-	}
+			uniforms.normalMap.value = material.normalMap;
+			uniforms.normalScale.value.copy( material.normalScale );
+			if ( material.side === BackSide ) uniforms.normalScale.value.negate();
 
-	if ( material.normalMap ) {
+		}
 
-		uniforms.normalMap.value = material.normalMap;
-		uniforms.normalScale.value.copy( material.normalScale );
-		if ( material.side === BackSide ) uniforms.normalScale.value.negate();
+		if ( material.displacementMap ) {
 
-	}
+			uniforms.displacementMap.value = material.displacementMap;
+			uniforms.displacementScale.value = material.displacementScale;
+			uniforms.displacementBias.value = material.displacementBias;
 
-	if ( material.displacementMap ) {
-
-		uniforms.displacementMap.value = material.displacementMap;
-		uniforms.displacementScale.value = material.displacementScale;
-		uniforms.displacementBias.value = material.displacementBias;
+		}
 
 	}
 
+	return {
+		refreshUniforms: refreshUniforms,
+		refreshUniformsFog: refreshUniformsFog
+	};
+
 }
 
 export { WebGLMaterials };