Skip to content

EntropyCanvas::ProbeVolumeComponent

Probe volume component for spherical gaussian global illumination. More…

#include <GlobalIllumination.h>

Name
glm::vec3worldToProbeUVW(const Transform & transform, const glm::vec3 & worldPos) const
Get probe grid coordinates from world position.
WorldBoundsworldBounds(const Transform & transform) const
Get the world-space AABB (requires Transform).
glm::vec3probePosition(const Transform & transform, uint32_t probeIndex) const
Get probe world position by index.
uint32_tprobeCount() const
Get total probe count.
ENTROPY_REGISTER_TYPE(ProbeVolumeComponent )
ENTROPY_FIELD_EXTENSION(uint32_t , captureResolution )
ENTROPY_FIELD_EXTENSION(bool , realtime )
ENTROPY_FIELD_EXTENSION(uint32_t , fittingSamples )
ENTROPY_FIELD(glm::vec3 , extents )
ENTROPY_FIELD(glm::ivec3 , resolution )
ENTROPY_FIELD(ProbeUpdatePriority , updatePriority )
ENTROPY_FIELD(SGLobeConfig , lobeConfig )
Name
uint32_tprobeAtlasIndex
boolneedsCapture
struct EntropyCanvas::ProbeVolumeComponent;

Probe volume component for spherical gaussian global illumination.

Defines a region where light probes are placed in a 3D grid. Each probe captures environment radiance and fits to SG lobes.

Usage:

  1. Place entity with Transform at volume center
  2. Set extents to define bounding box size
  3. Set resolution for probe density
  4. ProbeVolumeService handles capture, fitting, and GPU upload
inline glm::vec3 worldToProbeUVW(
const Transform & transform,
const glm::vec3 & worldPos
) const

Get probe grid coordinates from world position.

Returns fractional coordinates for interpolation.

inline WorldBounds worldBounds(
const Transform & transform
) const

Get the world-space AABB (requires Transform).

inline glm::vec3 probePosition(
const Transform & transform,
uint32_t probeIndex
) const

Get probe world position by index.

inline uint32_t probeCount() const

Get total probe count.

ENTROPY_REGISTER_TYPE(
ProbeVolumeComponent
)
ENTROPY_FIELD_EXTENSION(
uint32_t ,
captureResolution
)
ENTROPY_FIELD_EXTENSION(
bool ,
realtime
)
ENTROPY_FIELD_EXTENSION(
uint32_t ,
fittingSamples
)
ENTROPY_FIELD(
glm::vec3 ,
extents
)
ENTROPY_FIELD(
glm::ivec3 ,
resolution
)
ENTROPY_FIELD(
ProbeUpdatePriority ,
updatePriority
)
ENTROPY_FIELD(
SGLobeConfig ,
lobeConfig
)
uint32_t probeAtlasIndex {UINT32_MAX};
bool needsCapture {true};

Updated on 2026-01-26 at 17:14:35 -0500