From bf7d54c787547574470fac61e2707fc70c76ef77 Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Sat, 11 Oct 2014 16:03:07 +0200 Subject: [PATCH] Editor: Added antialias checkbox. --- editor/js/Config.js | 5 ++++- editor/js/Sidebar.Material.js | 1 + editor/js/Sidebar.Renderer.js | 25 ++++++++++++++++++++++--- editor/js/Viewport.js | 32 +++++++++++++------------------- 4 files changed, 40 insertions(+), 23 deletions(-) diff --git a/editor/js/Config.js b/editor/js/Config.js index c42e3ae86e..bb3f390029 100644 --- a/editor/js/Config.js +++ b/editor/js/Config.js @@ -8,8 +8,11 @@ var Config = function () { var storage = { 'autosave': true, - 'theme': 'css/light.css', + + 'renderer': 'WebGLRenderer', + 'renderer/antialias': true, + 'camera/position': [ 500, 250, 500 ], 'camera/target': [ 0, 0, 0 ], diff --git a/editor/js/Sidebar.Material.js b/editor/js/Sidebar.Material.js index 704ae32ce4..c565ab6961 100644 --- a/editor/js/Sidebar.Material.js +++ b/editor/js/Sidebar.Material.js @@ -338,6 +338,7 @@ Sidebar.Material = function ( editor ) { materialBlendingRow.add( materialBlending ); container.add( materialBlendingRow ); + // opacity var materialOpacityRow = new UI.Panel(); diff --git a/editor/js/Sidebar.Renderer.js b/editor/js/Sidebar.Renderer.js index ea94c78ef8..79cd3da530 100644 --- a/editor/js/Sidebar.Renderer.js +++ b/editor/js/Sidebar.Renderer.js @@ -40,7 +40,12 @@ Sidebar.Renderer = function ( editor ) { } var rendererTypeRow = new UI.Panel(); - var rendererType = new UI.Select().setOptions( options ).setWidth( '150px' ).setColor( '#444' ).setFontSize( '12px' ).onChange( updateRenderer ); + var rendererType = new UI.Select().setOptions( options ).setWidth( '150px' ).setColor( '#444' ).onChange( function () { + + editor.config.setKey( 'renderer', this.getValue() ); + updateRenderer(); + + } ); rendererTypeRow.add( new UI.Text( 'Type' ).setWidth( '90px' ) ); rendererTypeRow.add( rendererType ); @@ -52,13 +57,27 @@ Sidebar.Renderer = function ( editor ) { rendererType.setValue( editor.config.getKey( 'renderer' ) ); } + + // antialiasing + + var rendererAntialiasRow = new UI.Panel(); + var rendererAntialias = new UI.Checkbox( editor.config.getKey( 'renderer/antialias' ) ).setLeft( '100px' ).onChange( function () { + + editor.config.setKey( 'renderer/antialias', this.getValue() ); + // updateRenderer(); + + } ); + + rendererAntialiasRow.add( new UI.Text( 'Antialias' ).setWidth( '90px' ) ); + rendererAntialiasRow.add( rendererAntialias ); + + container.add( rendererAntialiasRow ); // function updateRenderer() { - signals.rendererChanged.dispatch( rendererType.getValue() ); - editor.config.setKey( 'renderer', rendererType.getValue() ); + signals.rendererChanged.dispatch( rendererType.getValue(), rendererAntialias.getValue() ); } diff --git a/editor/js/Viewport.js b/editor/js/Viewport.js index d72085ae41..49a516b2de 100644 --- a/editor/js/Viewport.js +++ b/editor/js/Viewport.js @@ -264,13 +264,11 @@ var Viewport = function ( editor ) { } ); - signals.rendererChanged.add( function ( type ) { + signals.rendererChanged.add( function ( type, antialias ) { container.dom.removeChild( renderer.domElement ); - renderer = new THREE[ type ]( { antialias: true } ); - renderer.autoClear = false; - renderer.autoUpdateScene = false; + renderer = createRenderer( type, antialias ); renderer.setClearColor( clearColor ); renderer.setSize( container.dom.offsetWidth, container.dom.offsetHeight ); @@ -508,28 +506,24 @@ var Viewport = function ( editor ) { // - var clearColor, renderer; - - if ( editor.config.getKey( 'renderer' ) !== undefined ) { + var createRenderer = function ( type, antialias ) { - renderer = new THREE[ editor.config.getKey( 'renderer' ) ]( { antialias: true } ); + if ( type === 'WebGLRenderer' && System.support.webgl === false ) { - } else { + type = 'CanvasRenderer'; - if ( System.support.webgl === true ) { - - renderer = new THREE.WebGLRenderer( { antialias: true } ); - - } else { + } - renderer = new THREE.CanvasRenderer(); + var renderer = new THREE[ type ]( { antialias: antialias } ); + renderer.autoClear = false; + renderer.autoUpdateScene = false; - } + return renderer; - } + }; - renderer.autoClear = false; - renderer.autoUpdateScene = false; + var clearColor; + var renderer = createRenderer( editor.config.getKey( 'renderer' ), editor.config.getKey( 'renderer/antialias' ) ); container.dom.appendChild( renderer.domElement ); animate(); -- GitLab