Class: ChunkRegionArenas
Region buffer arenas for the shared-opaque chunk bucket, adapted from
Sodium's region-arena renderer. Every opaque section inside an NxN block of
chunk columns lives as one slot of one BatchedMesh, so an entire region
renders as a single multi-draw call per pass instead of one draw per
(section x bucket) mesh, and a remesh rewrites a slot in place
(setGeometryAt) instead of disposing and recreating GPU buffers.
BatchedMesh culls and sorts per instance against whichever camera renders
it, so sections keep per-section frustum culling in the main pass while the
CSM depth passes — which render with the light's camera — still see every
caster they need. That per-pass behavior is what the whole-object
chunkCullShadowSafeDistance bypass exists to approximate for regular
meshes; arena sections need no such bypass.
Constructors
constructor
• new ChunkRegionArenas(options, maxSectionsPerRegion, getMaterial, parent, positionUnitsPerBlock): ChunkRegionArenas
Parameters
| Name | Type |
|---|---|
options | ChunkRegionArenasOptions |
maxSectionsPerRegion | number |
getMaterial | () => CustomChunkShaderMaterial |
parent | Object3D<Object3DEventMap> |
positionUnitsPerBlock | number |
Returns
Accessors
stats
• get stats(): Object
Returns
Object
| Name | Type |
|---|---|
regions | number |
sections | number |
Methods
clearChunk
▸ clearChunk(cx, cz): void
Parameters
| Name | Type |
|---|---|
cx | number |
cz | number |
Returns
void
clearSection
▸ clearSection(cx, cz, level): void
Parameters
| Name | Type |
|---|---|
cx | number |
cz | number |
level | number |
Returns
void
dispose
▸ dispose(): void
Returns
void
setSectionGeometry
▸ setSectionGeometry(cx, cz, level, geometry, x, y, z): void
Parameters
| Name | Type |
|---|---|
cx | number |
cz | number |
level | number |
geometry | BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap> |
x | number |
y | number |
z | number |
Returns
void
setSectionVisible
▸ setSectionVisible(cx, cz, level, isVisible): void
Parameters
| Name | Type |
|---|---|
cx | number |
cz | number |
level | number |
isVisible | boolean |
Returns
void