Browse Source

Editor: Handle LightShadow.radius.

Mr.doob 9 years ago
parent
commit
4cc5a1af03
3 changed files with 37 additions and 3 deletions
  1. 21 1
      editor/js/Sidebar.Object.js
  2. 8 1
      editor/js/Sidebar.Project.js
  3. 8 1
      editor/js/libs/app.js

+ 21 - 1
editor/js/Sidebar.Object.js

@@ -256,6 +256,9 @@ Sidebar.Object = function ( editor ) {
 	var objectReceiveShadow = new UI.THREE.Boolean( false, 'receive' ).onChange( update );
 	objectShadowRow.add( objectReceiveShadow );
 
+	var objectShadowRadius = new UI.Number( 1 ).onChange( update );
+	objectShadowRow.add( objectShadowRadius );
+
 	container.add( objectShadowRow );
 
 	// visible
@@ -476,6 +479,16 @@ Sidebar.Object = function ( editor ) {
 
 			}
 
+			if ( object.shadow !== undefined ) {
+
+				if ( object.shadow.radius !== objectShadowRadius.getValue() ) {
+
+					editor.execute( new SetValueCommand( object.shadow, 'radius', objectShadowRadius.getValue() ) );
+
+				}
+
+			}
+
 			try {
 
 				var userData = JSON.parse( objectUserData.getValue() );
@@ -510,7 +523,8 @@ Sidebar.Object = function ( editor ) {
 			'exponent' : objectExponentRow,
 			'decay' : objectDecayRow,
 			'castShadow' : objectShadowRow,
-			'receiveShadow' : objectReceiveShadow
+			'receiveShadow' : objectReceiveShadow,
+			'shadow': objectShadowRadius
 		};
 
 		for ( var property in properties ) {
@@ -689,6 +703,12 @@ Sidebar.Object = function ( editor ) {
 
 		}
 
+		if ( object.shadow !== undefined ) {
+
+			objectShadowRadius.setValue( object.shadow.radius );
+
+		}
+
 		objectVisible.setValue( object.visible );
 
 		try {

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

@@ -114,7 +114,14 @@ Sidebar.Project = function ( editor ) {
 		rendererPropertiesRow.setDisplay( type === 'WebGLRenderer' ? '' : 'none' );
 
 		var renderer = new rendererTypes[ type ]( { antialias: antialias } );
-		if ( shadows && renderer.shadowMap ) renderer.shadowMap.enabled = true;
+
+		if ( shadows && renderer.shadowMap ) {
+
+			renderer.shadowMap.enabled = true;
+			// renderer.shadowMap.type = THREE.PCFSoftShadowMap;
+
+		}
+
 		signals.rendererChanged.dispatch( renderer );
 
 	}

+ 8 - 1
editor/js/libs/app.js

@@ -27,7 +27,14 @@ var APP = {
 			renderer = new THREE.WebGLRenderer( { antialias: true } );
 			renderer.setClearColor( 0x000000 );
 			renderer.setPixelRatio( window.devicePixelRatio );
-			if ( json.project.shadows ) renderer.shadowMap.enabled = true;
+
+			if ( json.project.shadows ) {
+
+				renderer.shadowMap.enabled = true;
+				// renderer.shadowMap.type = THREE.PCFSoftShadowMap;
+
+			}
+
 			this.dom = renderer.domElement;
 
 			this.setScene( loader.parse( json.scene ) );