Преглед изворни кода

Use isDisabled in path tracing plugin.

master
Palash Bansal пре 11 месеци
родитељ
комит
b8c540669a
No account linked to committer's email address

+ 2
- 2
plugins/path-tracing/package-lock.json Прегледај датотеку

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

+ 1
- 1
plugins/path-tracing/package.json Прегледај датотеку

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

+ 17
- 16
plugins/path-tracing/src/ThreeGpuPathTracerPlugin.ts Прегледај датотеку

@onChange(ThreeGpuPathTracerPlugin.prototype._enableChange) @onChange(ThreeGpuPathTracerPlugin.prototype._enableChange)
enabled = true enabled = true




// public ptMaterial: any // public ptMaterial: any
// public ptGenerator: any // public ptGenerator: any
// public sceneInfo: any // public sceneInfo: any
@uiSlider('samplesPerFrame', [1, 5], 1) @uiSlider('samplesPerFrame', [1, 5], 1)
samplesPerFrame = 1 samplesPerFrame = 1


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


} }


private async _enableChange() { 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) // todo: onremove and ondispose (dispose sceneInfo in that and remove event listeners)
this.refreshScene() this.refreshScene()
}) })
viewer.scene.addEventListener('materialUpdate', () => { 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.tracer.updateMaterials() // todo do post frame?
this.reset() this.reset()
}) })
viewer.scene.addEventListener('environmentChanged', () => { 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.tracer.updateEnvironment() // todo do post frame?
this.reset() this.reset()
}) })
viewer.renderManager.addEventListener('resize', () => { 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) // this.ptRenderer.setSize(viewer.renderer.renderSize.width, viewer.renderer.renderSize.height)
// if (this._refreshing) return // if (this._refreshing) return
// console.log('resize') // console.log('resize')
this.reset() this.reset()
}) })
viewer.scene.mainCamera.addEventListener('update', () => { 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.tracer.updateCamera()// todo do post frame?
this.reset() this.reset()
}) })
viewer.addEventListener('preFrame', () => { 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)) { // if (viewer.getPlugin(ProgressivePlugin)?.isConverged(true)) {


// todo on no rasterize don't render rasterize pipeline // todo on no rasterize don't render rasterize pipeline
// private _modelRoot = ()=>this._viewer?.scene.modelRoot.modelObject // private _modelRoot = ()=>this._viewer?.scene.modelRoot.modelObject
private async _refreshScene() { private async _refreshScene() {
if (!this._viewer) return if (!this._viewer) return
if (!this.enabled || !this.tracer) return
if (this.isDisabled() || !this.tracer) return
if (!this._sceneNeedsRefresh) return if (!this._sceneNeedsRefresh) return


if (this._refreshing) { if (this._refreshing) {
// private _diamondMaterialKey = (mat: any)=>mat.color.getHexString() + mat.refractiveIndex // private _diamondMaterialKey = (mat: any)=>mat.color.getHexString() + mat.refractiveIndex


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


dispose() { dispose() {

Loading…
Откажи
Сачувај