diff --git a/packages/frontend/src/world/room/engine.ts b/packages/frontend/src/world/room/engine.ts index 2a28bb0a4e..d8911e5236 100644 --- a/packages/frontend/src/world/room/engine.ts +++ b/packages/frontend/src/world/room/engine.ts @@ -1152,6 +1152,15 @@ export class RoomEngine extends EventEmitter { if (def.hasCollisions) { enableObjectCollision(meshes); } + + /* なんかバグる + for (const mesh of meshes) { + if (mesh.checkCollisions || SYSTEM_MESH_NAMES.some(n => mesh.name.includes(n))) continue; + + // コリジョンや(ray) pickingに使わないメッシュの頂点情報はCPU側に保持しておく必要がない(通常のpickingはGPUPickerを使えるのでCPUは関与しない) + mesh.geometry.clearCachedData(); + } + */ }); const objectInstance = await def.createInstance({ diff --git a/packages/frontend/src/world/room/utility.ts b/packages/frontend/src/world/room/utility.ts index ce4d3be3fc..4d806bbd39 100644 --- a/packages/frontend/src/world/room/utility.ts +++ b/packages/frontend/src/world/room/utility.ts @@ -192,7 +192,7 @@ export class ModelManager { private bakedMeshes: BABYLON.Mesh[] = []; private hasTexture: boolean; - constructor(root: BABYLON.Mesh, originalMeshes: BABYLON.Mesh[], hasTexture: boolean, bakedCallback: (() => void) | null = null) { + constructor(root: BABYLON.Mesh, originalMeshes: BABYLON.Mesh[], hasTexture: boolean, bakedCallback: ((meshes: BABYLON.Mesh[]) => void) | null = null) { this.root = root; this.originalMeshes = originalMeshes; this.hasTexture = hasTexture;