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.