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

WebGLRenderer: `.physicallyCorrectLights` -> `.useLegacyLights` (#24975)

* physicallyCorrectLights -> useLegacyLights

* Update returned value

* Update WebGLRenderer.js

---------

Co-authored-by: mrdoob <[email protected]>
WestLangley 2 жил өмнө
parent
commit
e3ee0cdfbc

+ 1 - 1
examples/webgl_animation_skinning_ik.html

@@ -77,7 +77,7 @@
 			renderer.setPixelRatio( window.devicePixelRatio );
 			renderer.setPixelRatio( window.devicePixelRatio );
 			renderer.setSize( window.innerWidth, window.innerHeight );
 			renderer.setSize( window.innerWidth, window.innerHeight );
 			renderer.outputEncoding = THREE.sRGBEncoding;
 			renderer.outputEncoding = THREE.sRGBEncoding;
-			renderer.physicallyCorrectLights = true;
+			renderer.useLegacyLights = false;
 			document.body.appendChild( renderer.domElement );
 			document.body.appendChild( renderer.domElement );
 
 
 			stats = new Stats();
 			stats = new Stats();

+ 1 - 1
examples/webgl_lights_physical.html

@@ -231,7 +231,7 @@
 
 
 
 
 				renderer = new THREE.WebGLRenderer();
 				renderer = new THREE.WebGLRenderer();
-				renderer.physicallyCorrectLights = true;
+				renderer.useLegacyLights = false;
 				renderer.outputEncoding = THREE.sRGBEncoding;
 				renderer.outputEncoding = THREE.sRGBEncoding;
 				renderer.shadowMap.enabled = true;
 				renderer.shadowMap.enabled = true;
 				renderer.toneMapping = THREE.ReinhardToneMapping;
 				renderer.toneMapping = THREE.ReinhardToneMapping;

+ 1 - 1
examples/webgl_materials_envmaps_hdr.html

@@ -68,7 +68,7 @@
 				scene.background = new THREE.Color( 0x000000 );
 				scene.background = new THREE.Color( 0x000000 );
 
 
 				renderer = new THREE.WebGLRenderer();
 				renderer = new THREE.WebGLRenderer();
-				renderer.physicallyCorrectLights = true;
+				renderer.useLegacyLights = false;
 				renderer.toneMapping = THREE.ACESFilmicToneMapping;
 				renderer.toneMapping = THREE.ACESFilmicToneMapping;
 
 
 				//
 				//

+ 1 - 1
examples/webgl_nodes_playground.html

@@ -97,7 +97,7 @@
 				renderer.outputEncoding = THREE.sRGBEncoding;
 				renderer.outputEncoding = THREE.sRGBEncoding;
 				renderer.toneMapping = THREE.LinearToneMapping;
 				renderer.toneMapping = THREE.LinearToneMapping;
 				renderer.toneMappingExposure = 1;
 				renderer.toneMappingExposure = 1;
-				renderer.physicallyCorrectLights = true;
+				renderer.useLegacyLights = false;
 
 
 				renderer.domElement.className = 'renderer';
 				renderer.domElement.className = 'renderer';
 
 

+ 1 - 1
examples/webgl_pmrem_test.html

@@ -55,7 +55,7 @@
 				renderer.setPixelRatio( window.devicePixelRatio );
 				renderer.setPixelRatio( window.devicePixelRatio );
 				renderer.setSize( width, height );
 				renderer.setSize( width, height );
 				renderer.outputEncoding = THREE.sRGBEncoding;
 				renderer.outputEncoding = THREE.sRGBEncoding;
-				renderer.physicallyCorrectLights = true;
+				renderer.useLegacyLights = false;
 
 
 				// tonemapping
 				// tonemapping
 				renderer.toneMapping = THREE.ACESFilmicToneMapping;
 				renderer.toneMapping = THREE.ACESFilmicToneMapping;

+ 1 - 1
examples/webxr_ar_lighting.html

@@ -59,7 +59,7 @@
 				renderer.setPixelRatio( window.devicePixelRatio );
 				renderer.setPixelRatio( window.devicePixelRatio );
 				renderer.setSize( window.innerWidth, window.innerHeight );
 				renderer.setSize( window.innerWidth, window.innerHeight );
 				renderer.outputEncoding = THREE.sRGBEncoding;
 				renderer.outputEncoding = THREE.sRGBEncoding;
-				renderer.physicallyCorrectLights = true;
+				renderer.useLegacyLights = false;
 				renderer.xr.enabled = true;
 				renderer.xr.enabled = true;
 				container.appendChild( renderer.domElement );
 				container.appendChild( renderer.domElement );
 
 

+ 27 - 3
src/renderers/WebGLRenderer.js

@@ -127,7 +127,7 @@ function WebGLRenderer( parameters = {} ) {
 
 
 	// physical lights
 	// physical lights
 
 
-	this.physicallyCorrectLights = false;
+	this.useLegacyLights = true;
 
 
 	// tone mapping
 	// tone mapping
 
 
@@ -869,7 +869,7 @@ function WebGLRenderer( parameters = {} ) {
 
 
 		} );
 		} );
 
 
-		currentRenderState.setupLights( _this.physicallyCorrectLights );
+		currentRenderState.setupLights( _this.useLegacyLights );
 
 
 		scene.traverse( function ( object ) {
 		scene.traverse( function ( object ) {
 
 
@@ -1019,7 +1019,7 @@ function WebGLRenderer( parameters = {} ) {
 
 
 		// render scene
 		// render scene
 
 
-		currentRenderState.setupLights( _this.physicallyCorrectLights );
+		currentRenderState.setupLights( _this.useLegacyLights );
 
 
 		if ( camera.isArrayCamera ) {
 		if ( camera.isArrayCamera ) {
 
 
@@ -2253,4 +2253,28 @@ function WebGLRenderer( parameters = {} ) {
 
 
 }
 }
 
 
+Object.defineProperties( WebGLRenderer.prototype, {
+
+	// @deprecated since r150
+
+	physicallyCorrectLights: {
+
+		get: function () {
+
+			console.warn( 'THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead.' );
+			return ! this.useLegacyLights;
+
+		},
+
+		set: function ( value ) {
+
+			console.warn( 'THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead.' );
+			this.useLegacyLights = ! value;
+
+		}
+
+	}
+
+} );
+
 export { WebGLRenderer };
 export { WebGLRenderer };

+ 11 - 11
src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js

@@ -50,7 +50,17 @@ vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {
 
 
 float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {
 float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {
 
 
-	#if defined ( PHYSICALLY_CORRECT_LIGHTS )
+	#if defined ( LEGACY_LIGHTS )
+
+		if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {
+
+			return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );
+
+		}
+
+		return 1.0;
+
+	#else
 
 
 		// based upon Frostbite 3 Moving to Physically-based Rendering
 		// based upon Frostbite 3 Moving to Physically-based Rendering
 		// page 32, equation 26: E[window1]
 		// page 32, equation 26: E[window1]
@@ -65,16 +75,6 @@ float getDistanceAttenuation( const in float lightDistance, const in float cutof
 
 
 		return distanceFalloff;
 		return distanceFalloff;
 
 
-	#else
-
-		if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {
-
-			return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );
-
-		}
-
-		return 1.0;
-
 	#endif
 	#endif
 
 
 }
 }

+ 2 - 2
src/renderers/webgl/WebGLLights.js

@@ -202,7 +202,7 @@ function WebGLLights( extensions, capabilities ) {
 	const matrix4 = new Matrix4();
 	const matrix4 = new Matrix4();
 	const matrix42 = new Matrix4();
 	const matrix42 = new Matrix4();
 
 
-	function setup( lights, physicallyCorrectLights ) {
+	function setup( lights, useLegacyLights ) {
 
 
 		let r = 0, g = 0, b = 0;
 		let r = 0, g = 0, b = 0;
 
 
@@ -224,7 +224,7 @@ function WebGLLights( extensions, capabilities ) {
 		lights.sort( shadowCastingAndTexturingLightsFirst );
 		lights.sort( shadowCastingAndTexturingLightsFirst );
 
 
 		// artist-friendly light intensity scaling factor
 		// artist-friendly light intensity scaling factor
-		const scaleFactor = ( physicallyCorrectLights !== true ) ? Math.PI : 1;
+		const scaleFactor = ( useLegacyLights === true ) ? Math.PI : 1;
 
 
 		for ( let i = 0, l = lights.length; i < l; i ++ ) {
 		for ( let i = 0, l = lights.length; i < l; i ++ ) {
 
 

+ 1 - 1
src/renderers/webgl/WebGLMaterials.js

@@ -189,7 +189,7 @@ function WebGLMaterials( renderer, properties ) {
 			uniforms.lightMap.value = material.lightMap;
 			uniforms.lightMap.value = material.lightMap;
 
 
 			// artist-friendly light intensity scaling factor
 			// artist-friendly light intensity scaling factor
-			const scaleFactor = ( renderer.physicallyCorrectLights !== true ) ? Math.PI : 1;
+			const scaleFactor = ( renderer.useLegacyLights === true ) ? Math.PI : 1;
 
 
 			uniforms.lightMapIntensity.value = material.lightMapIntensity * scaleFactor;
 			uniforms.lightMapIntensity.value = material.lightMapIntensity * scaleFactor;
 
 

+ 1 - 1
src/renderers/webgl/WebGLProgram.js

@@ -673,7 +673,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
 
 
 			parameters.premultipliedAlpha ? '#define PREMULTIPLIED_ALPHA' : '',
 			parameters.premultipliedAlpha ? '#define PREMULTIPLIED_ALPHA' : '',
 
 
-			parameters.physicallyCorrectLights ? '#define PHYSICALLY_CORRECT_LIGHTS' : '',
+			parameters.useLegacyLights ? '#define LEGACY_LIGHTS' : '',
 
 
 			parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',
 			parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',
 			( parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ) ? '#define USE_LOGDEPTHBUF_EXT' : '',
 			( parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ) ? '#define USE_LOGDEPTHBUF_EXT' : '',

+ 2 - 2
src/renderers/webgl/WebGLPrograms.js

@@ -217,7 +217,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
 			shadowMapType: renderer.shadowMap.type,
 			shadowMapType: renderer.shadowMap.type,
 
 
 			toneMapping: material.toneMapped ? renderer.toneMapping : NoToneMapping,
 			toneMapping: material.toneMapped ? renderer.toneMapping : NoToneMapping,
-			physicallyCorrectLights: renderer.physicallyCorrectLights,
+			useLegacyLights: renderer.useLegacyLights,
 
 
 			premultipliedAlpha: material.premultipliedAlpha,
 			premultipliedAlpha: material.premultipliedAlpha,
 
 
@@ -410,7 +410,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
 			_programLayers.enable( 8 );
 			_programLayers.enable( 8 );
 		if ( parameters.shadowMapEnabled )
 		if ( parameters.shadowMapEnabled )
 			_programLayers.enable( 9 );
 			_programLayers.enable( 9 );
-		if ( parameters.physicallyCorrectLights )
+		if ( parameters.useLegacyLights )
 			_programLayers.enable( 10 );
 			_programLayers.enable( 10 );
 		if ( parameters.doubleSided )
 		if ( parameters.doubleSided )
 			_programLayers.enable( 11 );
 			_programLayers.enable( 11 );

+ 2 - 2
src/renderers/webgl/WebGLRenderStates.js

@@ -26,9 +26,9 @@ function WebGLRenderState( extensions, capabilities ) {
 
 
 	}
 	}
 
 
-	function setupLights( physicallyCorrectLights ) {
+	function setupLights( useLegacyLights ) {
 
 
-		lights.setup( lightsArray, physicallyCorrectLights );
+		lights.setup( lightsArray, useLegacyLights );
 
 
 	}
 	}