浏览代码

Updated builds.

Mr.doob 8 年之前
父节点
当前提交
354c02b85d
共有 3 个文件被更改,包括 443 次插入447 次删除
  1. 71 73
      build/three.js
  2. 301 301
      build/three.min.js
  3. 71 73
      build/three.module.js

+ 71 - 73
build/three.js

@@ -9166,6 +9166,10 @@
 				}
 
 				var shadowCamera = shadow.camera;
+				var shadowMatrix = shadow.matrix;
+
+				_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );
+				shadowCamera.position.copy( _lightPositionWorld );
 
 				_shadowMapSize.copy( shadow.mapSize );
 				_shadowMapSize.min( _maxShadowMapSize );
@@ -9207,11 +9211,34 @@
 					_shadowMapSize.x *= 4.0;
 					_shadowMapSize.y *= 2.0;
 
+
+					// for point lights we set the shadow matrix to be a translation-only matrix
+					// equal to inverse of the light's position
+
+					shadowMatrix.makeTranslation( - _lightPositionWorld.x, - _lightPositionWorld.y, - _lightPositionWorld.z );
+
 				} else {
 
 					faceCount = 1;
 					isPointLight = false;
 
+					_lookTarget.setFromMatrixPosition( light.target.matrixWorld );
+					shadowCamera.lookAt( _lookTarget );
+					shadowCamera.updateMatrixWorld();
+					shadowCamera.matrixWorldInverse.getInverse( shadowCamera.matrixWorld );
+
+					// compute shadow matrix
+
+					shadowMatrix.set(
+						0.5, 0.0, 0.0, 0.5,
+						0.0, 0.5, 0.0, 0.5,
+						0.0, 0.0, 0.5, 0.5,
+						0.0, 0.0, 0.0, 1.0
+					);
+
+					shadowMatrix.multiply( shadowCamera.projectionMatrix );
+					shadowMatrix.multiply( shadowCamera.matrixWorldInverse );
+
 				}
 
 				if ( shadow.map === null ) {
@@ -9232,10 +9259,6 @@
 				}
 
 				var shadowMap = shadow.map;
-				var shadowMatrix = shadow.matrix;
-
-				_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );
-				shadowCamera.position.copy( _lightPositionWorld );
 
 				_renderer.setRenderTarget( shadowMap );
 				_renderer.clear();
@@ -9251,32 +9274,14 @@
 						_lookTarget.add( cubeDirections[ face ] );
 						shadowCamera.up.copy( cubeUps[ face ] );
 						shadowCamera.lookAt( _lookTarget );
+						shadowCamera.updateMatrixWorld();
+						shadowCamera.matrixWorldInverse.getInverse( shadowCamera.matrixWorld );
 
 						var vpDimensions = cube2DViewPorts[ face ];
 						_state.viewport( vpDimensions );
 
-					} else {
-
-						_lookTarget.setFromMatrixPosition( light.target.matrixWorld );
-						shadowCamera.lookAt( _lookTarget );
-
 					}
 
-					shadowCamera.updateMatrixWorld();
-					shadowCamera.matrixWorldInverse.getInverse( shadowCamera.matrixWorld );
-
-					// compute shadow matrix
-
-					shadowMatrix.set(
-						0.5, 0.0, 0.0, 0.5,
-						0.0, 0.5, 0.0, 0.5,
-						0.0, 0.0, 0.5, 0.5,
-						0.0, 0.0, 0.0, 1.0
-					);
-
-					shadowMatrix.multiply( shadowCamera.projectionMatrix );
-					shadowMatrix.multiply( shadowCamera.matrixWorldInverse );
-
 					// update camera matrices and frustum
 
 					_projScreenMatrix.multiplyMatrices( shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse );
@@ -21129,73 +21134,79 @@
 
 			if ( ! object.visible ) return;
 
-			if ( object.isLight ) {
+			var visible = object.layers.test( camera.layers );
 
-				lights.push( object );
+			if ( visible ) {
 
-			} else if ( object.isSprite ) {
+				if ( object.isLight ) {
 
-				if ( ! object.frustumCulled || _frustum.intersectsSprite( object ) ) {
+					lights.push( object );
 
-					sprites.push( object );
+				} else if ( object.isSprite ) {
 
-				}
+					if ( ! object.frustumCulled || _frustum.intersectsSprite( object ) ) {
 
-			} else if ( object.isLensFlare ) {
+						sprites.push( object );
 
-				lensFlares.push( object );
+					}
 
-			} else if ( object.isImmediateRenderObject ) {
+				} else if ( object.isLensFlare ) {
 
-				if ( sortObjects ) {
+					lensFlares.push( object );
 
-					_vector3.setFromMatrixPosition( object.matrixWorld )
-						.applyMatrix4( _projScreenMatrix );
+				} else if ( object.isImmediateRenderObject ) {
 
-				}
+					if ( sortObjects ) {
 
-				currentRenderList.push( object, null, object.material, _vector3.z, null );
+						_vector3.setFromMatrixPosition( object.matrixWorld )
+							.applyMatrix4( _projScreenMatrix );
 
-			} else if ( object.isMesh || object.isLine || object.isPoints ) {
+					}
 
-				if ( object.isSkinnedMesh ) {
+					currentRenderList.push( object, null, object.material, _vector3.z, null );
 
-					object.skeleton.update();
+				} else if ( object.isMesh || object.isLine || object.isPoints ) {
 
-				}
+					if ( object.isSkinnedMesh ) {
 
-				if ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) {
+						object.skeleton.update();
 
-					if ( sortObjects ) {
+					}
 
-						_vector3.setFromMatrixPosition( object.matrixWorld )
-							.applyMatrix4( _projScreenMatrix );
+					if ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) {
 
-					}
+						if ( sortObjects ) {
 
-					var geometry = objects.update( object );
-					var material = object.material;
+							_vector3.setFromMatrixPosition( object.matrixWorld )
+								.applyMatrix4( _projScreenMatrix );
 
-					if ( Array.isArray( material ) ) {
+						}
 
-						var groups = geometry.groups;
+						var geometry = objects.update( object );
+						var material = object.material;
 
-						for ( var i = 0, l = groups.length; i < l; i ++ ) {
+						if ( Array.isArray( material ) ) {
 
-							var group = groups[ i ];
-							var groupMaterial = material[ group.materialIndex ];
+							var groups = geometry.groups;
 
-							if ( groupMaterial && groupMaterial.visible ) {
+							for ( var i = 0, l = groups.length; i < l; i ++ ) {
+
+								var group = groups[ i ];
+								var groupMaterial = material[ group.materialIndex ];
 
-								currentRenderList.push( object, geometry, groupMaterial, _vector3.z, group );
+								if ( groupMaterial && groupMaterial.visible ) {
+
+									currentRenderList.push( object, geometry, groupMaterial, _vector3.z, group );
+
+								}
 
 							}
 
-						}
+						} else if ( material.visible ) {
 
-					} else if ( material.visible ) {
+							currentRenderList.push( object, geometry, material, _vector3.z, null );
 
-						currentRenderList.push( object, geometry, material, _vector3.z, null );
+						}
 
 					}
 
@@ -21263,8 +21274,6 @@
 
 		function renderObject( object, scene, camera, geometry, material, group ) {
 
-			if ( object.layers.test( camera.layers ) === false ) return;
-
 			object.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld );
 			object.normalMatrix.getNormalMatrix( object.modelViewMatrix );
 
@@ -22241,18 +22250,7 @@
 					}
 
 					_lights.pointShadowMap[ pointLength ] = shadowMap;
-
-					if ( _lights.pointShadowMatrix[ pointLength ] === undefined ) {
-
-						_lights.pointShadowMatrix[ pointLength ] = new Matrix4();
-
-					}
-
-					// for point lights we set the shadow matrix to be a translation-only matrix
-					// equal to inverse of the light's position
-					_vector3.setFromMatrixPosition( light.matrixWorld ).negate();
-					_lights.pointShadowMatrix[ pointLength ].identity().setPosition( _vector3 );
-
+					_lights.pointShadowMatrix[ pointLength ] = light.shadow.matrix;
 					_lights.point[ pointLength ] = uniforms;
 
 					pointLength ++;

文件差异内容过多而无法显示
+ 301 - 301
build/three.min.js


+ 71 - 73
build/three.module.js

@@ -9160,6 +9160,10 @@ function WebGLShadowMap( _renderer, _lights, _objects, capabilities ) {
 			}
 
 			var shadowCamera = shadow.camera;
+			var shadowMatrix = shadow.matrix;
+
+			_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );
+			shadowCamera.position.copy( _lightPositionWorld );
 
 			_shadowMapSize.copy( shadow.mapSize );
 			_shadowMapSize.min( _maxShadowMapSize );
@@ -9201,11 +9205,34 @@ function WebGLShadowMap( _renderer, _lights, _objects, capabilities ) {
 				_shadowMapSize.x *= 4.0;
 				_shadowMapSize.y *= 2.0;
 
+
+				// for point lights we set the shadow matrix to be a translation-only matrix
+				// equal to inverse of the light's position
+
+				shadowMatrix.makeTranslation( - _lightPositionWorld.x, - _lightPositionWorld.y, - _lightPositionWorld.z );
+
 			} else {
 
 				faceCount = 1;
 				isPointLight = false;
 
+				_lookTarget.setFromMatrixPosition( light.target.matrixWorld );
+				shadowCamera.lookAt( _lookTarget );
+				shadowCamera.updateMatrixWorld();
+				shadowCamera.matrixWorldInverse.getInverse( shadowCamera.matrixWorld );
+
+				// compute shadow matrix
+
+				shadowMatrix.set(
+					0.5, 0.0, 0.0, 0.5,
+					0.0, 0.5, 0.0, 0.5,
+					0.0, 0.0, 0.5, 0.5,
+					0.0, 0.0, 0.0, 1.0
+				);
+
+				shadowMatrix.multiply( shadowCamera.projectionMatrix );
+				shadowMatrix.multiply( shadowCamera.matrixWorldInverse );
+
 			}
 
 			if ( shadow.map === null ) {
@@ -9226,10 +9253,6 @@ function WebGLShadowMap( _renderer, _lights, _objects, capabilities ) {
 			}
 
 			var shadowMap = shadow.map;
-			var shadowMatrix = shadow.matrix;
-
-			_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );
-			shadowCamera.position.copy( _lightPositionWorld );
 
 			_renderer.setRenderTarget( shadowMap );
 			_renderer.clear();
@@ -9245,32 +9268,14 @@ function WebGLShadowMap( _renderer, _lights, _objects, capabilities ) {
 					_lookTarget.add( cubeDirections[ face ] );
 					shadowCamera.up.copy( cubeUps[ face ] );
 					shadowCamera.lookAt( _lookTarget );
+					shadowCamera.updateMatrixWorld();
+					shadowCamera.matrixWorldInverse.getInverse( shadowCamera.matrixWorld );
 
 					var vpDimensions = cube2DViewPorts[ face ];
 					_state.viewport( vpDimensions );
 
-				} else {
-
-					_lookTarget.setFromMatrixPosition( light.target.matrixWorld );
-					shadowCamera.lookAt( _lookTarget );
-
 				}
 
-				shadowCamera.updateMatrixWorld();
-				shadowCamera.matrixWorldInverse.getInverse( shadowCamera.matrixWorld );
-
-				// compute shadow matrix
-
-				shadowMatrix.set(
-					0.5, 0.0, 0.0, 0.5,
-					0.0, 0.5, 0.0, 0.5,
-					0.0, 0.0, 0.5, 0.5,
-					0.0, 0.0, 0.0, 1.0
-				);
-
-				shadowMatrix.multiply( shadowCamera.projectionMatrix );
-				shadowMatrix.multiply( shadowCamera.matrixWorldInverse );
-
 				// update camera matrices and frustum
 
 				_projScreenMatrix.multiplyMatrices( shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse );
@@ -21123,73 +21128,79 @@ function WebGLRenderer( parameters ) {
 
 		if ( ! object.visible ) return;
 
-		if ( object.isLight ) {
+		var visible = object.layers.test( camera.layers );
 
-			lights.push( object );
+		if ( visible ) {
 
-		} else if ( object.isSprite ) {
+			if ( object.isLight ) {
 
-			if ( ! object.frustumCulled || _frustum.intersectsSprite( object ) ) {
+				lights.push( object );
 
-				sprites.push( object );
+			} else if ( object.isSprite ) {
 
-			}
+				if ( ! object.frustumCulled || _frustum.intersectsSprite( object ) ) {
 
-		} else if ( object.isLensFlare ) {
+					sprites.push( object );
 
-			lensFlares.push( object );
+				}
 
-		} else if ( object.isImmediateRenderObject ) {
+			} else if ( object.isLensFlare ) {
 
-			if ( sortObjects ) {
+				lensFlares.push( object );
 
-				_vector3.setFromMatrixPosition( object.matrixWorld )
-					.applyMatrix4( _projScreenMatrix );
+			} else if ( object.isImmediateRenderObject ) {
 
-			}
+				if ( sortObjects ) {
 
-			currentRenderList.push( object, null, object.material, _vector3.z, null );
+					_vector3.setFromMatrixPosition( object.matrixWorld )
+						.applyMatrix4( _projScreenMatrix );
 
-		} else if ( object.isMesh || object.isLine || object.isPoints ) {
+				}
 
-			if ( object.isSkinnedMesh ) {
+				currentRenderList.push( object, null, object.material, _vector3.z, null );
 
-				object.skeleton.update();
+			} else if ( object.isMesh || object.isLine || object.isPoints ) {
 
-			}
+				if ( object.isSkinnedMesh ) {
 
-			if ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) {
+					object.skeleton.update();
 
-				if ( sortObjects ) {
+				}
 
-					_vector3.setFromMatrixPosition( object.matrixWorld )
-						.applyMatrix4( _projScreenMatrix );
+				if ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) {
 
-				}
+					if ( sortObjects ) {
 
-				var geometry = objects.update( object );
-				var material = object.material;
+						_vector3.setFromMatrixPosition( object.matrixWorld )
+							.applyMatrix4( _projScreenMatrix );
 
-				if ( Array.isArray( material ) ) {
+					}
 
-					var groups = geometry.groups;
+					var geometry = objects.update( object );
+					var material = object.material;
 
-					for ( var i = 0, l = groups.length; i < l; i ++ ) {
+					if ( Array.isArray( material ) ) {
 
-						var group = groups[ i ];
-						var groupMaterial = material[ group.materialIndex ];
+						var groups = geometry.groups;
 
-						if ( groupMaterial && groupMaterial.visible ) {
+						for ( var i = 0, l = groups.length; i < l; i ++ ) {
+
+							var group = groups[ i ];
+							var groupMaterial = material[ group.materialIndex ];
 
-							currentRenderList.push( object, geometry, groupMaterial, _vector3.z, group );
+							if ( groupMaterial && groupMaterial.visible ) {
+
+								currentRenderList.push( object, geometry, groupMaterial, _vector3.z, group );
+
+							}
 
 						}
 
-					}
+					} else if ( material.visible ) {
 
-				} else if ( material.visible ) {
+						currentRenderList.push( object, geometry, material, _vector3.z, null );
 
-					currentRenderList.push( object, geometry, material, _vector3.z, null );
+					}
 
 				}
 
@@ -21257,8 +21268,6 @@ function WebGLRenderer( parameters ) {
 
 	function renderObject( object, scene, camera, geometry, material, group ) {
 
-		if ( object.layers.test( camera.layers ) === false ) return;
-
 		object.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld );
 		object.normalMatrix.getNormalMatrix( object.modelViewMatrix );
 
@@ -22235,18 +22244,7 @@ function WebGLRenderer( parameters ) {
 				}
 
 				_lights.pointShadowMap[ pointLength ] = shadowMap;
-
-				if ( _lights.pointShadowMatrix[ pointLength ] === undefined ) {
-
-					_lights.pointShadowMatrix[ pointLength ] = new Matrix4();
-
-				}
-
-				// for point lights we set the shadow matrix to be a translation-only matrix
-				// equal to inverse of the light's position
-				_vector3.setFromMatrixPosition( light.matrixWorld ).negate();
-				_lights.pointShadowMatrix[ pointLength ].identity().setPosition( _vector3 );
-
+				_lights.pointShadowMatrix[ pointLength ] = light.shadow.matrix;
 				_lights.point[ pointLength ] = uniforms;
 
 				pointLength ++;

部分文件因为文件数量过多而无法显示