diff --git a/src/components/ui/GameSettingsMenu.tsx b/src/components/ui/GameSettingsMenu.tsx
index abd52ce..f30c6f0 100644
--- a/src/components/ui/GameSettingsMenu.tsx
+++ b/src/components/ui/GameSettingsMenu.tsx
@@ -105,6 +105,9 @@ function GraphicsPresetButton({
const lodLabel = config.forceLodModels
? "LOD forcé"
: `HD ${config.lodHighDetailDistance}m`;
+ const chunkLabel = config.chunkStreamingEnabled
+ ? formatChunkDistance(config.chunkLoadRadius)
+ : "All";
return (
);
diff --git a/src/data/world/graphicsConfig.ts b/src/data/world/graphicsConfig.ts
index be5b1e9..441a2ef 100644
--- a/src/data/world/graphicsConfig.ts
+++ b/src/data/world/graphicsConfig.ts
@@ -1,9 +1,16 @@
-export const GRAPHICS_PRESET_KEYS = ["low", "medium", "high", "ultra"] as const;
+export const GRAPHICS_PRESET_KEYS = [
+ "low",
+ "medium",
+ "high",
+ "ultra",
+ "max",
+] as const;
export type GraphicsPreset = (typeof GRAPHICS_PRESET_KEYS)[number];
export interface GraphicsPresetConfig {
chunkLoadRadius: number;
+ chunkStreamingEnabled: boolean;
chunkUnloadRadius: number;
fogEnabled: boolean;
forceLodModels: boolean;
@@ -16,6 +23,7 @@ export const GRAPHICS_PRESETS = {
label: "Basse",
chunkLoadRadius: 10,
chunkUnloadRadius: 18,
+ chunkStreamingEnabled: true,
fogEnabled: true,
forceLodModels: true,
lodHighDetailDistance: 0,
@@ -24,6 +32,7 @@ export const GRAPHICS_PRESETS = {
label: "Moyenne",
chunkLoadRadius: 20,
chunkUnloadRadius: 30,
+ chunkStreamingEnabled: true,
fogEnabled: true,
forceLodModels: true,
lodHighDetailDistance: 0,
@@ -32,6 +41,7 @@ export const GRAPHICS_PRESETS = {
label: "High",
chunkLoadRadius: 35,
chunkUnloadRadius: 45,
+ chunkStreamingEnabled: true,
fogEnabled: false,
forceLodModels: false,
lodHighDetailDistance: 10,
@@ -40,10 +50,20 @@ export const GRAPHICS_PRESETS = {
label: "Ultra",
chunkLoadRadius: 50,
chunkUnloadRadius: 65,
+ chunkStreamingEnabled: true,
fogEnabled: false,
forceLodModels: false,
lodHighDetailDistance: 20,
},
+ max: {
+ label: "Max",
+ chunkLoadRadius: 50,
+ chunkUnloadRadius: 65,
+ chunkStreamingEnabled: false,
+ fogEnabled: false,
+ forceLodModels: false,
+ lodHighDetailDistance: 50,
+ },
} as const satisfies Record;
export const GRAPHICS_DEFAULTS = {
diff --git a/src/world/map-instancing/MapInstancingSystem.tsx b/src/world/map-instancing/MapInstancingSystem.tsx
index c5be5e9..1cb4c10 100644
--- a/src/world/map-instancing/MapInstancingSystem.tsx
+++ b/src/world/map-instancing/MapInstancingSystem.tsx
@@ -149,6 +149,7 @@ export function MapInstancingSystem({
const streamingEnabled =
streaming &&
CHUNK_CONFIG.enabled &&
+ graphicsPresetConfig.chunkStreamingEnabled &&
sceneMode === "game" &&
cameraMode === "player";
diff --git a/src/world/vegetation/VegetationSystem.tsx b/src/world/vegetation/VegetationSystem.tsx
index ef07b55..c74a931 100644
--- a/src/world/vegetation/VegetationSystem.tsx
+++ b/src/world/vegetation/VegetationSystem.tsx
@@ -83,6 +83,7 @@ export function VegetationSystem({
const streamingEnabled =
streaming &&
CHUNK_CONFIG.enabled &&
+ graphicsPreset.chunkStreamingEnabled &&
sceneMode === "game" &&
cameraMode === "player";