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 *, const float *, void *)

Add a probe set to the world.

GetAtlasBlockCount()

Returns the number of blocks currently allocated within the atlas.

GetAtlasTileCount()

Returns the number of blocks 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, PppiProbeSetLod)

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

RemoveProbeSet(PppiProbeSetHandle)

Remove a probe set from the world.

SetOutputWorkspace(const PppiOutputWorkspace &, IPppiTextureUpdateHandler *)

Use the provided output textures.

SetProbeSetStateHandler(IPppiProbeSetStateHandler *)

Use the provided probe set state callback.

Update(UpdatePppiStats &, const Geo::v128 &, const IViewVolumeIntersector *, float)

Update indirection texture based on the view origin.

UpdateBorder(const PppiIrradiance &)

Update the lighting for areas not covered by any probe set.


PppiProbeSetHandle Enlighten::PppiWorld::AddProbeSet


public: PppiProbeSetHandle AddProbeSet
(
    const RadProbeSetCore * probeSet,
    const float * probeOutput,
    void * userData
)


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.


Geo::s32 Enlighten::PppiWorld::GetAtlasBlockCount


public: Geo::s32 GetAtlasBlockCount() const


Returns the number of blocks currently allocated within the atlas.

Use this to determine the appropriate size of the atlas.


Geo::s32 Enlighten::PppiWorld::GetAtlasTileCount


public: Geo::s32 GetAtlasTileCount() const


Returns the number of blocks 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,
    PppiProbeSetLod lod
)


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.

[in] lod

The level of detail at which the probe set 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::SetOutputWorkspace


public: void SetOutputWorkspace
(
    const PppiOutputWorkspace & outputWorkspace,
    IPppiTextureUpdateHandler * updateHandler
)


Use the provided output textures.

Call before adding the first probe set.

Parameters
[in] outputWorkspace

The output textures.

[in] updateHandler

If non-null, will be called after partial updates of the output textures. Owned by the caller. May be called at any time before PppiWorld is destroyed.


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,
    const IViewVolumeIntersector * viewVolume,
    float lodDistance
)


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] viewVolume

The view volume within which probe sets are updated.

[in] lodDistance

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


void Enlighten::PppiWorld::UpdateBorder


public: void UpdateBorder
(
    const PppiIrradiance & border
)


Update the lighting for areas not covered by any probe set.