提交 851dd14f 编写于 作者: M Mr.doob

Editor: Refactored Sidebar.Project.

上级 2847f57c
......@@ -81,7 +81,6 @@ function SidebarProject( editor ) {
var antialiasRow = new UIRow();
var antialiasBoolean = new UIBoolean( config.getKey( 'project/renderer/antialias' ) ).onChange( function () {
config.setKey( 'project/renderer/antialias', this.getValue() );
createRenderer();
} );
......@@ -96,8 +95,8 @@ function SidebarProject( editor ) {
var shadowsRow = new UIRow();
var shadowsBoolean = new UIBoolean( config.getKey( 'project/renderer/shadows' ) ).onChange( function () {
config.setKey( 'project/renderer/shadows', this.getValue() );
updateRenderer();
currentRenderer.shadowMap.enabled = this.getValue();
signals.rendererUpdated.dispatch();
} );
......@@ -111,8 +110,8 @@ function SidebarProject( editor ) {
// 3: 'VSM'
} ).setWidth( '125px' ).onChange( function () {
config.setKey( 'project/renderer/shadowType', parseFloat( this.getValue() ) );
updateRenderer();
currentRenderer.shadowMap.type = parseFloat( this.getValue() );
signals.rendererUpdated.dispatch();
} );
shadowTypeSelect.setValue( config.getKey( 'project/renderer/shadowType' ) );
......@@ -126,8 +125,8 @@ function SidebarProject( editor ) {
var physicallyCorrectLightsRow = new UIRow();
var physicallyCorrectLightsBoolean = new UIBoolean( config.getKey( 'project/renderer/physicallyCorrectLights' ) ).onChange( function () {
config.setKey( 'project/renderer/physicallyCorrectLights', this.getValue() );
updateRenderer();
currentRenderer.physicallyCorrectLights = this.getValue();
signals.rendererUpdated.dispatch();
} );
......@@ -145,14 +144,11 @@ function SidebarProject( editor ) {
2: 'Reinhard',
3: 'Cineon',
4: 'ACESFilmic'
} ).setWidth( '120px' ).onChange( function ( value ) {
var value = this.getValue();
config.setKey( 'project/renderer/toneMapping', parseFloat( value ) );
toneMappingExposure.setDisplay( value === '0' ? 'none' : '' );
} ).setWidth( '120px' ).onChange( function () {
updateRenderer();
currentRenderer.toneMapping = parseFloat( this.getValue() );
toneMappingExposure.setDisplay( currentRenderer.toneMapping === 0 ? 'none' : '' );
signals.rendererUpdated.dispatch();
} );
toneMappingSelect.setValue( config.getKey( 'project/renderer/toneMapping' ) );
......@@ -166,8 +162,8 @@ function SidebarProject( editor ) {
toneMappingExposure.setRange( 0, 10 );
toneMappingExposure.onChange( function () {
config.setKey( 'project/renderer/toneMappingExposure', this.getValue() );
updateRenderer();
currentRenderer.toneMappingExposure = this.getValue();
signals.rendererUpdated.dispatch();
} );
toneMappingRow.add( toneMappingExposure );
......@@ -176,18 +172,6 @@ function SidebarProject( editor ) {
//
function updateRenderer() {
currentRenderer.physicallyCorrectLights = physicallyCorrectLightsBoolean.getValue();
currentRenderer.shadowMap.enabled = shadowsBoolean.getValue();
currentRenderer.shadowMap.type = parseFloat( shadowTypeSelect.getValue() );
currentRenderer.toneMapping = parseFloat( toneMappingSelect.getValue() );
currentRenderer.toneMappingExposure = toneMappingExposure.getValue();
signals.rendererUpdated.dispatch();
}
function createRenderer() {
currentRenderer = new THREE.WebGLRenderer( { antialias: antialiasBoolean.getValue() } );
......@@ -262,7 +246,45 @@ function SidebarProject( editor ) {
container.add( materials );
// events
// signals
signals.editorCleared.add( function () {
currentRenderer.physicallyCorrectLights = false;
currentRenderer.shadowMap.enabled = true;
currentRenderer.shadowMap.type = 1;
currentRenderer.toneMapping = 0;
currentRenderer.toneMappingExposure = 1;
refreshRendererUI();
signals.rendererUpdated.dispatch();
} );
function refreshRendererUI() {
physicallyCorrectLightsBoolean.setValue( currentRenderer.physicallyCorrectLights );
shadowsBoolean.setValue( currentRenderer.shadowMap.enabled );
shadowTypeSelect.setValue( currentRenderer.shadowMap.type );
toneMappingSelect.setValue( currentRenderer.toneMapping );
toneMappingExposure.setValue( currentRenderer.toneMappingExposure );
toneMappingExposure.setDisplay( currentRenderer.toneMapping === 0 ? 'none' : '' );
}
signals.rendererUpdated.add( function () {
config.setKey(
'project/renderer/antialias', antialiasBoolean.getValue(),
'project/renderer/physicallyCorrectLights', physicallyCorrectLightsBoolean.getValue(),
'project/renderer/shadows', shadowsBoolean.getValue(),
'project/renderer/shadowType', parseFloat( shadowTypeSelect.getValue() ),
'project/renderer/toneMapping', parseFloat( toneMappingSelect.getValue() ),
'project/renderer/toneMappingExposure', toneMappingExposure.getValue()
);
} );
signals.objectSelected.add( function ( object ) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册