Przeglądaj źródła

Editor: Added antialias checkbox.

Mr.doob 10 lat temu
rodzic
commit
bf7d54c787

+ 4 - 1
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 ],
 

+ 1 - 0
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();

+ 22 - 3
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() );
 
 	}
 

+ 13 - 19
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();