Преглед на файлове

Merge pull request #19715 from mrdoob/lightshadow

LightShadow: Added autoUpdate and needsUpdate.
Mr.doob преди 5 години
родител
ревизия
c80cafc6d1
променени са 2 файла, в които са добавени 7 реда и са изтрити 0 реда
  1. 3 0
      src/lights/LightShadow.js
  2. 4 0
      src/renderers/webgl/WebGLShadowMap.js

+ 3 - 0
src/lights/LightShadow.js

@@ -22,6 +22,9 @@ function LightShadow( camera ) {
 	this.mapPass = null;
 	this.mapPass = null;
 	this.matrix = new Matrix4();
 	this.matrix = new Matrix4();
 
 
+	this.autoUpdate = true;
+	this.needsUpdate = false;
+
 	this._frustum = new Frustum();
 	this._frustum = new Frustum();
 	this._frameExtents = new Vector2( 1, 1 );
 	this._frameExtents = new Vector2( 1, 1 );
 
 

+ 4 - 0
src/renderers/webgl/WebGLShadowMap.js

@@ -102,6 +102,8 @@ function WebGLShadowMap( _renderer, _objects, maxTextureSize ) {
 			const light = lights[ i ];
 			const light = lights[ i ];
 			const shadow = light.shadow;
 			const shadow = light.shadow;
 
 
+			if ( shadow.autoUpdate === false && shadow.needsUpdate === false ) continue;
+
 			if ( shadow === undefined ) {
 			if ( shadow === undefined ) {
 
 
 				console.warn( 'THREE.WebGLShadowMap:', light, 'has no shadow.' );
 				console.warn( 'THREE.WebGLShadowMap:', light, 'has no shadow.' );
@@ -195,6 +197,8 @@ function WebGLShadowMap( _renderer, _objects, maxTextureSize ) {
 
 
 			}
 			}
 
 
+			shadow.needsUpdate = false;
+
 		}
 		}
 
 
 		scope.needsUpdate = false;
 		scope.needsUpdate = false;