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. |
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. |
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.
Enlighten::BaseDynamicObject::BaseDynamicObject
protected: BaseDynamicObject
(
const DynamicObject & object
)
Constructor, taking a DynamicObject description. Called during IUpdateManager::AllocateDynamicObject.
Geo::s32 Enlighten::BaseDynamicObject::GetNumInterpolationPoints
protected: Geo::s32 GetNumInterpolationPoints()
Helper function to return the resolution of the output volume textures.
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.
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.
virtual bool Enlighten::BaseDynamicObject::IsUpdatePending
protected: virtual bool IsUpdatePending() const
Are any irradiance buffers marked for an update?
virtual void Enlighten::BaseDynamicObject::MarkUpdate
protected: virtual void MarkUpdate
(
bool value
)
Mark solution buffer as requiring update in next call to UpdateGpuTexture.
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)'
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)'
void Enlighten::BaseDynamicObject::RequestInterpolationOnAllPoints
public: void RequestInterpolationOnAllPoints()
will setInterpolatedPoint:: m_RecomputeInterpolants to true on all the interpolated points.
virtual void Enlighten::BaseDynamicObject::SetGpuTexture
public: virtual void SetGpuTexture
(
ProbeVolumeOutputTextureType textureType,
IGpuTexture * gpuTexture
)
Sets an output texture for the dynamic object.
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.
virtual void Enlighten::BaseDynamicObject::UpdateGpuTexture
protected: virtual void UpdateGpuTexture()
Update the GPU volume textures.