diff --git a/editor/js/Config.js b/editor/js/Config.js index c42e3ae86ee7192bd99964f397e3f04f8756db4c..bb3f3900299330fcc0fc3f12a084a45a44ac9f2e 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 704ae32ce48f1ded3e47d6c4b0023388b1c1ec1e..c565ab6961115c3cd9d86da7c860c5261b677ad9 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 ea94c78ef84c532cd1028bd8fd8b3f818075a674..79cd3da5305f48f6dc9a6c8ff000c955b979a121 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 d72085ae411f703197e01982e88fe697cfc1312b..49a516b2de38f64bffc1b413bc9c0e27094ff5e1 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();