From b0d4ab371bd55dd6f469bc0151d941edfa38e30d Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Wed, 15 Apr 2026 19:08:08 +0900 Subject: [PATCH] wip --- packages/frontend/src/utility/room/controller.ts | 2 +- packages/frontend/src/utility/room/engine.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/frontend/src/utility/room/controller.ts b/packages/frontend/src/utility/room/controller.ts index 9e7a74b6ce..c052d9abbd 100644 --- a/packages/frontend/src/utility/room/controller.ts +++ b/packages/frontend/src/utility/room/controller.ts @@ -44,7 +44,7 @@ export class RoomController { this.worker.postMessage({ type: 'init', canvas: offscreen, roomState: this.roomState.value }, [offscreen]); this.isReady.value = true; } else { - const babylonEngine = new BABYLON.WebGPUEngine(canvas); + const babylonEngine = new BABYLON.WebGPUEngine(canvas, { doNotHandleContextLost: true }); babylonEngine.compatibilityMode = false; await babylonEngine.initAsync(); this.engine = new RoomEngine(this.roomState.value, { canvas, engine: babylonEngine }); diff --git a/packages/frontend/src/utility/room/engine.ts b/packages/frontend/src/utility/room/engine.ts index a8f215dc2f..e2f82d5c3b 100644 --- a/packages/frontend/src/utility/room/engine.ts +++ b/packages/frontend/src/utility/room/engine.ts @@ -311,6 +311,7 @@ class ModelManager { } merged.freezeWorldMatrix(); merged.metadata = { ...this.root.metadata }; + if (!this.hasTexture) merged.convertToUnIndexedMesh(); this.bakedMeshes = [merged]; this.bakedCallback?.([...this.bakedMeshes, ...excludeMeshes]); @@ -757,6 +758,8 @@ export class RoomEngine extends EventEmitter { this.emit('loadingProgress', { progress: loadedCount / objects.length }); }))); + this.scene.blockMaterialDirtyMechanism = true; + if (SNAPSHOT_RENDERING) { this.sr.enableSnapshotRendering(); }