Przeglądaj źródła

ShaderLib and UniformsLib clean up.

Mr.doob 9 lat temu
rodzic
commit
70255dbc9e
2 zmienionych plików z 171 dodań i 178 usunięć
  1. 94 99
      src/renderers/shaders/ShaderLib.js
  2. 77 79
      src/renderers/shaders/UniformsLib.js

+ 94 - 99
src/renderers/shaders/ShaderLib.js

@@ -4,171 +4,166 @@ import { Vector3 } from '../../math/Vector3';
 import { UniformsLib } from './UniformsLib';
 import { UniformsLib } from './UniformsLib';
 import { Color } from '../../math/Color';
 import { Color } from '../../math/Color';
 
 
-var ShaderLib;
-
 /**
 /**
- * Webgl Shader Library for three.js
- *
  * @author alteredq / http://alteredqualia.com/
  * @author alteredq / http://alteredqualia.com/
  * @author mrdoob / http://mrdoob.com/
  * @author mrdoob / http://mrdoob.com/
  * @author mikael emtinger / http://gomo.se/
  * @author mikael emtinger / http://gomo.se/
  */
  */
 
 
+var ShaderLib = {
 
 
-ShaderLib = {
-
-	'basic': {
+	basic: {
 
 
 		uniforms: UniformsUtils.merge( [
 		uniforms: UniformsUtils.merge( [
 
 
-			UniformsLib[ 'common' ],
-			UniformsLib[ 'aomap' ],
-			UniformsLib[ 'fog' ]
+			UniformsLib.common,
+			UniformsLib.aomap,
+			UniformsLib.fog
 
 
 		] ),
 		] ),
 
 
-		vertexShader: ShaderChunk[ 'meshbasic_vert' ],
-		fragmentShader: ShaderChunk[ 'meshbasic_frag' ]
+		vertexShader: ShaderChunk.meshbasic_vert,
+		fragmentShader: ShaderChunk.meshbasic_frag
 
 
 	},
 	},
 
 
-	'lambert': {
+	lambert: {
 
 
 		uniforms: UniformsUtils.merge( [
 		uniforms: UniformsUtils.merge( [
 
 
-			UniformsLib[ 'common' ],
-			UniformsLib[ 'aomap' ],
-			UniformsLib[ 'lightmap' ],
-			UniformsLib[ 'emissivemap' ],
-			UniformsLib[ 'fog' ],
-			UniformsLib[ 'lights' ],
+			UniformsLib.common,
+			UniformsLib.aomap,
+			UniformsLib.lightmap,
+			UniformsLib.emissivemap,
+			UniformsLib.fog,
+			UniformsLib.lights,
 
 
 			{
 			{
-				"emissive" : { value: new Color( 0x000000 ) }
+				emissive : { value: new Color( 0x000000 ) }
 			}
 			}
 
 
 		] ),
 		] ),
 
 
-		vertexShader: ShaderChunk[ 'meshlambert_vert' ],
-		fragmentShader: ShaderChunk[ 'meshlambert_frag' ]
+		vertexShader: ShaderChunk.meshlambert_vert,
+		fragmentShader: ShaderChunk.meshlambert_frag
 
 
 	},
 	},
 
 
-	'phong': {
+	phong: {
 
 
 		uniforms: UniformsUtils.merge( [
 		uniforms: UniformsUtils.merge( [
 
 
-			UniformsLib[ 'common' ],
-			UniformsLib[ 'aomap' ],
-			UniformsLib[ 'lightmap' ],
-			UniformsLib[ 'emissivemap' ],
-			UniformsLib[ 'bumpmap' ],
-			UniformsLib[ 'normalmap' ],
-			UniformsLib[ 'displacementmap' ],
-			UniformsLib[ 'fog' ],
-			UniformsLib[ 'lights' ],
+			UniformsLib.common,
+			UniformsLib.aomap,
+			UniformsLib.lightmap,
+			UniformsLib.emissivemap,
+			UniformsLib.bumpmap,
+			UniformsLib.normalmap,
+			UniformsLib.displacementmap,
+			UniformsLib.fog,
+			UniformsLib.lights,
 
 
 			{
 			{
-				"emissive" : { value: new Color( 0x000000 ) },
-				"specular" : { value: new Color( 0x111111 ) },
-				"shininess": { value: 30 }
+				emissive : { value: new Color( 0x000000 ) },
+				specular : { value: new Color( 0x111111 ) },
+				shininess: { value: 30 }
 			}
 			}
 
 
 		] ),
 		] ),
 
 
-		vertexShader: ShaderChunk[ 'meshphong_vert' ],
-		fragmentShader: ShaderChunk[ 'meshphong_frag' ]
+		vertexShader: ShaderChunk.meshphong_vert,
+		fragmentShader: ShaderChunk.meshphong_frag
 
 
 	},
 	},
 
 
-	'standard': {
+	standard: {
 
 
 		uniforms: UniformsUtils.merge( [
 		uniforms: UniformsUtils.merge( [
 
 
-			UniformsLib[ 'common' ],
-			UniformsLib[ 'aomap' ],
-			UniformsLib[ 'lightmap' ],
-			UniformsLib[ 'emissivemap' ],
-			UniformsLib[ 'bumpmap' ],
-			UniformsLib[ 'normalmap' ],
-			UniformsLib[ 'displacementmap' ],
-			UniformsLib[ 'roughnessmap' ],
-			UniformsLib[ 'metalnessmap' ],
-			UniformsLib[ 'fog' ],
-			UniformsLib[ 'lights' ],
+			UniformsLib.common,
+			UniformsLib.aomap,
+			UniformsLib.lightmap,
+			UniformsLib.emissivemap,
+			UniformsLib.bumpmap,
+			UniformsLib.normalmap,
+			UniformsLib.displacementmap,
+			UniformsLib.roughnessmap,
+			UniformsLib.metalnessmap,
+			UniformsLib.fog,
+			UniformsLib.lights,
 
 
 			{
 			{
-				"emissive" : { value: new Color( 0x000000 ) },
-				"roughness": { value: 0.5 },
-				"metalness": { value: 0 },
-				"envMapIntensity" : { value: 1 }, // temporary
+				emissive : { value: new Color( 0x000000 ) },
+				roughness: { value: 0.5 },
+				metalness: { value: 0 },
+				envMapIntensity : { value: 1 }, // temporary
 			}
 			}
 
 
 		] ),
 		] ),
 
 
-		vertexShader: ShaderChunk[ 'meshphysical_vert' ],
-		fragmentShader: ShaderChunk[ 'meshphysical_frag' ]
+		vertexShader: ShaderChunk.meshphysical_vert,
+		fragmentShader: ShaderChunk.meshphysical_frag
 
 
 	},
 	},
 
 
-	'points': {
+	points: {
 
 
 		uniforms: UniformsUtils.merge( [
 		uniforms: UniformsUtils.merge( [
 
 
-			UniformsLib[ 'points' ],
-			UniformsLib[ 'fog' ]
+			UniformsLib.points,
+			UniformsLib.fog
 
 
 		] ),
 		] ),
 
 
-		vertexShader: ShaderChunk[ 'points_vert' ],
-		fragmentShader: ShaderChunk[ 'points_frag' ]
+		vertexShader: ShaderChunk.points_vert,
+		fragmentShader: ShaderChunk.points_frag
 
 
 	},
 	},
 
 
-	'dashed': {
+	dashed: {
 
 
 		uniforms: UniformsUtils.merge( [
 		uniforms: UniformsUtils.merge( [
 
 
-			UniformsLib[ 'common' ],
-			UniformsLib[ 'fog' ],
+			UniformsLib.common,
+			UniformsLib.fog,
 
 
 			{
 			{
-				"scale"    : { value: 1 },
-				"dashSize" : { value: 1 },
-				"totalSize": { value: 2 }
+				scale    : { value: 1 },
+				dashSize : { value: 1 },
+				totalSize: { value: 2 }
 			}
 			}
 
 
 		] ),
 		] ),
 
 
-		vertexShader: ShaderChunk[ 'linedashed_vert' ],
-		fragmentShader: ShaderChunk[ 'linedashed_frag' ]
+		vertexShader: ShaderChunk.linedashed_vert,
+		fragmentShader: ShaderChunk.linedashed_frag
 
 
 	},
 	},
 
 
-	'depth': {
+	depth: {
 
 
 		uniforms: UniformsUtils.merge( [
 		uniforms: UniformsUtils.merge( [
 
 
-			UniformsLib[ 'common' ],
-			UniformsLib[ 'displacementmap' ]
+			UniformsLib.common,
+			UniformsLib.displacementmap
 
 
 		] ),
 		] ),
 
 
-		vertexShader: ShaderChunk[ 'depth_vert' ],
-		fragmentShader: ShaderChunk[ 'depth_frag' ]
+		vertexShader: ShaderChunk.depth_vert,
+		fragmentShader: ShaderChunk.depth_frag
 
 
 	},
 	},
 
 
-	'normal': {
+	normal: {
 
 
 		uniforms: {
 		uniforms: {
 
 
-			"opacity" : { value: 1.0 }
+			opacity : { value: 1.0 }
 
 
 		},
 		},
 
 
-		vertexShader: ShaderChunk[ 'normal_vert' ],
-		fragmentShader: ShaderChunk[ 'normal_frag' ]
+		vertexShader: ShaderChunk.normal_vert,
+		fragmentShader: ShaderChunk.normal_frag
 
 
 	},
 	},
 
 
@@ -176,16 +171,16 @@ ShaderLib = {
 	//	Cube map shader
 	//	Cube map shader
 	 ------------------------------------------------------------------------- */
 	 ------------------------------------------------------------------------- */
 
 
-	'cube': {
+	cube: {
 
 
 		uniforms: {
 		uniforms: {
-			"tCube": { value: null },
-			"tFlip": { value: - 1 },
-			"opacity": { value: 1.0 }
+			tCube: { value: null },
+			tFlip: { value: - 1 },
+			opacity: { value: 1.0 }
 		},
 		},
 
 
-		vertexShader: ShaderChunk[ 'cube_vert' ],
-		fragmentShader: ShaderChunk[ 'cube_frag' ]
+		vertexShader: ShaderChunk.cube_vert,
+		fragmentShader: ShaderChunk.cube_frag
 
 
 	},
 	},
 
 
@@ -193,50 +188,50 @@ ShaderLib = {
 	//	Cube map shader
 	//	Cube map shader
 	 ------------------------------------------------------------------------- */
 	 ------------------------------------------------------------------------- */
 
 
-	'equirect': {
+	equirect: {
 
 
 		uniforms: {
 		uniforms: {
-			"tEquirect": { value: null },
-			"tFlip": { value: - 1 }
+			tEquirect: { value: null },
+			tFlip: { value: - 1 }
 		},
 		},
 
 
-		vertexShader: ShaderChunk[ 'equirect_vert' ],
-		fragmentShader: ShaderChunk[ 'equirect_frag' ]
+		vertexShader: ShaderChunk.equirect_vert,
+		fragmentShader: ShaderChunk.equirect_frag
 
 
 	},
 	},
 
 
-	'distanceRGBA': {
+	distanceRGBA: {
 
 
 		uniforms: {
 		uniforms: {
 
 
-			"lightPos": { value: new Vector3() }
+			lightPos: { value: new Vector3() }
 
 
 		},
 		},
 
 
-		vertexShader: ShaderChunk[ 'distanceRGBA_vert' ],
-		fragmentShader: ShaderChunk[ 'distanceRGBA_frag' ]
+		vertexShader: ShaderChunk.distanceRGBA_vert,
+		fragmentShader: ShaderChunk.distanceRGBA_frag
 
 
 	}
 	}
 
 
 };
 };
 
 
-ShaderLib[ 'physical' ] = {
+ShaderLib.physical = {
 
 
 	uniforms: UniformsUtils.merge( [
 	uniforms: UniformsUtils.merge( [
 
 
-		ShaderLib[ 'standard' ].uniforms,
+		ShaderLib.standard.uniforms,
 
 
 		{
 		{
-			"clearCoat": { value: 0 },
-			"clearCoatRoughness": { value: 0 }
+			clearCoat: { value: 0 },
+			clearCoatRoughness: { value: 0 }
 		}
 		}
 
 
 	] ),
 	] ),
 
 
-	vertexShader: ShaderChunk[ 'meshphysical_vert' ],
-	fragmentShader: ShaderChunk[ 'meshphysical_frag' ]
+	vertexShader: ShaderChunk.meshphysical_vert,
+	fragmentShader: ShaderChunk.meshphysical_frag
 
 
 };
 };
 
 
 
 
-export { ShaderLib };
+export { ShaderLib };

+ 77 - 79
src/renderers/shaders/UniformsLib.js

@@ -2,165 +2,163 @@ import { Vector4 } from '../../math/Vector4';
 import { Color } from '../../math/Color';
 import { Color } from '../../math/Color';
 import { Vector2 } from '../../math/Vector2';
 import { Vector2 } from '../../math/Vector2';
 
 
-var UniformsLib;
-
 /**
 /**
  * Uniforms library for shared webgl shaders
  * Uniforms library for shared webgl shaders
  */
  */
 
 
-UniformsLib = {
+var UniformsLib = {
 
 
 	common: {
 	common: {
 
 
-		"diffuse": { value: new Color( 0xeeeeee ) },
-		"opacity": { value: 1.0 },
+		diffuse: { value: new Color( 0xeeeeee ) },
+		opacity: { value: 1.0 },
 
 
-		"map": { value: null },
-		"offsetRepeat": { value: new Vector4( 0, 0, 1, 1 ) },
+		map: { value: null },
+		offsetRepeat: { value: new Vector4( 0, 0, 1, 1 ) },
 
 
-		"specularMap": { value: null },
-		"alphaMap": { value: null },
+		specularMap: { value: null },
+		alphaMap: { value: null },
 
 
-		"envMap": { value: null },
-		"flipEnvMap": { value: - 1 },
-		"reflectivity": { value: 1.0 },
-		"refractionRatio": { value: 0.98 }
+		envMap: { value: null },
+		flipEnvMap: { value: - 1 },
+		reflectivity: { value: 1.0 },
+		refractionRatio: { value: 0.98 }
 
 
 	},
 	},
 
 
 	aomap: {
 	aomap: {
 
 
-		"aoMap": { value: null },
-		"aoMapIntensity": { value: 1 }
+		aoMap: { value: null },
+		aoMapIntensity: { value: 1 }
 
 
 	},
 	},
 
 
 	lightmap: {
 	lightmap: {
 
 
-		"lightMap": { value: null },
-		"lightMapIntensity": { value: 1 }
+		lightMap: { value: null },
+		lightMapIntensity: { value: 1 }
 
 
 	},
 	},
 
 
 	emissivemap: {
 	emissivemap: {
 
 
-		"emissiveMap": { value: null }
+		emissiveMap: { value: null }
 
 
 	},
 	},
 
 
 	bumpmap: {
 	bumpmap: {
 
 
-		"bumpMap": { value: null },
-		"bumpScale": { value: 1 }
+		bumpMap: { value: null },
+		bumpScale: { value: 1 }
 
 
 	},
 	},
 
 
 	normalmap: {
 	normalmap: {
 
 
-		"normalMap": { value: null },
-		"normalScale": { value: new Vector2( 1, 1 ) }
+		normalMap: { value: null },
+		normalScale: { value: new Vector2( 1, 1 ) }
 
 
 	},
 	},
 
 
 	displacementmap: {
 	displacementmap: {
 
 
-		"displacementMap": { value: null },
-		"displacementScale": { value: 1 },
-		"displacementBias": { value: 0 }
+		displacementMap: { value: null },
+		displacementScale: { value: 1 },
+		displacementBias: { value: 0 }
 
 
 	},
 	},
 
 
 	roughnessmap: {
 	roughnessmap: {
 
 
-		"roughnessMap": { value: null }
+		roughnessMap: { value: null }
 
 
 	},
 	},
 
 
 	metalnessmap: {
 	metalnessmap: {
 
 
-		"metalnessMap": { value: null }
+		metalnessMap: { value: null }
 
 
 	},
 	},
 
 
 	fog: {
 	fog: {
 
 
-		"fogDensity": { value: 0.00025 },
-		"fogNear": { value: 1 },
-		"fogFar": { value: 2000 },
-		"fogColor": { value: new Color( 0xffffff ) }
+		fogDensity: { value: 0.00025 },
+		fogNear: { value: 1 },
+		fogFar: { value: 2000 },
+		fogColor: { value: new Color( 0xffffff ) }
 
 
 	},
 	},
 
 
 	lights: {
 	lights: {
 
 
-		"ambientLightColor": { value: [] },
+		ambientLightColor: { value: [] },
 
 
-		"directionalLights": { value: [], properties: {
-			"direction": {},
-			"color": {},
+		directionalLights: { value: [], properties: {
+			direction: {},
+			color: {},
 
 
-			"shadow": {},
-			"shadowBias": {},
-			"shadowRadius": {},
-			"shadowMapSize": {}
+			shadow: {},
+			shadowBias: {},
+			shadowRadius: {},
+			shadowMapSize: {}
 		} },
 		} },
 
 
-		"directionalShadowMap": { value: [] },
-		"directionalShadowMatrix": { value: [] },
-
-		"spotLights": { value: [], properties: {
-			"color": {},
-			"position": {},
-			"direction": {},
-			"distance": {},
-			"coneCos": {},
-			"penumbraCos": {},
-			"decay": {},
-
-			"shadow": {},
-			"shadowBias": {},
-			"shadowRadius": {},
-			"shadowMapSize": {}
+		directionalShadowMap: { value: [] },
+		directionalShadowMatrix: { value: [] },
+
+		spotLights: { value: [], properties: {
+			color: {},
+			position: {},
+			direction: {},
+			distance: {},
+			coneCos: {},
+			penumbraCos: {},
+			decay: {},
+
+			shadow: {},
+			shadowBias: {},
+			shadowRadius: {},
+			shadowMapSize: {}
 		} },
 		} },
 
 
-		"spotShadowMap": { value: [] },
-		"spotShadowMatrix": { value: [] },
+		spotShadowMap: { value: [] },
+		spotShadowMatrix: { value: [] },
 
 
-		"pointLights": { value: [], properties: {
-			"color": {},
-			"position": {},
-			"decay": {},
-			"distance": {},
+		pointLights: { value: [], properties: {
+			color: {},
+			position: {},
+			decay: {},
+			distance: {},
 
 
-			"shadow": {},
-			"shadowBias": {},
-			"shadowRadius": {},
-			"shadowMapSize": {}
+			shadow: {},
+			shadowBias: {},
+			shadowRadius: {},
+			shadowMapSize: {}
 		} },
 		} },
 
 
-		"pointShadowMap": { value: [] },
-		"pointShadowMatrix": { value: [] },
+		pointShadowMap: { value: [] },
+		pointShadowMatrix: { value: [] },
 
 
-		"hemisphereLights": { value: [], properties: {
-			"direction": {},
-			"skyColor": {},
-			"groundColor": {}
+		hemisphereLights: { value: [], properties: {
+			direction: {},
+			skyColor: {},
+			groundColor: {}
 		} }
 		} }
 
 
 	},
 	},
 
 
 	points: {
 	points: {
 
 
-		"diffuse": { value: new Color( 0xeeeeee ) },
-		"opacity": { value: 1.0 },
-		"size": { value: 1.0 },
-		"scale": { value: 1.0 },
-		"map": { value: null },
-		"offsetRepeat": { value: new Vector4( 0, 0, 1, 1 ) }
+		diffuse: { value: new Color( 0xeeeeee ) },
+		opacity: { value: 1.0 },
+		size: { value: 1.0 },
+		scale: { value: 1.0 },
+		map: { value: null },
+		offsetRepeat: { value: new Vector4( 0, 0, 1, 1 ) }
 
 
 	}
 	}
 
 
 };
 };
 
 
 
 
-export { UniformsLib };
+export { UniformsLib };