Skip to main content

Module chunk_window

Module chunk_window 

Source
Expand description

Sliding-window streaming policy for an infinite voxel world.

gfx::streaming::StreamPlanner streams a fixed pool of items known at init (textures, build-time meshes). An infinite chunk world is different: the item set is unbounded and only a bounded window around the camera is ever resident. This module is that policy – given the camera’s chunk and a view radius it decides which chunks to load (nearest first, budget-limited) and which to evict (those that have fallen well outside the window).

Two concentric bands: chunks within near_radius stream at full voxel detail; chunks beyond it but within far_radius stream as cheap coarse “impostors” (a low-poly surface mesh). As the camera moves a chunk crosses the near/far boundary and is re-detailed – evicted and reloaded at the new detail. A small detail hysteresis keeps a chunk pacing across the boundary from thrashing. When far_radius == near_radius (the default) the far band is empty, so the window behaves exactly as the original single-detail one.

The std-side driver (background generation thread, GPU upload) lives in concinnity-engine’s app::chunk_stream.

Structs§

ChunkPlan
The load / evict decisions produced by one ChunkWindow::plan call.
ChunkWindow
Decides which chunks stream in and out of the camera-centred view window, and at which detail.

Enums§

ChunkDetail
Which representation a chunk is streamed at.