└>Enlighten::BaseDynamicObject
└>Geo::IGeoReleasable
Implementation of BaseDynamicObject for Cpu Solving.
| Name | Description |
|---|---|
| bool m_AddedToManager | false when the object is allocated; true when it is added to the working set |
| IGpuTexture * m_GpuTexture[ENLIGHTEN_PROBE_VOLUME_NUM_TYPES] | GPU output volume textures for R/G/B/Env. |
| InterpolatedPoint * m_InterpolationPoints | Set of points where we require interpolated probe output. |
| eSHOrder m_MaximumEnvVisShOrder | The amount of storage allocated for environment SH results. |
| eSHOrder m_MaximumShOrder | Whether this dynamic object has L1 or L2 storage allocated. |
| bool m_NewSolverOutputToCopy | Flag set when there is fresh output to copy to the GPU. |
| const DynamicObject m_Object | Fixed description of the object. |
| Geo::s32 m_RowPitch[ENLIGHTEN_PROBE_VOLUME_NUM_TYPES] | The row pitch of the CPU output, in bytes. |
| Geo::s32 m_SlicePitch[ENLIGHTEN_PROBE_VOLUME_NUM_TYPES] | The slice pitch of the CPU output, in bytes. |
| void * m_SolverOutput[ENLIGHTEN_PROBE_VOLUME_NUM_TYPES] | CPU output for R/G/B/Env. |
| Geo::Matrix m_Transform | Current local-to-world-space transform of the object. |
| bool m_UseVolumeTextures | Whether this dynamic object has volume textures. |
| Geo::Matrix m_WorldToUvw | Current world-space-to-uvw-coordinate transform of the object. |
| Name | Description |
|---|---|
| AllocateSolutionSpace(IGpuTextureAllocator *, Enlighten::eSHOrder, Enlighten::eSHOrder, bool) | Allocates space for probe output - CPU buffer if useVolumeTextures is false; GPU textures if true. |
| AllocateSolutionSpace(IGpuTextureAllocator *, Enlighten::eSHOrder, Enlighten::eSHOrder, bool) | Allocates space to hold the interpolated probe coefficients for the object. |
| BaseDynamicObject(const DynamicObject &) | Constructor, taking a DynamicObject description. Called during IUpdateManager::AllocateDynamicObject. |
| CpuDynamicObject(const DynamicObject &) | Constructor, taking a DynamicObject description. |
| GetNumInterpolationPoints() | Helper function to return the resolution of the output volume textures. |
| GetOutputPointer(Geo::s32, Geo::s32, Geo::s32, Geo::s32) | Returns the CPU pointer to write interpolated data for the given channel and grid coordinates. |
| GetOutputPointer(Geo::s32, Geo::s32, Geo::s32, Geo::s32) | Returns the CPU pointer to write interpolated data for the given channel and grid coordinates. |
| GetWorldToUvwMatrix() | Returns a matrix which transforms from world space to UVW volume texture coordinates to look up light probe data. |
| IsUpdatePending() | Are any irradiance buffers marked for an update? |
| IsUpdatePending() | Are any irradiance buffers marked for an update? |
| MarkUpdate(bool) | Mark solution buffer as requiring update in next call to UpdateGpuTexture. |
| MarkUpdate(bool) | Mark solution buffer as requiring update in next call to UpdateGpuTexture. |
| NonCopyable(NonCopyable &&) | Defaulted to allow move. |
| operator=(NonCopyable &&) | Defaulted to allow move. |
| Release() | Free this object that was created within the Enlighten libraries. |
| Release() | Free this object that was created within the Enlighten libraries. |
| RequestInterpolationOnAllPoints() | will setInterpolatedPoint:: m_RecomputeInterpolants to true on all the interpolated points. |
| SetGpuTexture(ProbeVolumeOutputTextureType, IGpuTexture *) | Sets an output texture for the dynamic object. |
| SetGpuTexture(ProbeVolumeOutputTextureType, IGpuTexture *) | Sets an output texture for the dynamic object. |
| SetTransform(const Geo::Matrix &) | Sets the world transform for the object, and updates the world-to-uvw transform. |
| UpdateGpuTexture() | Update textures using the marked solution buffers. |
| UpdateGpuTexture() | Update the GPU volume textures. |
public: virtual void AllocateSolutionSpace
(
IGpuTextureAllocator * textureAllocator,
Enlighten::eSHOrder maximumShOrder,
Enlighten::eSHOrder maximumEnvVisShOrder,
bool useVolumeTextures
)
Allocates space for probe output - CPU buffer if useVolumeTextures is false; GPU textures if true.
protected: void AllocateSolutionSpace
(
IGpuTextureAllocator * textureAllocator,
Enlighten::eSHOrder maximumShOrder,
Enlighten::eSHOrder maximumEnvVisShOrder,
bool useVolumeTextures
)
Allocates space to hold the interpolated probe coefficients for the object.
If useVolumeTextures is false this will be a CPU buffer. If useVolumeTextures is true it will be GPU textures, along with whatever other resources are required to update the textures.
protected: BaseDynamicObject
(
const DynamicObject & object
)
Constructor, taking a DynamicObject description. Called during IUpdateManager::AllocateDynamicObject.
public: CpuDynamicObject
(
const DynamicObject & object
)
Constructor, taking a DynamicObject description.
protected: Geo::s32 GetNumInterpolationPoints()
Helper function to return the resolution of the output volume textures.
protected: virtual void * GetOutputPointer
(
Geo::s32 channel,
Geo::s32 x,
Geo::s32 y,
Geo::s32 z
)
Returns the CPU pointer to write interpolated data for the given channel and grid coordinates.
public: virtual void * GetOutputPointer
(
Geo::s32 channel,
Geo::s32 x,
Geo::s32 y,
Geo::s32 z
)
Returns the CPU pointer to write interpolated data for the given channel and grid coordinates.
protected: Geo::Matrix GetWorldToUvwMatrix() const
Returns a matrix which transforms from world space to UVW volume texture coordinates to look up light probe data.
public: virtual bool IsUpdatePending() const
Are any irradiance buffers marked for an update?
protected: virtual bool IsUpdatePending() const
Are any irradiance buffers marked for an update?
public: virtual void MarkUpdate
(
bool value
)
Mark solution buffer as requiring update in next call to UpdateGpuTexture.
protected: virtual void MarkUpdate
(
bool value
)
Mark solution buffer as requiring update in next call to UpdateGpuTexture.
public: NonCopyable
(
NonCopyable &&
)
Defaulted to allow move.
public: NonCopyable & operator=
(
NonCopyable &&
)
Defaulted to allow move.
protected: virtual void Release()
Free this object that was created within the Enlighten libraries.
Expect this to behave in a similar way to calling 'delete(this)'
public: void Release()
Free this object that was created within the Enlighten libraries.
Expect this to behave in a similar way to calling 'delete(this)'
public: void RequestInterpolationOnAllPoints()
will setInterpolatedPoint:: m_RecomputeInterpolants to true on all the interpolated points.
public: virtual void SetGpuTexture
(
ProbeVolumeOutputTextureType textureType,
IGpuTexture * gpuTexture
)
Sets an output texture for the dynamic object.
public: virtual void SetGpuTexture
(
ProbeVolumeOutputTextureType textureType,
IGpuTexture * gpuTexture
)
Sets an output texture for the dynamic object.
public: void SetTransform
(
const Geo::Matrix & transform
)
Sets the world transform for the object, and updates the world-to-uvw transform.
public: virtual void UpdateGpuTexture()
Update textures using the marked solution buffers.
protected: virtual void UpdateGpuTexture()
Update the GPU volume textures.