From eeda7e700233186082590bff3ca9a8b8aba07f97 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Thu, 23 Apr 2026 18:11:54 +0900 Subject: [PATCH] note --- .../src/world/room/objects/tabletopDigitalClock.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/frontend/src/world/room/objects/tabletopDigitalClock.ts b/packages/frontend/src/world/room/objects/tabletopDigitalClock.ts index a8e3bbfa9f..0cacfb3627 100644 --- a/packages/frontend/src/world/room/objects/tabletopDigitalClock.ts +++ b/packages/frontend/src/world/room/objects/tabletopDigitalClock.ts @@ -107,17 +107,15 @@ export const tabletopDigitalClock = defineObject({ timer.setInterval(() => { const onMeshes = get7segMeshesOfCurrentTime(segmentMeshes); + // 本当ならisVisibleで制御したいが、snapshot renderingではvisibilityはupdateMeshを呼んだとしても反映されないのと、もしsnapshot rendering開始時にisVisible: falseだったらドローコールが記録されずその後表示できないので、メッシュを後ろにずらすことで隠す + // https://forum.babylonjs.com/t/visibility-of-instancedmesh-is-not-reflected-under-fast-snapshot-rendering/63251/3?u=syuilo + // また、scalingを0にすることでも見た目上非表示にすることはできるが、なぜかその状態でsnapshot renderingが開始されるとその後にscaleを戻しても表示されなくなる(バグ?) for (const mesh of Object.values(segmentMeshes)) { const isVisible = onMeshes.includes(mesh); - // 本当ならisVisibleで制御したいが、snapshot renderingではvisibilityはupdateMeshを呼んだとしても反映されないのと、もしsnapshot rendering開始時にisVisible: falseだったらドローコールが記録されずその後表示できないので、メッシュを後ろにずらすことで隠す - //mesh.isVisible = isVisible; mesh.position.y = isVisible ? defaultSegMeshDepth : defaultSegMeshDepth - cm(2); } - for (const mesh of colonMeshes) { const isVisible = Date.now() % 2000 < 1000; - // 本当ならisVisibleで制御したいが、snapshot renderingではvisibilityはupdateMeshを呼んだとしても反映されないのと、もしsnapshot rendering開始時にisVisible: falseだったらドローコールが記録されずその後表示できないので、メッシュを後ろにずらすことで隠す - //mesh.isVisible = isVisible; mesh.position.y = isVisible ? defaultSegMeshDepth : defaultSegMeshDepth - cm(2); }