From aa078fa2fd48fe75e621226a61f1b892489a15bd Mon Sep 17 00:00:00 2001 From: thmasn Date: Tue, 28 Jun 2016 21:07:31 +0200 Subject: [PATCH] added editor gamma options #2 (#9231) * Update index.html * Revert "Update index.html" This reverts commit 76f47860891b9bc87b0243ec79378d325a725650. * added options for gammaInput and gammaOutput * added storage for gammaInput and gammaOutput * added gammaInOut values to json export * further adds added gammaInOutput options to the app and fixed them not loading on page reload * dang that was wrong --- editor/js/Config.js | 3 +++ editor/js/Editor.js | 2 ++ editor/js/Sidebar.Project.js | 33 +++++++++++++++++++++++++++------ editor/js/libs/app.js | 3 ++- 4 files changed, 34 insertions(+), 7 deletions(-) diff --git a/editor/js/Config.js b/editor/js/Config.js index af39da5305..ecc912e727 100644 --- a/editor/js/Config.js +++ b/editor/js/Config.js @@ -11,6 +11,9 @@ var Config = function ( name ) { 'project/renderer': 'WebGLRenderer', 'project/renderer/antialias': true, 'project/renderer/shadows': true, + 'project/renderer/softShadows': false, + 'project/renderer/gammaInput': false, + 'project/renderer/gammaOutput': false, 'project/editable': false, 'project/vr': false, diff --git a/editor/js/Editor.js b/editor/js/Editor.js index 7415249ad3..ce9de849de 100644 --- a/editor/js/Editor.js +++ b/editor/js/Editor.js @@ -486,6 +486,8 @@ Editor.prototype = { project: { shadows: this.config.getKey( 'project/renderer/shadows' ), editable: this.config.getKey( 'project/editable' ), + gammaInput: this.config.getKey( 'project/renderer/gammaInput' ), + gammaOutput: this.config.getKey( 'project/renderer/gammaOutput' ), vr: this.config.getKey( 'project/vr' ) }, camera: this.camera.toJSON(), diff --git a/editor/js/Sidebar.Project.js b/editor/js/Sidebar.Project.js index 8f2cd52269..7d686c9e15 100644 --- a/editor/js/Sidebar.Project.js +++ b/editor/js/Sidebar.Project.js @@ -67,7 +67,7 @@ Sidebar.Project = function ( editor ) { } ); rendererPropertiesRow.add( rendererAntialias ); - + // shadow var rendererShadows = new UI.THREE.Boolean( config.getKey( 'project/renderer/shadows' ), 'shadows' ).onChange( function () { @@ -80,6 +80,26 @@ Sidebar.Project = function ( editor ) { container.add( rendererPropertiesRow ); + //gamma input + + var rendererGammaInput = new UI.THREE.Boolean( config.getKey( 'project/renderer/gammaInput' ), 'gammaInput' ).onChange( function () { + + config.setKey( 'project/renderer/gammaInput', this.getValue() ); + updateRenderer(); + + } ); + rendererPropertiesRow.add( rendererGammaInput ); + + //gamma output + + var rendererGammaOutput = new UI.THREE.Boolean( config.getKey( 'project/renderer/gammaOutput' ), 'gammaOutput' ).onChange( function () { + + config.setKey( 'project/renderer/gammaOutput', this.getValue() ); + updateRenderer(); + + } ); + rendererPropertiesRow.add( rendererGammaOutput ); + // Editable var editableRow = new UI.Row(); @@ -113,11 +133,11 @@ Sidebar.Project = function ( editor ) { function updateRenderer() { - createRenderer( rendererType.getValue(), rendererAntialias.getValue(), rendererShadows.getValue() ); + createRenderer( rendererType.getValue(), rendererAntialias.getValue(), rendererShadows.getValue(), rendererGammaInput.getValue(), rendererGammaOutput.getValue() ); } - function createRenderer( type, antialias, shadows ) { + function createRenderer( type, antialias, shadows, gammaIn, gammaOut ) { if ( type === 'WebGLRenderer' && System.support.webgl === false ) { @@ -127,8 +147,9 @@ Sidebar.Project = function ( editor ) { rendererPropertiesRow.setDisplay( type === 'WebGLRenderer' ? '' : 'none' ); - var renderer = new rendererTypes[ type ]( { antialias: antialias } ); - + var renderer = new rendererTypes[ type ]( { antialias: antialias} ); + renderer.gammaInput = gammaIn; + renderer.gammaOutput = gammaOut; if ( shadows && renderer.shadowMap ) { renderer.shadowMap.enabled = true; @@ -140,7 +161,7 @@ Sidebar.Project = function ( editor ) { } - createRenderer( config.getKey( 'project/renderer' ), config.getKey( 'project/renderer/antialias' ), config.getKey( 'project/renderer/shadows' ) ); + createRenderer( config.getKey( 'project/renderer' ), config.getKey( 'project/renderer/antialias' ), config.getKey( 'project/renderer/shadows' ), config.getKey( 'project/renderer/gammaInput' ), config.getKey( 'project/renderer/gammaOutput' ) ); return container; diff --git a/editor/js/libs/app.js b/editor/js/libs/app.js index dedde6d5a4..37944e1b86 100644 --- a/editor/js/libs/app.js +++ b/editor/js/libs/app.js @@ -23,10 +23,11 @@ var APP = { this.load = function ( json ) { vr = json.project.vr; - renderer = new THREE.WebGLRenderer( { antialias: true } ); renderer.setClearColor( 0x000000 ); renderer.setPixelRatio( window.devicePixelRatio ); + renderer.gammaInput = json.project.gammaInput; + renderer.gammaOutput = json.project.gammaOutput; if ( json.project.shadows ) { -- GitLab