class Enlighten CpuDynamicObject

This is the documentation for Enlighten.

class Enlighten CpuDynamicObject

class Enlighten::CpuDynamicObject

    └>Enlighten::BaseDynamicObject
        └>Geo::IGeoReleasable

Implementation of BaseDynamicObject for Cpu Solving.

Variables

Name

Description

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.

Functions

Name

Description

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.

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.