class Enlighten::BaseDynamicObject
Base class which holds everything a dynamic object must have (regardless of where the solving happens).
Variables
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. |
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. |
Geo::Matrix m_WorldToUvw | Current world-space-to-uvw-coordinate transform of the object. |
Functions
Name | Description |
---|---|
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. |
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. |
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? |
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. |
SetTransform(const Geo::Matrix &) | Sets the world transform for the object, and updates the world-to-uvw transform. |
UpdateGpuTexture() | Update the GPU volume textures. |
Anchor | ||||
---|---|---|---|---|
|
virtual void Enlighten::BaseDynamicObject::AllocateSolutionSpace
...
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.
Anchor | ||||
---|---|---|---|---|
|
Enlighten::BaseDynamicObject::BaseDynamicObject
...
protected: BaseDynamicObject
(
const DynamicObject & object
)
...
Constructor, taking a DynamicObject description. Called during IUpdateManager::AllocateDynamicObject.
Anchor | ||||
---|---|---|---|---|
|
Geo::s32 Enlighten::BaseDynamicObject::GetNumInterpolationPoints
...
protected: Geo::s32 GetNumInterpolationPoints()
...
Helper function to return the resolution of the output volume textures.
Anchor | ||||
---|---|---|---|---|
|
virtual void* Enlighten::BaseDynamicObject::GetOutputPointer
...
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.
Anchor | ||||
---|---|---|---|---|
|
Geo::Matrix Enlighten::BaseDynamicObject::GetWorldToUvwMatrix
...
protected: Geo::Matrix GetWorldToUvwMatrix() const
...
Returns a matrix which transforms from world space to UVW volume texture coordinates to look up light probe data.
Anchor | ||||
---|---|---|---|---|
|
virtual bool Enlighten::BaseDynamicObject::IsUpdatePending
...
protected: virtual bool IsUpdatePending() const
...
Are any irradiance buffers marked for an update?
Anchor | ||||
---|---|---|---|---|
|
virtual void Enlighten::BaseDynamicObject::MarkUpdate
...
protected: virtual void MarkUpdate
(
bool value
)
...
Mark solution buffer as requiring update in next call to UpdateGpuTexture.
Anchor | ||||
---|---|---|---|---|
|
Geo::NonCopyable::NonCopyable
...
public: NonCopyable
(
NonCopyable &&
)
...
Defaulted to allow move.
Anchor | ||||
---|---|---|---|---|
|
NonCopyable& Geo::NonCopyable::operator=
...
public: NonCopyable & operator=
(
NonCopyable &&
)
...
Defaulted to allow move.
Anchor | ||||
---|---|---|---|---|
|
virtual void Enlighten::BaseDynamicObject::Release
...
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)'
Anchor | ||||
---|---|---|---|---|
|
virtual void Geo::IGeoReleasable::Release
...
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)'
Anchor | ||||
---|---|---|---|---|
|
void Enlighten::BaseDynamicObject::RequestInterpolationOnAllPoints
...
public: void RequestInterpolationOnAllPoints()
...
will setInterpolatedPoint:: m_RecomputeInterpolants to true on all the interpolated points.
Anchor | ||||
---|---|---|---|---|
|
virtual void Enlighten::BaseDynamicObject::SetGpuTexture
...
public: virtual void SetGpuTexture
(
ProbeVolumeOutputTextureType textureType,
IGpuTexture * gpuTexture
)
...
Sets an output texture for the dynamic object.
Anchor | ||||
---|---|---|---|---|
|
void Enlighten::BaseDynamicObject::SetTransform
...
public: void SetTransform
(
const Geo::Matrix & transform
)
...
Sets the world transform for the object, and updates the world-to-uvw transform.
Anchor | ||||
---|---|---|---|---|
|
virtual void Enlighten::BaseDynamicObject::UpdateGpuTexture
...
protected: virtual void UpdateGpuTexture()
...
Update the GPU volume textures.