Просмотр исходного кода

Use isDisabled in path tracing plugin.

master
Palash Bansal 11 месяцев назад
Родитель
Сommit
b8c540669a
Аккаунт пользователя с таким Email не найден

+ 2
- 2
plugins/path-tracing/package-lock.json Просмотреть файл

@@ -1,12 +1,12 @@
{
"name": "@threepipe/plugin-path-tracing",
"version": "0.1.0",
"version": "0.1.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@threepipe/plugin-path-tracing",
"version": "0.1.0",
"version": "0.1.1",
"license": "Apache-2.0",
"dependencies": {
"three": "file:./../../node_modules/three",

+ 1
- 1
plugins/path-tracing/package.json Просмотреть файл

@@ -1,7 +1,7 @@
{
"name": "@threepipe/plugin-path-tracing",
"description": "Path tracing plugin interfaces for Threepipe",
"version": "0.1.0",
"version": "0.1.1",
"devDependencies": {
"three-gpu-pathtracer": "^0.0.23"
},

+ 17
- 16
plugins/path-tracing/src/ThreeGpuPathTracerPlugin.ts Просмотреть файл

@@ -46,8 +46,6 @@ export class ThreeGpuPathTracerPlugin extends AViewerPluginSync {
@onChange(ThreeGpuPathTracerPlugin.prototype._enableChange)
enabled = true



// public ptMaterial: any
// public ptGenerator: any
// public sceneInfo: any
@@ -91,7 +89,7 @@ export class ThreeGpuPathTracerPlugin extends AViewerPluginSync {
@uiSlider('samplesPerFrame', [1, 5], 1)
samplesPerFrame = 1

@uiConfig()
@uiConfig(undefined, {expanded: true})
@serialize()
tracer: WebGLPathTracer | undefined

@@ -114,13 +112,16 @@ export class ThreeGpuPathTracerPlugin extends AViewerPluginSync {
}

private async _enableChange() {
if (this.enabled) this.refreshScene()
if (!this.isDisabled()) this.refreshScene()

if (this._viewer) {
this._viewer.renderManager.defaultRenderToScreen = !this.enabled
}
this.setDirty()
}

setDirty() {
if (!this._viewer) return

this._viewer?.setDirty()
this._viewer.renderManager.defaultRenderToScreen = this.isDisabled()
this._viewer.setDirty()
}

// todo: onremove and ondispose (dispose sceneInfo in that and remove event listeners)
@@ -154,17 +155,17 @@ export class ThreeGpuPathTracerPlugin extends AViewerPluginSync {
this.refreshScene()
})
viewer.scene.addEventListener('materialUpdate', () => {
if (!this.enabled || !this.tracer || this._refreshing) return
if (this.isDisabled() || !this.tracer || this._refreshing) return
this.tracer.updateMaterials() // todo do post frame?
this.reset()
})
viewer.scene.addEventListener('environmentChanged', () => {
if (!this.enabled || !this.tracer || this._refreshing) return
if (this.isDisabled() || !this.tracer || this._refreshing) return
this.tracer.updateEnvironment() // todo do post frame?
this.reset()
})
viewer.renderManager.addEventListener('resize', () => {
if (!this.enabled || !this.tracer || this._refreshing) return
if (this.isDisabled() || !this.tracer || this._refreshing) return
// this.ptRenderer.setSize(viewer.renderer.renderSize.width, viewer.renderer.renderSize.height)
// if (this._refreshing) return
// console.log('resize')
@@ -172,12 +173,12 @@ export class ThreeGpuPathTracerPlugin extends AViewerPluginSync {
this.reset()
})
viewer.scene.mainCamera.addEventListener('update', () => {
if (!this.enabled || !this.tracer || this._refreshing) return
if (this.isDisabled() || !this.tracer || this._refreshing) return
this.tracer.updateCamera()// todo do post frame?
this.reset()
})
viewer.addEventListener('preFrame', () => {
if (!this.enabled || this._refreshing || !this._viewer || !this.tracer) return
if (this.isDisabled() || this._refreshing || !this._viewer || !this.tracer) return
// if (viewer.getPlugin(ProgressivePlugin)?.isConverged(true)) {

// todo on no rasterize don't render rasterize pipeline
@@ -283,7 +284,7 @@ export class ThreeGpuPathTracerPlugin extends AViewerPluginSync {
// private _modelRoot = ()=>this._viewer?.scene.modelRoot.modelObject
private async _refreshScene() {
if (!this._viewer) return
if (!this.enabled || !this.tracer) return
if (this.isDisabled() || !this.tracer) return
if (!this._sceneNeedsRefresh) return

if (this._refreshing) {
@@ -401,9 +402,9 @@ export class ThreeGpuPathTracerPlugin extends AViewerPluginSync {
// private _diamondMaterialKey = (mat: any)=>mat.color.getHexString() + mat.refractiveIndex

reset() {
if (!this.enabled || !this.tracer) return
if (this.isDisabled() || !this.tracer) return
this.tracer.reset()
this._viewer?.setDirty()
this.setDirty()
}

dispose() {

Загрузка…
Отмена
Сохранить