da7d66e1fd
Default visualization was unreadable because every node from depth 0 to maxDepth was rendered with rainbow-coloured edges. Add three filters exposed in the Debug folder: - Octree Leaves Only (default true): skip internal nodes - Octree Min Depth (default 4): hide the largest enclosing boxes - Octree Opacity (default 0.35): tone down line density Also skip nodes without triangles, drop the per-depth HSL palette in favour of a uniform cyan, and bump default Octree Max Depth to 8.
32 lines
1.1 KiB
TypeScript
32 lines
1.1 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;
|
|
}
|
|
|
|
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 }),
|
|
}));
|