feat(world): add map lod graphics presets

This commit is contained in:
Tom Boullay
2026-05-31 19:03:55 +02:00
parent 564a455520
commit 34c198ebfd
13 changed files with 717 additions and 131 deletions
+51
View File
@@ -1,4 +1,55 @@
import { CHUNK_CONFIG } from "@/data/world/chunkStreamingConfig";
export const GRAPHICS_PRESET_KEYS = ["low", "medium", "high", "ultra"] as const;
export type GraphicsPreset = (typeof GRAPHICS_PRESET_KEYS)[number];
export interface GraphicsPresetConfig {
chunkLoadRadius: number;
chunkUnloadRadius: number;
fogEnabled: boolean;
forceLodModels: boolean;
label: string;
lodHighDetailDistance: number;
}
export const GRAPHICS_PRESETS = {
low: {
label: "Basse",
chunkLoadRadius: 10,
chunkUnloadRadius: 18,
fogEnabled: true,
forceLodModels: true,
lodHighDetailDistance: 0,
},
medium: {
label: "Moyenne",
chunkLoadRadius: 20,
chunkUnloadRadius: 30,
fogEnabled: true,
forceLodModels: true,
lodHighDetailDistance: 0,
},
high: {
label: "High",
chunkLoadRadius: CHUNK_CONFIG.loadRadius,
chunkUnloadRadius: CHUNK_CONFIG.unloadRadius,
fogEnabled: false,
forceLodModels: false,
lodHighDetailDistance: 10,
},
ultra: {
label: "Ultra",
chunkLoadRadius: 50,
chunkUnloadRadius: 65,
fogEnabled: false,
forceLodModels: false,
lodHighDetailDistance: 20,
},
} as const satisfies Record<GraphicsPreset, GraphicsPresetConfig>;
export const GRAPHICS_DEFAULTS = {
preset: "high" as GraphicsPreset,
dynamicGrass: true,
dynamicTrees: true,
dynamicClouds: true,