This is the documentation for Enlighten.

class Enlighten BaseDynamicObject

class Enlighten::BaseDynamicObject

    └>Geo::IGeoReleasable

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.