This is the documentation for Enlighten.

class Enlighten PppiWorld

class Enlighten::PppiWorld

Updates output textures for all probe sets in the world.

Functions

Name Description
AddProbeSet(const RadProbeSetCore *, Geo::u64 *, void *, Geo::u8)

Add a probe set to the world.

GetAtlasTileCount()

Returns the number of tiles currently allocated within the atlas.

GetProbeSetCount()

Return the number of probe sets added to the world.

GetRequiredOutputTextures(PppiConfiguration)

Returns the required textures. Always provide the same configuration to the constructor of PppiWorld.

PppiWorld(PppiConfiguration)

Construct with an optional configuration.

ProbeSetOutputChanged(PppiProbeSetHandle)

Notify that the probe output changed for the given probe set.

RemoveProbeSet(PppiProbeSetHandle)

Remove a probe set from the world.

SetProbeSetStateHandler(IPppiProbeSetStateHandler *)

Use the provided probe set state callback.

Update(UpdatePppiStats &, const Geo::v128 &, float, IPppiComputeUpdateHandler &, const PppiIrradiance16 *, Geo::u8)

Update indirection texture based on the view origin.

Update(UpdatePppiStats &, const Geo::v128 &, float, const PppiIrradiance16 *, IPppiComputeUpdateHandler *, Geo::u8)

Update indirection texture based on the view origin.


PppiProbeSetHandle Enlighten::PppiWorld::AddProbeSet


public: PppiProbeSetHandle AddProbeSet
(
    const RadProbeSetCore * probeSet,
    Geo::u64 * probeOutput,
    void * userData,
    Geo::u8 partition
)


Add a probe set to the world.

Parameters
[in] probeSet

The probe set to add

[in] probeOutput

The output buffer where this probe set's values will be written

[in] userData

User defined value passed to IPppiProbeSetStateHandler::ProbeSetStateChanged.

[in] partition

The index of the partition containing this probe set.


Geo::s32 Enlighten::PppiWorld::GetAtlasTileCount


public: Geo::s32 GetAtlasTileCount() const


Returns the number of tiles currently allocated within the atlas.

Use this to determine the appropriate size of the atlas.


Geo::u32 Enlighten::PppiWorld::GetProbeSetCount


public: Geo::u32 GetProbeSetCount() const


Return the number of probe sets added to the world.


static PppiOutputTextureRequirements Enlighten::PppiWorld::GetRequiredOutputTextures


public: PppiOutputTextureRequirements GetRequiredOutputTextures
(
    PppiConfiguration configuration
)


Returns the required textures. Always provide the same configuration to the constructor of PppiWorld.


Enlighten::PppiWorld::PppiWorld


public: PppiWorld
(
    PppiConfiguration configuration
)


Construct with an optional configuration.


void Enlighten::PppiWorld::ProbeSetOutputChanged


public: void ProbeSetOutputChanged
(
    PppiProbeSetHandle handle
)


Notify that the probe output changed for the given probe set.

Call before Update()

Parameters
[in] handle

The handle of the probe set that was solved.


void Enlighten::PppiWorld::RemoveProbeSet


public: void RemoveProbeSet
(
    PppiProbeSetHandle handle
)


Remove a probe set from the world.

Parameters
[in] handle

The handle of the probe set to remove


void Enlighten::PppiWorld::SetProbeSetStateHandler


public: void SetProbeSetStateHandler
(
    IPppiProbeSetStateHandler * stateHandler
)


Use the provided probe set state callback.


PppiShaderParameters Enlighten::PppiWorld::Update


public: PppiShaderParameters Update
(
    UpdatePppiStats & outStats,
    const Geo::v128 & viewOrigin,
    float lodDistance,
    IPppiComputeUpdateHandler & computeUpdateHandler,
    const PppiIrradiance16 * border,
    Geo::u8 partition
)


Update indirection texture based on the view origin.

Update atlas texture with output for all probe sets that changed since the last update.

Parameters
[out] outStats

Profile numbers for the update.

[in] viewOrigin

The position in world units at which the greatest level of detail is required. This is usually the camera position.

[in] lodDistance

The distance in voxel units from the view origin at which to begin reduction of the level of detail, zero for maximum.

[in] computeUpdateHandler

Called during Update.

[in] border

If non-null, is the lighting for areas not covered by any probe set.

[in] partition

The index of the partition for which lighting is required.


PppiShaderParameters Enlighten::PppiWorld::Update


public: PppiShaderParameters Update
(
    UpdatePppiStats & outStats,
    const Geo::v128 & viewOrigin,
    float lodDistance,
    const PppiIrradiance16 * border,
    IPppiComputeUpdateHandler * computeUpdateHandler,
    Geo::u8 partition
)


Update indirection texture based on the view origin.

Update atlas texture with output for all probe sets that changed since the last update.

Parameters
[out] outStats

Profile numbers for the update.

[in] viewOrigin

The position in world units at which the greatest level of detail is required. This is usually the camera position.

[in] lodDistance

The distance in voxel units from the view origin at which to begin reduction of the level of detail, zero for maximum.

[in] border

If non-null, is the lighting for areas not covered by any probe set.

[in] computeUpdateHandler

If non-null, will be called during Update.

[in] partition

The index of the partition for which lighting is required.