Probe Set Manager interface class.
Name | Description |
---|---|
GetInterpolationInputSet(Geo::u32) | Get an interpolation set that corresponds to given index - this index needs to be comaptible with ProbeInterpolant::m_ProbeSetIndex filled by the GetProbeInterpolants(...) method. |
GetLodRangeProbeInterpolants(Geo::v128 const &, ProbeInterpolant *, Geo::s32, Geo::u8 *, Geo::u32) | Retrieves the probes interpolants for a given point and specified range of LODs. |
GetMaxWeightForProbeSet(Geo::GeoGuid const &, float &) | Set a maximum interpolation weight for the given Probe Set. |
GetNumProbeSets() | Get the total number of Probe Sets under management. |
GetProbeInterpolants(Geo::v128 const &, ProbeInterpolant *, Geo::s32, Geo::s32 &) | Retrieves the probes interpolants for a given point. |
GetProbeInterpolants(Geo::v128 const &, ProbeInterpolant *, Geo::s32, Geo::s32 &, Geo::u32) | Retrieves the probes interpolants for a given point and specified LOD. |
MarkAllProbeSetsAsUnloaded() | Marks all Interpolation Input Sets as unloaded. |
MarkProbeSetAsLoaded(Enlighten::InterpolationInputSet const &) | Marks given Interpolation Input Set as loaded. |
MarkProbeSetAsUnloaded(Geo::GeoGuid const &) | Marks given Interpolation Input Set as unloaded. |
OnAllLoadedProbeSetsArrayChanged(Enlighten::InterpolationInputSet const *, Geo::s32) | Allows the probe set manager a chance to observe the contiguous memory block in which the runtime stores all loaded input sets. |
SetMaxWeightForProbeSet(Geo::GeoGuid const &, float) | Set a maximum interpolation weight for the given Probe Set. |
public: Enlighten::InterpolationInputSet const * GetInterpolationInputSet
(
Geo::u32 index
) const
Get an interpolation set that corresponds to given index - this index needs to be comaptible with ProbeInterpolant::m_ProbeSetIndex filled by the GetProbeInterpolants(...) method.
May return NULL is Probe Set that corresponds to index is unloaded. Note, however that none of the ProbeInterpolant::m_ProbeSetIndex indices returned from GetProbeInterpolants(...) should correspond to an unloaded Probe Sets.
The InterpolationI Input Set for a given index or NULL if that Probe Set in unloaded.
public: virtual bool GetLodRangeProbeInterpolants
(
Geo::v128 const & point,
ProbeInterpolant * interpolants,
Geo::s32 numMaxInterpolants,
Geo::u8 * numUsedInterpolants,
Geo::u32 numLods
) const
Retrieves the probes interpolants for a given point and specified range of LODs.
Only loaded Probe Sets are considered for interpolation. This interface is only supported to enable Transparency and Contributing Probe when using Probe LOD with PPPI.
[in] | point | Location used for the interpolation. |
[out] | interpolants | Output probe interpolants array with size numMaxInterpolants * numLods. |
[in] | numMaxInterpolants | Maximum number of interpolants that may be output for each LOD. |
[out] | numUsedInterpolants | Array to which is output the number of interpolants used for each LOD. |
[in] | numLods | The range of LODs [0, numLods) for which interpolants should be returned. |
TRUE if the input to this function is valid and the interpolation is successful, otherwise FALSE.
public: bool GetMaxWeightForProbeSet
(
Geo::GeoGuid const & probeSet,
float & maxWeight
) const
Set a maximum interpolation weight for the given Probe Set.
. Needs to perform a search OLog(N). Where N is number of probe sets under management.
[in] | probeSet | The GUID of the Probe Set. |
[out] | maxWeight | New maximum interpolation weight. |
TRUE if the Probe Set is under ProbeSetManager management, otherwise FALSE.
public: Geo::s32 GetNumProbeSets() const
Get the total number of Probe Sets under management.
the total number of Probe Sets under management.
public: bool GetProbeInterpolants
(
Geo::v128 const & point,
ProbeInterpolant * interpolants,
Geo::s32 numMaxInterpolants,
Geo::s32 & numUsedInterpolants
) const
Retrieves the probes interpolants for a given point.
Only loaded Probe Sets are considered for interpolation.
[in] | point | Location used for the interpolation. |
[out] | interpolants | Output probe interpolants. |
[in] | numMaxInterpolants | Size of the output interpolants array. |
[out] | numUsedInterpolants | Number of interpolants actually used. |
TRUE if the input to this function is valid and the interpolation is successful, otherwise FALSE.
public: bool GetProbeInterpolants
(
Geo::v128 const & point,
ProbeInterpolant * interpolants,
Geo::s32 numMaxInterpolants,
Geo::s32 & numUsedInterpolants,
Geo::u32 lod
) const
Retrieves the probes interpolants for a given point and specified LOD.
Only loaded Probe Sets are considered for interpolation. This interface is only supported to enable Transparency and Contributing Probe when using Probe LOD with PPPI.
[in] | point | Location used for the interpolation. |
[out] | interpolants | Output probe interpolants. |
[in] | numMaxInterpolants | Size of the output interpolants array. |
[out] | numUsedInterpolants | Number of interpolants actually used. |
[in] | lod | The LOD to select which interpolants should be returned. |
TRUE if the input to this function is valid and the interpolation is successful, otherwise FALSE.
public: bool MarkAllProbeSetsAsUnloaded()
Marks all Interpolation Input Sets as unloaded.
Unloaded input sets are not used for interpolation.
TRUE if the InterpolationInputSet is under ProbeSetManager management and can be marked as unloaded, otherwise FALSE.
public: bool MarkProbeSetAsLoaded
(
Enlighten::InterpolationInputSet const & loadedProbeSet
)
Marks given Interpolation Input Set as loaded.
Only loaded input sets are used for interpolation.
[in] | loadedProbeSet | The Interpolation Input Set to be marked as loaded. It has to contain a valid RadProbeSetCore field. |
TRUE if the InterpolationInputSet is under ProbeSetManager management and can be marked as loaded, otherwise FALSE.
public: bool MarkProbeSetAsUnloaded
(
Geo::GeoGuid const & unloadedProbeSet
)
Marks given Interpolation Input Set as unloaded.
Unloaded input sets are not used for interpolation.
[in] | unloadedProbeSet | The GUID of the Probe Set to be marked as unloaded. |
TRUE if the InterpolationInputSet is under ProbeSetManager management and can be marked as unloaded, otherwise FALSE.
public: virtual void OnAllLoadedProbeSetsArrayChanged
(
Enlighten::InterpolationInputSet const * allLoadedProbeSets,
Geo::s32 numLoadedProbeSets
)
Allows the probe set manager a chance to observe the contiguous memory block in which the runtime stores all loaded input sets.
The manager can then use this knowledge to speed up other operations as needed (e.g. if the manager's implementation of GetProbeInterpolants() uses the variant of Enlighten::GetProbeInterpolants() supporting multiple probe sets). Note that multiple load and unload notifications (as noted by MarkProbeSetAsLoaded and MarkProbeSetAsUnloaded, respectively) may be batched into a single call to this function.
[in] | allLoadedProbeSets | Starting address of the input set array managed by the runtime. |
[in] | numLoadedProbeSets | Size of the input set array. |
public: bool SetMaxWeightForProbeSet
(
Geo::GeoGuid const & probeSet,
float maxWeight
)
Set a maximum interpolation weight for the given Probe Set.
Needs to perform a search OLog(N). Where N is number of probe sets under management.
[in] | probeSet | The GUID of the Probe Set. |
[in] | maxWeight | New maximum interpolation weight. Has to be a value between 0.0 and 1.0 |
TRUE if the Probe Set is under ProbeSetManager management, otherwise FALSE.