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. |
Anchor | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
Geo::u32 Enlighten::PppiWorld::GetProbeSetCount
...
public: Geo::u32 GetProbeSetCount() const
...
Return the number of probe sets added to the world.
Anchor | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
Enlighten::PppiWorld::PppiWorld
...
public: PppiWorld
(
PppiConfiguration configuration
)
...
Construct with an optional configuration.
Anchor | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
void Enlighten::PppiWorld::SetProbeSetStateHandler
...
public: void SetProbeSetStateHandler
(
IPppiProbeSetStateHandler * stateHandler
)
...
Use the provided probe set state callback.
Anchor | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
void Enlighten::PppiWorld::UpdateBorder
...
public: void UpdateBorder
(
const PppiIrradiance & border
)
...
Update the lighting for areas not covered by any probe set.