XII Release 0.1.0
Loading...
Searching...
No Matches
xiiSparseVoxelRadianceContext Class Reference

CPU-only sparse clipmap residency and update scheduling for one consumer. No GPU or graph ownership. More...

#include <SparseVoxelRadiance.h>

Public Member Functions

xiiResult Initialize (const xiiSparseVoxelRadianceSettings &settings={})
 Initialize CPU scheduling. Invalid settings preserve the current configuration.
void Shutdown ()
bool IsInitialized () const
void InvalidateHistory ()
 Discard accumulated lighting without reallocating storage or disturbing another view.
xiiResult BeginFrame (const xiiVec3 &vCameraPosition, xiiUInt64 uiFrameIndex)
void CommitBrickUpdate (xiiUInt32 uiPhysicalBrick, xiiUInt64 uiPackedKey, bool bValid)
xiiArrayPtr< const xiiSparseVoxelBrickState > GetBricks () const
xiiArrayPtr< const xiiSparseVoxelBrickUpdate > GetScheduledUpdates () const
xiiSparseVoxelRadianceFrameStats GetFrameStats () const
const xiiSparseVoxelRadianceSettings & GetConfiguration () const
const xiiSparseVoxelBrickState * FindBrick (xiiUInt64 uiPackedKey) const
xiiArrayPtr< const xiiVec3I32 > GetClipmapMinimumCells () const

Static Public Member Functions

static xiiUInt64 PackBrickKey (xiiUInt32 uiClipmapLevel, const xiiVec3I32 &vCell)
 Collision-free key used by CPU residency, GPU page tables, captures, and tools.
static void UnpackBrickKey (xiiUInt64 uiPackedKey, xiiUInt32 &out_uiClipmapLevel, xiiVec3I32 &out_vCell)

Detailed Description

CPU-only sparse clipmap residency and update scheduling for one consumer. No GPU or graph ownership.

Member Function Documentation

◆ BeginFrame()

xiiResult xiiSparseVoxelRadianceContext::BeginFrame ( const xiiVec3 & vCameraPosition,
xiiUInt64 uiFrameIndex )

Frames must be nonzero and strictly increasing; the entire clipmap must fit its cell coordinates. Non-finite or out-of-range positions and invalid frames fail without changing state.


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Engine/GraphicsCore/Lighting/SparseVoxelRadiance.h
  • /home/runner/work/XII/XII/Source/Engine/GraphicsCore/Lighting/Implementation/SparseVoxelRadiance.cpp