Versions Compared

Key

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

class Enlighten::ProbeSetManagerOctree

    └>Enlighten::IProbeSetManager

An implementation of IProbeSetManager with a fast path for scenes which contain only octree probe sets.

Functions

NameDescription
GetInterpolationInputSet(Geo::u32)

Get an interpolation set that corresponds to given index.

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(const Geo::v128 &, ProbeInterpolant *, Geo::s32, Geo::u8 *, Geo::u32)

Retrieves the probes interpolants for a given point and specified range of LODs.

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(const Geo::GeoGuid &, float &)

Get a maximum interpolation weight for the given Probe Set.

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.

GetNumProbeSets()

Get the total number of Probe Sets under management.

GetProbeInterpolants(const Geo::v128 &, ProbeInterpolant *, Geo::s32, Geo::s32 &)

Retrieves the probes interpolants for a given point.

GetProbeInterpolants(const Geo::v128 &, ProbeInterpolant *, Geo::s32, Geo::s32 &, Geo::u32)

Retrieves the probes interpolants for a given point and specified LOD.

GetProbeInterpolants(Geo::v128 const &, ProbeInterpolant *, Geo::s32, Geo::s32 &, Geo::u32)

Retrieves the probes interpolants for a given point and specified LOD.

GetProbeInterpolants(Geo::v128 const &, ProbeInterpolant *, Geo::s32, Geo::s32 &)

Retrieves the probes interpolants for a given point.

MarkAllProbeSetsAsUnloaded()

Marks all input sets as unloaded.

MarkAllProbeSetsAsUnloaded()

Marks all Interpolation Input Sets as unloaded.

MarkProbeSetAsLoaded(const InterpolationInputSet &)

Marks given Interpolation Input Set as loaded. Only loaded input sets are used for interpolation.

MarkProbeSetAsLoaded(Enlighten::InterpolationInputSet const &)

Marks given Interpolation Input Set as loaded.

MarkProbeSetAsUnloaded(Geo::GeoGuid const &)

Marks given Interpolation Input Set as unloaded.

MarkProbeSetAsUnloaded(const Geo::GeoGuid &)

Marks given Interpolation Input Set as unloaded. Unloaded input sets are not used for interpolation.

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.

OnAllLoadedProbeSetsArrayChanged(const InterpolationInputSet *, Geo::s32)

Marks an array of Interpolation Input Set as loaded. All other input sets are considered unloaded.

SetMaxWeightForProbeSet(const Geo::GeoGuid &, float)

Set a maximum interpolation weight for the given Probe Set.

SetMaxWeightForProbeSet(Geo::GeoGuid const &, float)

Set a maximum interpolation weight for the given Probe Set.


Anchor
ae5d2d691a7f8a3f996ce7b8f82e33a59
ae5d2d691a7f8a3f996ce7b8f82e33a59

virtual const InterpolationInputSet* Enlighten::ProbeSetManagerOctree::GetInterpolationInputSet

...

public: virtual const InterpolationInputSet * GetInterpolationInputSet
(
    Geo::u32 index
) const

...

Get an interpolation set that corresponds to given index.


Anchor
a9e37c7ce2a6fc7719ea7ddcc9bd7177b
a9e37c7ce2a6fc7719ea7ddcc9bd7177b

virtual Enlighten::InterpolationInputSet const* Enlighten::IProbeSetManager::GetInterpolationInputSet

...

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.

Returns

The InterpolationI Input Set for a given index or NULL if that Probe Set in unloaded.


Anchor
ac78f1ce4106e1b0f9da67b981ba6b242
ac78f1ce4106e1b0f9da67b981ba6b242

virtual bool Enlighten::ProbeSetManagerOctree::GetLodRangeProbeInterpolants

...

public: virtual bool GetLodRangeProbeInterpolants
(
    const Geo::v128 & point,
    ProbeInterpolant * interpolants,
    Geo::s32 maxInterpolantCount,
    Geo::u8 * usedInterpolantCount,
    Geo::u32 numLods
) const

...

Retrieves the probes interpolants for a given point and specified range of LODs.


Anchor
ae01c5ba094b110f75dcd1270868eee5a
ae01c5ba094b110f75dcd1270868eee5a

virtual bool Enlighten::IProbeSetManager::GetLodRangeProbeInterpolants

...

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.

Parameters
[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.

Returns

TRUE if the input to this function is valid and the interpolation is successful, otherwise FALSE.


Anchor
a68a5873d98ea5c065e99220849af8f61
a68a5873d98ea5c065e99220849af8f61

virtual bool Enlighten::ProbeSetManagerOctree::GetMaxWeightForProbeSet

...

public: virtual bool GetMaxWeightForProbeSet
(
    const Geo::GeoGuid & probeSet,
    float & maxWeight
) const

...

Get a maximum interpolation weight for the given Probe Set.


Anchor
a6ed451fc819605dd5a437b3154c7624f
a6ed451fc819605dd5a437b3154c7624f

virtual bool Enlighten::IProbeSetManager::GetMaxWeightForProbeSet

...

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.

Parameters
[in]probeSet

The GUID of the Probe Set.

[out]maxWeight

New maximum interpolation weight.

Returns

TRUE if the Probe Set is under ProbeSetManager management, otherwise FALSE.


Anchor
a7b064520e786da8d899c2c7cb7aaf82d
a7b064520e786da8d899c2c7cb7aaf82d

virtual Geo::s32 Enlighten::ProbeSetManagerOctree::GetNumProbeSets

...

public: virtual Geo::s32 GetNumProbeSets() const

...

Get the total number of Probe Sets under management.


Anchor
a9c30b77918c361c9ca11d1cffdda2054
a9c30b77918c361c9ca11d1cffdda2054

virtual Geo::s32 Enlighten::IProbeSetManager::GetNumProbeSets

...

public: Geo::s32 GetNumProbeSets() const

...

Get the total number of Probe Sets under management.

Returns

the total number of Probe Sets under management.


Anchor
a988f0eb000be741a5290919065f9000a
a988f0eb000be741a5290919065f9000a

virtual bool Enlighten::ProbeSetManagerOctree::GetProbeInterpolants

...

public: virtual bool GetProbeInterpolants
(
    const Geo::v128 & point,
    ProbeInterpolant * interpolants,
    Geo::s32 maxInterpolantCount,
    Geo::s32 & usedInterpolantCount
) const

...

Retrieves the probes interpolants for a given point.


Anchor
a6d46df9f827ba9dd7d5a307fbbe04cd6
a6d46df9f827ba9dd7d5a307fbbe04cd6

virtual bool Enlighten::ProbeSetManagerOctree::GetProbeInterpolants

...

public: virtual bool GetProbeInterpolants
(
    const Geo::v128 & point,
    ProbeInterpolant * interpolants,
    Geo::s32 maxInterpolantCount,
    Geo::s32 & usedInterpolantCount,
    Geo::u32 lod
) const

...

Retrieves the probes interpolants for a given point and specified LOD.


Anchor
a601d24a59202f09f6b9f1c541da7de74
a601d24a59202f09f6b9f1c541da7de74

virtual bool Enlighten::IProbeSetManager::GetProbeInterpolants

...

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.

Parameters
[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.

Returns

TRUE if the input to this function is valid and the interpolation is successful, otherwise FALSE.


Anchor
a25f31ccd7c2cae8abf47d31e6af1c7af
a25f31ccd7c2cae8abf47d31e6af1c7af

virtual bool Enlighten::IProbeSetManager::GetProbeInterpolants

...

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.

Parameters
[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.

Returns

TRUE if the input to this function is valid and the interpolation is successful, otherwise FALSE.


Anchor
abd943647ada1349b44cbbe48b79df7ef
abd943647ada1349b44cbbe48b79df7ef

virtual bool Enlighten::ProbeSetManagerOctree::MarkAllProbeSetsAsUnloaded

...

public: virtual bool MarkAllProbeSetsAsUnloaded()

...

Marks all input sets as unloaded.


Anchor
adaeda92dc9dd1bde4cbee8af85dcdaac
adaeda92dc9dd1bde4cbee8af85dcdaac

virtual bool Enlighten::IProbeSetManager::MarkAllProbeSetsAsUnloaded

...

public: bool MarkAllProbeSetsAsUnloaded()

...

Marks all Interpolation Input Sets as unloaded.

Unloaded input sets are not used for interpolation.

Returns

TRUE if the InterpolationInputSet is under ProbeSetManager management and can be marked as unloaded, otherwise FALSE.


Anchor
adb81101f56d1ece93e32ae3d48b1286b
adb81101f56d1ece93e32ae3d48b1286b

virtual bool Enlighten::ProbeSetManagerOctree::MarkProbeSetAsLoaded

...

public: virtual bool MarkProbeSetAsLoaded
(
    const InterpolationInputSet & loadedProbeSet
)

...

Marks given Interpolation Input Set as loaded. Only loaded input sets are used for interpolation.


Anchor
ab719cc95437bc58e41998775f61fdca6
ab719cc95437bc58e41998775f61fdca6

virtual bool Enlighten::IProbeSetManager::MarkProbeSetAsLoaded

...

public: bool MarkProbeSetAsLoaded
(
    Enlighten::InterpolationInputSet const & loadedProbeSet
)

...

Marks given Interpolation Input Set as loaded.

Only loaded input sets are used for interpolation.

Parameters
[in]loadedProbeSet

The Interpolation Input Set to be marked as loaded. It has to contain a valid RadProbeSetCore field.

Returns

TRUE if the InterpolationInputSet is under ProbeSetManager management and can be marked as loaded, otherwise FALSE.


Anchor
ab2c8361e6a68912686dd885cb28bb7f6
ab2c8361e6a68912686dd885cb28bb7f6

virtual bool Enlighten::IProbeSetManager::MarkProbeSetAsUnloaded

...

public: bool MarkProbeSetAsUnloaded
(
    Geo::GeoGuid const & unloadedProbeSet
)

...

Marks given Interpolation Input Set as unloaded.

Unloaded input sets are not used for interpolation.

Parameters
[in]unloadedProbeSet

The GUID of the Probe Set to be marked as unloaded.

Returns

TRUE if the InterpolationInputSet is under ProbeSetManager management and can be marked as unloaded, otherwise FALSE.


Anchor
ae1e184ad013e44478704ec20031ee8a6
ae1e184ad013e44478704ec20031ee8a6

virtual bool Enlighten::ProbeSetManagerOctree::MarkProbeSetAsUnloaded

...

public: virtual bool MarkProbeSetAsUnloaded
(
    const Geo::GeoGuid & unloadedProbeSet
)

...

Marks given Interpolation Input Set as unloaded. Unloaded input sets are not used for interpolation.


Anchor
abb7955d9492eafd3bc2b336ecdc5ec4a
abb7955d9492eafd3bc2b336ecdc5ec4a

virtual void Enlighten::IProbeSetManager::OnAllLoadedProbeSetsArrayChanged

...

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.

Parameters
[in]allLoadedProbeSets

Starting address of the input set array managed by the runtime.

[in]numLoadedProbeSets

Size of the input set array.


Anchor
a557849d8a1484337a2ce86c1f10fbe7a
a557849d8a1484337a2ce86c1f10fbe7a

virtual void Enlighten::ProbeSetManagerOctree::OnAllLoadedProbeSetsArrayChanged

...

public: virtual void OnAllLoadedProbeSetsArrayChanged
(
    const InterpolationInputSet * allLoadedProbeSets,
    Geo::s32 allLoadedProbeSetCount
)

...

Marks an array of Interpolation Input Set as loaded. All other input sets are considered unloaded.


Anchor
a6422c5df466c77d04d682513f2bb2e8a
a6422c5df466c77d04d682513f2bb2e8a

virtual bool Enlighten::ProbeSetManagerOctree::SetMaxWeightForProbeSet

...

public: virtual bool SetMaxWeightForProbeSet
(
    const Geo::GeoGuid & probeSet,
    float maxWeight
)

...

Set a maximum interpolation weight for the given Probe Set.


Anchor
aa546f8199b93bf894dfd8314f2670c2d
aa546f8199b93bf894dfd8314f2670c2d

virtual bool Enlighten::IProbeSetManager::SetMaxWeightForProbeSet

...

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.

Parameters
[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

Returns

TRUE if the Probe Set is under ProbeSetManager management, otherwise FALSE.