69c720b86b
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
- Lighting: replace single-frame needsUpdate with a 3-rAF warmup that forces
scene.updateMatrixWorld + sun.shadow.needsUpdate + gl.shadowMap.needsUpdate.
This restores the SceneShadowWarmup behaviour (deleted in 777e51e) inline,
so shadows survive Physics Suspense remounts and webglcontextrestored.
- octreeCollisionConfig: remove (comment out) the thin LA_FABRIK interior box
at x=-6.93 that was sealing the doorway despite the mesh hole; fabrik mesh
octree already provides surrounding wall collision.
- DebugOctreeVisualization: add Fabrik-only filter to inspect interior
collisions/non-collisions in isolation.
36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
import { create } from "zustand";
|
|
|
|
interface DebugVisualsStore {
|
|
showPlayerModel: boolean;
|
|
setShowPlayerModel: (value: boolean) => void;
|
|
showOctree: boolean;
|
|
setShowOctree: (value: boolean) => void;
|
|
octreeMaxDepth: number;
|
|
setOctreeMaxDepth: (value: number) => void;
|
|
octreeMinDepth: number;
|
|
setOctreeMinDepth: (value: number) => void;
|
|
octreeLeavesOnly: boolean;
|
|
setOctreeLeavesOnly: (value: boolean) => void;
|
|
octreeOpacity: number;
|
|
setOctreeOpacity: (value: number) => void;
|
|
octreeFabrikOnly: boolean;
|
|
setOctreeFabrikOnly: (value: boolean) => void;
|
|
}
|
|
|
|
export const useDebugVisualsStore = create<DebugVisualsStore>((set) => ({
|
|
showPlayerModel: false,
|
|
setShowPlayerModel: (showPlayerModel) => set({ showPlayerModel }),
|
|
showOctree: false,
|
|
setShowOctree: (showOctree) => set({ showOctree }),
|
|
octreeMaxDepth: 8,
|
|
setOctreeMaxDepth: (octreeMaxDepth) => set({ octreeMaxDepth }),
|
|
octreeMinDepth: 4,
|
|
setOctreeMinDepth: (octreeMinDepth) => set({ octreeMinDepth }),
|
|
octreeLeavesOnly: true,
|
|
setOctreeLeavesOnly: (octreeLeavesOnly) => set({ octreeLeavesOnly }),
|
|
octreeOpacity: 0.35,
|
|
setOctreeOpacity: (octreeOpacity) => set({ octreeOpacity }),
|
|
octreeFabrikOnly: false,
|
|
setOctreeFabrikOnly: (octreeFabrikOnly) => set({ octreeFabrikOnly }),
|
|
}));
|