Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

class Enlighten::PppiWorld

Updates output textures for all probe sets in the world.

Functions

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


Anchor
a7b457aaa8040a7e47e5e0de52868ab58
a7b457aaa8040a7e47e5e0de52868ab58

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.


Anchor
adf4773ac3a368d8cfa59b6cfda7c7b60
adf4773ac3a368d8cfa59b6cfda7c7b60

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.


Anchor
a6ebfa07b6d29bf7e80183f95bdccbe85
a6ebfa07b6d29bf7e80183f95bdccbe85

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.


Anchor
abc2d379bc71d62c7ca68f62214a573e9
abc2d379bc71d62c7ca68f62214a573e9

Geo::u32 Enlighten::PppiWorld::GetProbeSetCount

...

public: Geo::u32 GetProbeSetCount() const

...

Return the number of probe sets added to the world.


Anchor
a16f617f5d8475d8a1a12ccd4c124fdbd
a16f617f5d8475d8a1a12ccd4c124fdbd

static PppiOutputTextureRequirements Enlighten::PppiWorld::GetRequiredOutputTextures

...

public: PppiOutputTextureRequirements GetRequiredOutputTextures
(
    PppiConfiguration configuration
)

...

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


Anchor
afee8163aa0be66a4590d10754997b33b
afee8163aa0be66a4590d10754997b33b

Enlighten::PppiWorld::PppiWorld

...

public: PppiWorld
(
    PppiConfiguration configuration
)

...

Construct with an optional configuration.


Anchor
a392b489d96acd0a1ed9382aa6d007069
a392b489d96acd0a1ed9382aa6d007069

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.


Anchor
a588ad6035879c2a8aae8eeff40b1db5f
a588ad6035879c2a8aae8eeff40b1db5f

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


Anchor
a7e29b6c45399d7343a3d0c3cef2041cf
a7e29b6c45399d7343a3d0c3cef2041cf

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.


Anchor
a3d39c385c9aa4c9646745ce6bc0fe8e1
a3d39c385c9aa4c9646745ce6bc0fe8e1

void Enlighten::PppiWorld::SetProbeSetStateHandler

...

public: void SetProbeSetStateHandler
(
    IPppiProbeSetStateHandler * stateHandler
)

...

Use the provided probe set state callback.


Anchor
a6417900da298cadc918a41340d8c1182
a6417900da298cadc918a41340d8c1182

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.


Anchor
a3cfb56710f0bd257a6061c7367d9ca31
a3cfb56710f0bd257a6061c7367d9ca31

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.


Anchor
a1be75e9b53409d953b7d7a8bc7f66e38
a1be75e9b53409d953b7d7a8bc7f66e38

void Enlighten::PppiWorld::UpdateBorder

...

public: void UpdateBorder
(
    const PppiIrradiance & border
)

...

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