Browse Source

Merge pull request #18547 from Mugen87/dev41

Editor: Add physicallyCorrectLights project settings.
Mr.doob 5 years ago
parent
commit
35e2f39af8
3 changed files with 37 additions and 8 deletions
  1. 1 0
      editor/js/Config.js
  2. 34 8
      editor/js/Sidebar.Project.js
  3. 2 0
      editor/js/Strings.js

+ 1 - 0
editor/js/Config.js

@@ -16,6 +16,7 @@ var Config = function () {
 
 
 		'project/renderer/antialias': true,
 		'project/renderer/antialias': true,
 		'project/renderer/shadows': true,
 		'project/renderer/shadows': true,
+		'project/renderer/physicallyCorrectLights': false,
 		'project/renderer/toneMapping': 1, // linear
 		'project/renderer/toneMapping': 1, // linear
 		'project/renderer/toneMappingExposure': 1,
 		'project/renderer/toneMappingExposure': 1,
 		'project/renderer/toneMappingWhitePoint': 1,
 		'project/renderer/toneMappingWhitePoint': 1,

+ 34 - 8
editor/js/Sidebar.Project.js

@@ -56,8 +56,8 @@ var SidebarProject = function ( editor ) {
 
 
 	// Renderer
 	// Renderer
 
 
-	var rendererPropertiesRow = new UIRow();
-	rendererPropertiesRow.add( new UIText( strings.getKey( 'sidebar/project/renderer' ) ).setWidth( '90px' ) );
+	var rendererPropertiesRow1 = new UIRow();
+	rendererPropertiesRow1.add( new UIText( strings.getKey( 'sidebar/project/renderer' ) ).setWidth( '90px' ) );
 
 
 	// Renderer / Antialias
 	// Renderer / Antialias
 
 
@@ -67,7 +67,7 @@ var SidebarProject = function ( editor ) {
 		updateRenderer();
 		updateRenderer();
 
 
 	} );
 	} );
-	rendererPropertiesRow.add( rendererAntialias );
+	rendererPropertiesRow1.add( rendererAntialias );
 
 
 	// Renderer / Shadows
 	// Renderer / Shadows
 
 
@@ -77,9 +77,24 @@ var SidebarProject = function ( editor ) {
 		updateRenderer();
 		updateRenderer();
 
 
 	} );
 	} );
-	rendererPropertiesRow.add( rendererShadows );
+	rendererPropertiesRow1.add( rendererShadows );
 
 
-	projectsettings.add( rendererPropertiesRow );
+	projectsettings.add( rendererPropertiesRow1 );
+
+	// Renderer / Physically Correct lights
+
+	var rendererPropertiesRow2 = new UIRow();
+
+	var rendererPhysicallyCorrectLights = new UIBoolean( config.getKey( 'project/renderer/physicallyCorrectLights' ), strings.getKey( 'sidebar/project/physicallyCorrectLights' ) ).onChange( function () {
+
+		config.setKey( 'project/renderer/physicallyCorrectLights', this.getValue() );
+		updateRenderer();
+
+	} );
+	rendererPhysicallyCorrectLights.setMarginLeft( '90px' );
+	rendererPropertiesRow2.add( rendererPhysicallyCorrectLights );
+
+	projectsettings.add( rendererPropertiesRow2 );
 
 
 	// Tonemapping
 	// Tonemapping
 
 
@@ -145,11 +160,16 @@ var SidebarProject = function ( editor ) {
 
 
 	function updateRenderer() {
 	function updateRenderer() {
 
 
-		createRenderer( rendererAntialias.getValue(), rendererShadows.getValue(), rendererToneMappingTypeSelect.getValue() );
+		createRenderer(
+			rendererAntialias.getValue(),
+			rendererShadows.getValue(),
+			rendererToneMappingTypeSelect.getValue(),
+		 	rendererPhysicallyCorrectLights.getValue()
+		);
 
 
 	}
 	}
 
 
-	function createRenderer( antialias, shadows, toneMapping ) {
+	function createRenderer( antialias, shadows, toneMapping, physicallyCorrectLights ) {
 
 
 		var parameters = { antialias: antialias };
 		var parameters = { antialias: antialias };
 
 
@@ -173,6 +193,7 @@ var SidebarProject = function ( editor ) {
 		}
 		}
 
 
 		currentRenderer.toneMapping = parseFloat( toneMapping );
 		currentRenderer.toneMapping = parseFloat( toneMapping );
+		currentRenderer.physicallyCorrectLights = physicallyCorrectLights;
 
 
 		signals.rendererChanged.dispatch( currentRenderer, currentPmremGenerator );
 		signals.rendererChanged.dispatch( currentRenderer, currentPmremGenerator );
 
 
@@ -187,7 +208,12 @@ var SidebarProject = function ( editor ) {
 
 
 	}
 	}
 
 
-	createRenderer( config.getKey( 'project/renderer/antialias' ), config.getKey( 'project/renderer/shadows' ), config.getKey( 'project/renderer/toneMapping' ) );
+	createRenderer(
+		config.getKey( 'project/renderer/antialias' ),
+		config.getKey( 'project/renderer/shadows' ),
+		config.getKey( 'project/renderer/toneMapping' ),
+		config.getKey( 'project/renderer/physicallyCorrectLights' )
+	 );
 
 
 	// Materials
 	// Materials
 
 

+ 2 - 0
editor/js/Strings.js

@@ -287,6 +287,7 @@ var Strings = function ( config ) {
 			'sidebar/project/renderer': 'Renderer',
 			'sidebar/project/renderer': 'Renderer',
 			'sidebar/project/antialias': 'antialias',
 			'sidebar/project/antialias': 'antialias',
 			'sidebar/project/shadows': 'shadows',
 			'sidebar/project/shadows': 'shadows',
+			'sidebar/project/physicallyCorrectLights': 'physically correct lights',
 			'sidebar/project/toneMapping': 'Tone Mapping',
 			'sidebar/project/toneMapping': 'Tone Mapping',
 			'sidebar/project/toneMappingType': 'Type',
 			'sidebar/project/toneMappingType': 'Type',
 			'sidebar/project/toneMappingExposure': 'Exposure',
 			'sidebar/project/toneMappingExposure': 'Exposure',
@@ -573,6 +574,7 @@ var Strings = function ( config ) {
 			'sidebar/project/renderer': '渲染器',
 			'sidebar/project/renderer': '渲染器',
 			'sidebar/project/antialias': '抗锯齿',
 			'sidebar/project/antialias': '抗锯齿',
 			'sidebar/project/shadows': '阴影',
 			'sidebar/project/shadows': '阴影',
+			'sidebar/project/physicallyCorrectLights': 'physically correct lights',
 			'sidebar/project/toneMapping': 'Tone Mapping',
 			'sidebar/project/toneMapping': 'Tone Mapping',
 			'sidebar/project/toneMappingType': 'Type',
 			'sidebar/project/toneMappingType': 'Type',
 			'sidebar/project/toneMappingExposure': 'Exposure',
 			'sidebar/project/toneMappingExposure': 'Exposure',