This is the documentation for Enlighten.

class Enlighten IUpdateManagerWorker

class Enlighten::IUpdateManagerWorker

Interface of the update manager worker.

Apart from the Find functions, which are used by worker functions (commands), these are the functions which can be enqueued by the main update manager thread. Custom commands can also be enqueued and run on the worker thread - see Command.h for details.

Functions

Name Description
AddCubeMap(BaseCubeMap *const &)

Add a cube map to the worker.

AddDynamicObject(BaseDynamicObject *const &)

Add a dynamic object to the worker.

AddProbeSet(BaseProbeSet *const &)

Add a probe set to the worker.

AddSystem(BaseSystem *const &)

Add a system to the worker, and allocate any required auxiliary resources.

ClearCubeMapVolumeTransparency(Geo::GeoGuid const &)

Clears the cube map volume transparency.

ClearSystemVolumeTransparency(Geo::GeoGuid const &)

Clears the system volume transparency.

CopyAlbedoBuffer(CopyAlbedoBufferInfo const &)

Allocate and make a copy of an albedo buffer.

CopyBounceBuffer(CopyBounceBufferInfo const &)

Allocate and make a copy of an emissive buffer.

CopyEmissiveBuffer(CopyEmissiveBufferInfo const &)

Allocate and make a copy of an emissive buffer.

CopyEmissiveEnvironment(CopyEmissiveEnvironmentInfo const &)

Allocate and make a copy of an emissive environment.

CopyGeometryTransparencyBuffer(CopyTransparencyBufferInfo const &)

Allocate and make a copy of a geoemtry transparency buffer.

CopyInputLightingBuffer(CopyInputLightingBufferInfo const &)

Allocate and make a copy of an input lighting buffer.

CopyMaterialTransparencyBuffer(CopyTransparencyBufferInfo const &)

Allocate and make a copy of a material transparency buffer.

CopyProbeOutput(CopyProbeOutputInfo const &)

Allocate and make a copy of Enlighten probe set output.

CopyRawOutput(CopyRawOutputInfo const &)

Allocate and make a copy of raw Enlighten texture output.

CopyVisibilityBuffer(CopyVisibilityBufferInfo const &)

Allocate and make a copy of a visibility data block.

ExcludesEnvironmentInPrimaryBounce()

Returns the value of the worker property m_ExcludeEnvrionmentInPrimaryBounce.

GetLightMethodSelector()

Gets the light method selector.

GetSizeOfProbeInputWorkspaceMemory()

Get the total size of probe set output workspaces.

GetSizeOfProbeOutputWorkspaceMemory()

Get the total size of probe set input workspaces.

GetSizeOfWorkingMemory()

Get the size of the working memory required for solving.

IsUpdateLimited()

Are we at the limit of the number of allowed enqueued updates, and therefore the update rate is throttled?

ProbeSetManagerSetMaxWeightForProbeSet(Geo::GeoGuid const &, float)

Set max interpolation weight for a given probe set.

ReadInputLightingBuffer(ReadInputLightingBufferInfo const &)

These functions are provided for debugging/visualisation purposes.

ReleaseSystemSolutionSpaces(ReleaseSystemSolutionSpacesInfo const &)

Release the solution spaces.

RemoveAllLights()

Remove all lights.

RemoveCubeMap(RemoveInfo const &)

Remove a cube map from the worker (either completely or partially)

RemoveDynamicObject(RemoveInfo const &)

Remove a dynamic object from the worker.

RemoveEmissiveEnvironment(Geo::GeoGuid const &)

Remove the environment with the given id.

RemoveLight(Geo::GeoGuid const &)

Remove the light with the given id.

RemoveLightBank(Geo::s32 const &)

Remove a light bank.

RemoveProbeSet(RemoveInfo const &)

Remove a probe set from the worker (either completely or partially)

RemoveSystem(RemoveInfo const &)

Remove a system from the worker (either completely or partially)

RemoveSystemSolutionSpaces(Geo::GeoGuid const &)

Removes the solution spaces from the system. This function will not release the solution spaces.

SetAllUpdateCounters(Geo::s32 const &)

Set all system and probe update counters to count.

SetDoFullSolveNextFrame()

Disable temporal coherence so a full solve is performed next frame.

SetDoIndirectInputLightingNextFrame(Geo::GeoGuid const &)

Sets a flag to run indirect input lighting on the next frame.

SetLightBankUpdateCounter(SetLightBankUpdateCounterInfo const &)

Set a light bank update counter.

SetProbeSetTransform(SetProbeSetTransformInfo const &)

Set a probe set world-to-local-space transform.

SetSystemSolutionSpaces(ISystemSolutionSpace *const *, const Geo::s32, const Geo::s32)

Set the solution spaces used by a system.

SetTransparencySamplePositionOffset(SetTransparencySamplePositionOffsetInfo const &)

Sets the transparency sample position offset.

SetVisibilityBits(SetVisibilityBitsInfo const &)

Sets the visibility block for a (system, light) pair.

SetWorkerProperties(UpdateManagerWorkerProperties const &)

Set the worker global state.

TriggerTransparencyVolume(const Enlighten::BoxVolume &)

Triggers a transparency volume.

TriggerTransparencyVolume(const Enlighten::SphereVolume &)

Triggers a transparency volume.

UpdateEmissiveEnvironment(UpdateEnvironmentInfo const &)

Update (or add) the environment with the given id.

UpdateLight(UpdateLightInfo const &)

Update (or add) the light with the given id.

UpdateRadiosity(const Geo::v128 &)

The main radiosity update function.


virtual void Enlighten::IUpdateManagerWorker::AddCubeMap


public: void AddCubeMap
(
    BaseCubeMap *const & cubeMap
)


Add a cube map to the worker.


virtual void Enlighten::IUpdateManagerWorker::AddDynamicObject


public: void AddDynamicObject
(
    BaseDynamicObject *const & dynamicObject
)


Add a dynamic object to the worker.


virtual void Enlighten::IUpdateManagerWorker::AddProbeSet


public: void AddProbeSet
(
    BaseProbeSet *const & probeSet
)


Add a probe set to the worker.


virtual void Enlighten::IUpdateManagerWorker::AddSystem


public: void AddSystem
(
    BaseSystem *const & system
)


Add a system to the worker, and allocate any required auxiliary resources.


virtual void Enlighten::IUpdateManagerWorker::ClearCubeMapVolumeTransparency


public: void ClearCubeMapVolumeTransparency
(
    Geo::GeoGuid const & cubeMapId
)


Clears the cube map volume transparency.


virtual void Enlighten::IUpdateManagerWorker::ClearSystemVolumeTransparency


public: void ClearSystemVolumeTransparency
(
    Geo::GeoGuid const & systemId
)


Clears the system volume transparency.


virtual void Enlighten::IUpdateManagerWorker::CopyAlbedoBuffer


public: void CopyAlbedoBuffer
(
    CopyAlbedoBufferInfo const & copyInfo
)


Allocate and make a copy of an albedo buffer.


virtual void Enlighten::IUpdateManagerWorker::CopyBounceBuffer


public: void CopyBounceBuffer
(
    CopyBounceBufferInfo const & copyInfo
)


Allocate and make a copy of an emissive buffer.


virtual void Enlighten::IUpdateManagerWorker::CopyEmissiveBuffer


public: void CopyEmissiveBuffer
(
    CopyEmissiveBufferInfo const & copyInfo
)


Allocate and make a copy of an emissive buffer.


virtual void Enlighten::IUpdateManagerWorker::CopyEmissiveEnvironment


public: void CopyEmissiveEnvironment
(
    CopyEmissiveEnvironmentInfo const & copyEnvironmentInfo
)


Allocate and make a copy of an emissive environment.


virtual void Enlighten::IUpdateManagerWorker::CopyGeometryTransparencyBuffer


public: void CopyGeometryTransparencyBuffer
(
    CopyTransparencyBufferInfo const & copyInfo
)


Allocate and make a copy of a geoemtry transparency buffer.


virtual void Enlighten::IUpdateManagerWorker::CopyInputLightingBuffer


public: void CopyInputLightingBuffer
(
    CopyInputLightingBufferInfo const & copyInputLightingBufferInfo
)


Allocate and make a copy of an input lighting buffer.


virtual void Enlighten::IUpdateManagerWorker::CopyMaterialTransparencyBuffer


public: void CopyMaterialTransparencyBuffer
(
    CopyTransparencyBufferInfo const & copyInfo
)


Allocate and make a copy of a material transparency buffer.


virtual void Enlighten::IUpdateManagerWorker::CopyProbeOutput


public: void CopyProbeOutput
(
    CopyProbeOutputInfo const & copyProbeOutputInfo
)


Allocate and make a copy of Enlighten probe set output.


virtual void Enlighten::IUpdateManagerWorker::CopyRawOutput


public: void CopyRawOutput
(
    CopyRawOutputInfo const & copyRawOutputInfo
)


Allocate and make a copy of raw Enlighten texture output.


virtual void Enlighten::IUpdateManagerWorker::CopyVisibilityBuffer


public: void CopyVisibilityBuffer
(
    CopyVisibilityBufferInfo const & copyVisibilityBufferInfo
)


Allocate and make a copy of a visibility data block.


virtual bool Enlighten::IUpdateManagerWorker::ExcludesEnvironmentInPrimaryBounce


public: bool ExcludesEnvironmentInPrimaryBounce() const


Returns the value of the worker property m_ExcludeEnvrionmentInPrimaryBounce.


virtual LightMethodSelector* Enlighten::IUpdateManagerWorker::GetLightMethodSelector


public: LightMethodSelector * GetLightMethodSelector()


Gets the light method selector.


virtual Geo::u32 Enlighten::IUpdateManagerWorker::GetSizeOfProbeInputWorkspaceMemory


public: Geo::u32 GetSizeOfProbeInputWorkspaceMemory() const


Get the total size of probe set output workspaces.


virtual Geo::u32 Enlighten::IUpdateManagerWorker::GetSizeOfProbeOutputWorkspaceMemory


public: Geo::u32 GetSizeOfProbeOutputWorkspaceMemory() const


Get the total size of probe set input workspaces.


virtual Geo::u32 Enlighten::IUpdateManagerWorker::GetSizeOfWorkingMemory


public: Geo::u32 GetSizeOfWorkingMemory() const


Get the size of the working memory required for solving.


virtual bool Enlighten::IUpdateManagerWorker::IsUpdateLimited


public: bool IsUpdateLimited() const


Are we at the limit of the number of allowed enqueued updates, and therefore the update rate is throttled?


virtual void Enlighten::IUpdateManagerWorker::ProbeSetManagerSetMaxWeightForProbeSet


public: void ProbeSetManagerSetMaxWeightForProbeSet
(
    Geo::GeoGuid const & probeSetGuid,
    float maxWeight
)


Set max interpolation weight for a given probe set.


virtual void Enlighten::IUpdateManagerWorker::ReadInputLightingBuffer


public: void ReadInputLightingBuffer
(
    ReadInputLightingBufferInfo const & parameters
)


These functions are provided for debugging/visualisation purposes.

Read back the contents of an input lighting buffer.


virtual void Enlighten::IUpdateManagerWorker::ReleaseSystemSolutionSpaces


public: void ReleaseSystemSolutionSpaces
(
    ReleaseSystemSolutionSpacesInfo const & releaseInfo
)


Release the solution spaces.


virtual void Enlighten::IUpdateManagerWorker::RemoveAllLights


public: void RemoveAllLights()


Remove all lights.


virtual void Enlighten::IUpdateManagerWorker::RemoveCubeMap


public: void RemoveCubeMap
(
    RemoveInfo const & removeInfo
)


Remove a cube map from the worker (either completely or partially)


virtual void Enlighten::IUpdateManagerWorker::RemoveDynamicObject


public: void RemoveDynamicObject
(
    RemoveInfo const & removeInfo
)


Remove a dynamic object from the worker.


virtual void Enlighten::IUpdateManagerWorker::RemoveEmissiveEnvironment


public: void RemoveEmissiveEnvironment
(
    Geo::GeoGuid const & environmentId
)


Remove the environment with the given id.


virtual void Enlighten::IUpdateManagerWorker::RemoveLight


public: void RemoveLight
(
    Geo::GeoGuid const & lightId
)


Remove the light with the given id.


virtual void Enlighten::IUpdateManagerWorker::RemoveLightBank


public: void RemoveLightBank
(
    Geo::s32 const & bankId
)


Remove a light bank.


virtual void Enlighten::IUpdateManagerWorker::RemoveProbeSet


public: void RemoveProbeSet
(
    RemoveInfo const & removeInfo
)


Remove a probe set from the worker (either completely or partially)


virtual void Enlighten::IUpdateManagerWorker::RemoveSystem


public: void RemoveSystem
(
    RemoveInfo const & removeInfo
)


Remove a system from the worker (either completely or partially)


virtual void Enlighten::IUpdateManagerWorker::RemoveSystemSolutionSpaces


public: void RemoveSystemSolutionSpaces
(
    Geo::GeoGuid const & systemId
)


Removes the solution spaces from the system. This function will not release the solution spaces.


virtual void Enlighten::IUpdateManagerWorker::SetAllUpdateCounters


public: void SetAllUpdateCounters
(
    Geo::s32 const & count
)


Set all system and probe update counters to count.


virtual void Enlighten::IUpdateManagerWorker::SetDoFullSolveNextFrame


public: void SetDoFullSolveNextFrame()


Disable temporal coherence so a full solve is performed next frame.


virtual void Enlighten::IUpdateManagerWorker::SetDoIndirectInputLightingNextFrame


public: void SetDoIndirectInputLightingNextFrame
(
    Geo::GeoGuid const & systemId
)


Sets a flag to run indirect input lighting on the next frame.


virtual void Enlighten::IUpdateManagerWorker::SetLightBankUpdateCounter


public: void SetLightBankUpdateCounter
(
    SetLightBankUpdateCounterInfo const & updateCounterInfo
)


Set a light bank update counter.


virtual void Enlighten::IUpdateManagerWorker::SetProbeSetTransform


public: void SetProbeSetTransform
(
    SetProbeSetTransformInfo const & probeSetTransformInfo
)


Set a probe set world-to-local-space transform.


virtual void Enlighten::IUpdateManagerWorker::SetSystemSolutionSpaces


public: void SetSystemSolutionSpaces
(
    ISystemSolutionSpace *const * solutionSpaces,
    const Geo::s32 solutionSpacesCount,
    const Geo::s32 indexForBounceResampling
)


Set the solution spaces used by a system.

Note that a system with a matching guid needs to already be added to the worker. This will only set the solution spaces if they all belong to the same system.

Parameters
solutionSpaces

Raw array of ISystemSolutionSpace pointers

solutionSpacesCount

Number of elements in the solutionSpaces array.

indexForBounceResampling

The index for the solution space to use for bounce resampling. Should be the index of the solution space with the smallest output pixel size.


virtual void Enlighten::IUpdateManagerWorker::SetTransparencySamplePositionOffset


public: void SetTransparencySamplePositionOffset
(
    SetTransparencySamplePositionOffsetInfo const & offsetInfo
)


Sets the transparency sample position offset.


virtual void Enlighten::IUpdateManagerWorker::SetVisibilityBits


public: void SetVisibilityBits
(
    SetVisibilityBitsInfo const & visibilityBitsInfo
)


Sets the visibility block for a (system, light) pair.


virtual void Enlighten::IUpdateManagerWorker::SetWorkerProperties


public: void SetWorkerProperties
(
    UpdateManagerWorkerProperties const & properties
)


Set the worker global state.


virtual void Enlighten::IUpdateManagerWorker::TriggerTransparencyVolume


public: void TriggerTransparencyVolume
(
    const Enlighten::BoxVolume & volume
)


Triggers a transparency volume.


virtual void Enlighten::IUpdateManagerWorker::TriggerTransparencyVolume


public: void TriggerTransparencyVolume
(
    const Enlighten::SphereVolume & volume
)


Triggers a transparency volume.


virtual void Enlighten::IUpdateManagerWorker::UpdateEmissiveEnvironment


public: void UpdateEmissiveEnvironment
(
    UpdateEnvironmentInfo const & updateEnvironmentInfo
)


Update (or add) the environment with the given id.


virtual void Enlighten::IUpdateManagerWorker::UpdateLight


public: void UpdateLight
(
    UpdateLightInfo const & updateLightInfo
)


Update (or add) the light with the given id.


virtual void Enlighten::IUpdateManagerWorker::UpdateRadiosity


public: void UpdateRadiosity
(
    const Geo::v128 & viewOrigin
)


The main radiosity update function.