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 *)

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)

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.

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

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,
    Geo::u64 * 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
)


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::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.


PppiShaderParameters Enlighten::PppiWorld::Update


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


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.


void Enlighten::PppiWorld::UpdateBorder


public: void UpdateBorder
(
    const PppiIrradiance & border
)


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