Skip to content

Commit

Permalink
shows pathtracer samples in viewport info
Browse files Browse the repository at this point in the history
  • Loading branch information
ycw committed May 22, 2024
1 parent b296bb1 commit bdb29a8
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 2 deletions.
2 changes: 2 additions & 0 deletions editor/js/Editor.js
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,8 @@ function Editor() {

intersectionsDetected: new Signal(),

pathTracerUpdated: new Signal(),

};

this.config = new Config();
Expand Down
10 changes: 9 additions & 1 deletion editor/js/Strings.js
Original file line number Diff line number Diff line change
Expand Up @@ -384,10 +384,12 @@ function Strings( config ) {
'viewport/info/oneObject': 'Object',
'viewport/info/oneVertex': 'Vertex',
'viewport/info/oneTriangle': 'Triangle',
'viewport/info/oneSample': 'Sample',
'viewport/info/objects': 'Objects',
'viewport/info/vertices': 'Vertices',
'viewport/info/triangles': 'Triangles',
'viewport/info/rendertime': 'Render time'
'viewport/info/samples': 'Samples',
'viewport/info/rendertime': 'Render time',

},

Expand Down Expand Up @@ -771,9 +773,11 @@ function Strings( config ) {
'viewport/info/oneObject': 'Objet',
'viewport/info/oneVertex': 'Sommet',
'viewport/info/oneTriangle': 'Triangle',
'viewport/info/oneSample': 'Échantillon',
'viewport/info/objects': 'Objets',
'viewport/info/vertices': 'Sommets',
'viewport/info/triangles': 'Triangles',
'viewport/info/samples': 'Échantillons',
'viewport/info/rendertime': 'Temps de rendu'

},
Expand Down Expand Up @@ -1158,9 +1162,11 @@ function Strings( config ) {
'viewport/info/oneObject': '物体',
'viewport/info/oneVertex': '顶点',
'viewport/info/oneTriangle': '三角形',
'viewport/info/oneSample': '样本',
'viewport/info/objects': '物体',
'viewport/info/vertices': '顶点',
'viewport/info/triangles': '三角形',
'viewport/info/samples': '样本',
'viewport/info/rendertime': '渲染时间'

},
Expand Down Expand Up @@ -1545,9 +1551,11 @@ function Strings( config ) {
'viewport/info/oneObject': 'オブジェクト',
'viewport/info/oneVertex': '頂点',
'viewport/info/oneTriangle': '三角形',
'viewport/info/oneSample': 'サンプル',
'viewport/info/objects': 'オブジェクト',
'viewport/info/vertices': '頂点',
'viewport/info/triangles': '三角形',
'viewport/info/samples': 'サンプル',
'viewport/info/rendertime': 'レンダリング時間'

}
Expand Down
31 changes: 31 additions & 0 deletions editor/js/Viewport.Info.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,18 @@ function ViewportInfo( editor ) {
const verticesText = new UIText( '0' ).setTextAlign( 'right' ).setWidth( '60px' ).setMarginRight( '6px' );
const trianglesText = new UIText( '0' ).setTextAlign( 'right' ).setWidth( '60px' ).setMarginRight( '6px' );
const frametimeText = new UIText( '0' ).setTextAlign( 'right' ).setWidth( '60px' ).setMarginRight( '6px' );
const samplesText = new UIText( '0' ).setTextAlign( 'right' ).setWidth( '60px' ).setMarginRight( '6px' ).setHidden( true );

const objectsUnitText = new UIText( strings.getKey( 'viewport/info/objects' ) );
const verticesUnitText = new UIText( strings.getKey( 'viewport/info/vertices' ) );
const trianglesUnitText = new UIText( strings.getKey( 'viewport/info/triangles' ) );
const samplesUnitText = new UIText( strings.getKey( 'viewport/info/samples' ) ).setHidden( true );

container.add( objectsText, objectsUnitText, new UIBreak() );
container.add( verticesText, verticesUnitText, new UIBreak() );
container.add( trianglesText, trianglesUnitText, new UIBreak() );
container.add( frametimeText, new UIText( strings.getKey( 'viewport/info/rendertime' ) ), new UIBreak() );
container.add( samplesText, samplesUnitText, new UIBreak() );

signals.objectAdded.add( update );
signals.objectRemoved.add( update );
Expand All @@ -35,6 +38,10 @@ function ViewportInfo( editor ) {

//

const pluralRules = new Intl.PluralRules( editor.config.getKey( 'language' ) );

//

function update() {

const scene = editor.scene;
Expand Down Expand Up @@ -98,6 +105,30 @@ function ViewportInfo( editor ) {

}

//

editor.signals.pathTracerUpdated.add( function ( samples ) {

samples = Math.floor( samples );

samplesText.setValue( samples );

const samplesStringKey = ( pluralRules.select( samples ) === 'one' ) ? 'viewport/info/oneSample' : 'viewport/info/samples';
samplesUnitText.setValue( strings.getKey( samplesStringKey ) );

} );

editor.signals.viewportShadingChanged.add( function () {

const isRealisticShading = ( editor.viewportShading === 'realistic' );

samplesText.setHidden( ! isRealisticShading );
samplesUnitText.setHidden( ! isRealisticShading );

container.setBottom( isRealisticShading ? '32px' : '20px' );

} );

return container;

}
Expand Down
11 changes: 10 additions & 1 deletion editor/js/Viewport.Pathtracer.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,23 @@ function ViewportPathtracer( renderer ) {

}

function getSamples() {

if ( pathTracer === null ) return;

return pathTracer.samples;

}

return {
init: init,
setSize: setSize,
setBackground: setBackground,
setEnvironment: setEnvironment,
updateMaterials: updateMaterials,
update: update,
reset: reset
reset: reset,
getSamples: getSamples
};

}
Expand Down
1 change: 1 addition & 0 deletions editor/js/Viewport.js
Original file line number Diff line number Diff line change
Expand Up @@ -798,6 +798,7 @@ function Viewport( editor ) {
if ( editor.viewportShading === 'realistic' ) {

pathtracer.update();
editor.signals.pathTracerUpdated.dispatch( pathtracer.getSamples() );

}

Expand Down
2 changes: 2 additions & 0 deletions editor/js/libs/ui.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,8 @@ class UIElement {

this.dom.hidden = isHidden;

return this;

}

isHidden() {
Expand Down

0 comments on commit bdb29a8

Please sign in to comment.