Ver código fonte

Remove flags used to toggle shadows in shaders

The shaders only contain code for active shadows, so they don't need a separate flag to determine whether the shadow is enabled.
Olli Etuaho 5 anos atrás
pai
commit
eb0b88689f

+ 3 - 3
src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js

@@ -44,7 +44,7 @@ IncidentLight directLight;
 
 		#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )
 		pointLightShadow = pointLightShadows[ i ];
-		directLight.color *= all( bvec3( pointLightShadow.shadow, directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;
+		directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;
 		#endif
 
 		RE_Direct( directLight, geometry, material, reflectedLight );
@@ -69,7 +69,7 @@ IncidentLight directLight;
 
 		#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
 		spotLightShadow = spotLightShadows[ i ];
-		directLight.color *= all( bvec3( spotLightShadow.shadow, directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;
+		directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;
 		#endif
 
 		RE_Direct( directLight, geometry, material, reflectedLight );
@@ -94,7 +94,7 @@ IncidentLight directLight;
 
 		#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )
 		directionalLightShadow = directionalLightShadows[ i ];
-		directLight.color *= all( bvec3( directionalLightShadow.shadow, directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
+		directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
 		#endif
 
 		RE_Direct( directLight, geometry, material, reflectedLight );

+ 0 - 3
src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js

@@ -66,7 +66,6 @@ vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {
 	#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0
 
 		struct DirectionalLightShadow {
-			int shadow;
 			float shadowBias;
 			float shadowRadius;
 			vec2 shadowMapSize;
@@ -102,7 +101,6 @@ vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {
 	#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0
 
 		struct PointLightShadow {
-			int shadow;
 			float shadowBias;
 			float shadowRadius;
 			vec2 shadowMapSize;
@@ -148,7 +146,6 @@ vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {
 	#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0
 
 		struct SpotLightShadow {
-			int shadow;
 			float shadowBias;
 			float shadowRadius;
 			vec2 shadowMapSize;

+ 3 - 3
src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js

@@ -13,7 +13,7 @@ float getShadowMask() {
 	for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
 
 		directionalLight = directionalLightShadows[ i ];
-		shadow *= all( bvec2( directionalLight.shadow, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
+		shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
 
 	}
 
@@ -27,7 +27,7 @@ float getShadowMask() {
 	for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {
 
 		spotLight = spotLightShadows[ i ];
-		shadow *= all( bvec2( spotLight.shadow, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;
+		shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;
 
 	}
 
@@ -41,7 +41,7 @@ float getShadowMask() {
 	for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
 
 		pointLight = pointLightShadows[ i ];
-		shadow *= all( bvec2( pointLight.shadow, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;
+		shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;
 
 	}
 

+ 0 - 3
src/renderers/shaders/UniformsLib.d.ts

@@ -72,7 +72,6 @@ export let UniformsLib: {
 		directionalLightShadows: {
 			value: any[];
 			properties: {
-				shadow: {};
 				shadowBias: {};
 				shadowRadius: {};
 				shadowMapSize: {};
@@ -95,7 +94,6 @@ export let UniformsLib: {
 		spotLightShadows: {
 			value: any[];
 			properties: {
-				shadow: {};
 				shadowBias: {};
 				shadowRadius: {};
 				shadowMapSize: {};
@@ -115,7 +113,6 @@ export let UniformsLib: {
 		pointLightShadows: {
 			value: any[];
 			properties: {
-				shadow: {};
 				shadowBias: {};
 				shadowRadius: {};
 				shadowMapSize: {};

+ 0 - 3
src/renderers/shaders/UniformsLib.js

@@ -118,7 +118,6 @@ var UniformsLib = {
 		} },
 
 		directionalLightShadows: { value: [], properties: {
-			shadow: {},
 			shadowBias: {},
 			shadowRadius: {},
 			shadowMapSize: {}
@@ -138,7 +137,6 @@ var UniformsLib = {
 		} },
 
 		spotLightShadows: { value: [], properties: {
-			shadow: {},
 			shadowBias: {},
 			shadowRadius: {},
 			shadowMapSize: {}
@@ -155,7 +153,6 @@ var UniformsLib = {
 		} },
 
 		pointLightShadows: { value: [], properties: {
-			shadow: {},
 			shadowBias: {},
 			shadowRadius: {},
 			shadowMapSize: {},

+ 0 - 6
src/renderers/webgl/WebGLLights.js

@@ -102,7 +102,6 @@ function ShadowUniformsCache() {
 
 				case 'DirectionalLight':
 					uniforms = {
-						shadow: false,
 						shadowBias: 0,
 						shadowRadius: 1,
 						shadowMapSize: new Vector2()
@@ -111,7 +110,6 @@ function ShadowUniformsCache() {
 
 				case 'SpotLight':
 					uniforms = {
-						shadow: false,
 						shadowBias: 0,
 						shadowRadius: 1,
 						shadowMapSize: new Vector2()
@@ -120,7 +118,6 @@ function ShadowUniformsCache() {
 
 				case 'PointLight':
 					uniforms = {
-						shadow: false,
 						shadowBias: 0,
 						shadowRadius: 1,
 						shadowMapSize: new Vector2(),
@@ -260,7 +257,6 @@ function WebGLLights() {
 
 					var shadowUniforms = shadowCache.get( light );
 
-					shadowUniforms.shadow = light.castShadow;
 					shadowUniforms.shadowBias = shadow.bias;
 					shadowUniforms.shadowRadius = shadow.radius;
 					shadowUniforms.shadowMapSize = shadow.mapSize;
@@ -302,7 +298,6 @@ function WebGLLights() {
 
 					var shadowUniforms = shadowCache.get( light );
 
-					shadowUniforms.shadow = light.castShadow;
 					shadowUniforms.shadowBias = shadow.bias;
 					shadowUniforms.shadowRadius = shadow.radius;
 					shadowUniforms.shadowMapSize = shadow.mapSize;
@@ -368,7 +363,6 @@ function WebGLLights() {
 
 					var shadowUniforms = shadowCache.get( light );
 
-					shadowUniforms.shadow = light.castShadow;
 					shadowUniforms.shadowBias = shadow.bias;
 					shadowUniforms.shadowRadius = shadow.radius;
 					shadowUniforms.shadowMapSize = shadow.mapSize;