This is the documentation for Enlighten.
└>Enlighten::BaseSystem
└>Geo::IGeoReleasable
System for the CPU solver.
| Name | Description |
|---|---|
| AllocateAlbedoHandler() | Allocates an albedo handler. |
| AllocateInputLightingBuffers() | Allocate the InputLightingBuffers for this system. |
| AllocatePersistentDataBuffers(bool) | Allocate the buffers for persistent data (bounce, temporal coherence) |
| AllocateTransparencyBuffers() | Allocate the transparency buffers. |
| CpuSystem(PrecisionHint::Value) | Constructor. |
| FreeTransparencyBuffer() | Free any transparency buffers. |
| FreezeInputLighting() | Freeze this systems input lighting. |
| GetCpuSystemSolutionSpace(const Geo::s32) | Returns a solution space in this system. |
| GetCpuSystemSolutionSpace(const Geo::s32) | Returns a solution space in this system. |
| GetCpuSystemSolutionSpace() | Returns the main solution space in this system. |
| GetCpuSystemSolutionSpace() | Returns the main solution space in this system. |
| GetInputLightingBuffer() | Returns the current input lighting buffer. |
| GetInputLightingBuffer() | Returns the current input lighting buffer. |
| GetInputLightingList() | Returns the sorted list of inputlightingbuffers to read from. |
| GetLightBankBuffer(Geo::s32) | Returns the input lighting buffer corresponding to the light bank id, creating a new buffer if necessary. |
| GetLightBankBuffers() | Returns the array of input lighting buffers for the light banks. |
| GetNumLightBankBuffers() | Returns the number of input lighting buffers for the light banks. |
| GetTransparencyWorkspace() | Returns the Transparency workspace if Transparency is enabled. |
| GetTransparencyWorkspace() | Returns the Transparency workspace if Transparency is enabled. |
| HasAlbedoData() | Property-setting functions which can be enqueued with EnqueueSetObjectParameter. |
| HashLightingInputs(const Enlighten::InputLightingBuffer *) | Returns a hash of the guids for all the input InputLightingBuffers and the environment. |
| HasLightingInputsChanged(Geo::u32) | Returns true if the input hash matches the stored hash. |
| HasWorkerPropertiesChanged(Geo::u32) | Returns true if the input hash matches the stored hash. |
| InitStaticSystem(const Geo::GeoGuid &, InputLightingBuffer *, Geo::s32) | Initialise input lighting buffers with static data. |
| IsTransparencySampled() | Returns true if the system includes additional (optional) transparency data. |
| NonCopyable(NonCopyable &&) | Defaulted to allow move. |
| operator=(NonCopyable &&) | Defaulted to allow move. |
| PrepareInputLightingList(const Geo::GeoArray< const InputLightingBuffer * > &, Geo::u32) | Calculate th InputLightingBuffer list. |
| Release() | Free this object that was created within the Enlighten libraries. |
| Release() | Free this object that was created within the Enlighten libraries. |
| RemoveLightBankBuffer(Geo::s32) | Removes a cached light bank and frees its resources. |
| SetAlbedoData(Enlighten::SystemAlbedoData) | Property-setting functions which can be enqueued with EnqueueSetObjectParameter. |
| SetBounceScale(float) | Property-setting functions which can be enqueued with EnqueueSetObjectParameter. |
| SetCustomDirectionalVisibility(void *, Geo::s32) | Set a custom directional visibility buffer. Will use precomputed directional vis data in srcBuffer is NULL. |
| SetDirectionalLightInputScale(float) | Property-setting functions which can be enqueued with EnqueueSetObjectParameter. |
| SetDirectionalVisibility(const Geo::v128 &, Geo::s32) | Update the directional visibility. |
| SetEmissiveEnvironment(Geo::GeoGuid) | Property-setting functions which can be enqueued with EnqueueSetObjectParameter. |
| SetFramesPerUpdate(Geo::s32) | Property-setting functions which can be enqueued with EnqueueSetObjectParameter. |
| SetSystemSolutionSpace(ISystemSolutionSpace *) | Set a single solution space for this system. |
| SetSystemSolutionSpaces(ISystemSolutionSpace *const *, const Geo::s32, const Geo::s32) | Set multiple solution spaces for this system. |
| SetTemporalCoherenceThreshold(float) | Property-setting functions which can be enqueued with EnqueueSetObjectParameter. |
| SetTransparencyEnabled(bool) | Set whether or not Transparency should be computed in the HLRT. |
| SetUpdateCounter(Geo::s32) | Property-setting functions which can be enqueued with EnqueueSetObjectParameter. |
| UpdateFrameCounter() | Property-setting functions which can be enqueued with EnqueueSetObjectParameter. |
| UpdateGpuTexture() | Update textures using the marked solution buffers. |
| UpdateInputLightingHash(Geo::u32) | Update the stored hash with the given hash value. |
| UpdateWorkerPropertiesHash(Geo::u32) | Update the stored hash with the given hash value. |
| Name | Description |
|---|---|
| Enlighten::BounceBuffer * m_BounceBuffer | Buffer containing bounce per cluster. |
| Geo::GeoArray< CpuSystem * > m_Dependencies | Array of system dependencies in the correct order for passing input lighting buffers to the solve task. |
| Enlighten::BounceBuffer * m_EnvOnlyBounceBuffer | Buffer containing bounce per cluster, but only for the environment. |
| InputLightingBuffer * m_InputLightingBuffer | Current input lighting buffer. |
| const InputLightingBuffer ** m_InputLightingList | Ordered list of input lighting buffers this system reads from. |
| Geo::u32 m_InputLightingListHash | Hash of the input lighting Guids last time the InputLightingList was built. |
| PrecisionHint::Value m_InputLightingPrecisionHint | Hint for precision used for storing input lighting. |
| bool m_TransparencyInterpolantsNeedUpdate | If true, the transparency interpolants will be recalculated. |
| Geo::u32 m_TransparencyInterpolationInputChangeId | The value of counter from the worker, as of the last time this system's transparency was updated. |
| bool m_TransparencyVolumeUpdated | If true, the transparency workspace will be updated. |
| Enlighten::TransparencyWorkspace * m_TransparencyWorkspace | Enlighten intermediate data allocated and owned by the UpdateManager. |
| Geo::GeoArray< bool > m_UseCustomDirectionalVisibility | Array of boolean values indication if the HLRT should use custom provided visibility or recalculate visibility. |
public: virtual BaseAlbedoHandler * AllocateAlbedoHandler()
Allocates an albedo handler.
public: void AllocateInputLightingBuffers()
Allocate the InputLightingBuffers for this system.
public: virtual void AllocatePersistentDataBuffers
(
bool allocateEnvBounceBuffer
)
Allocate the buffers for persistent data (bounce, temporal coherence)
public: virtual void AllocateTransparencyBuffers()
Allocate the transparency buffers.
public: CpuSystem
(
PrecisionHint::Value precision
)
Constructor.
public: virtual void FreeTransparencyBuffer()
Free any transparency buffers.
public: void FreezeInputLighting()
Freeze this systems input lighting.
public: const CpuSystemSolutionSpace * GetCpuSystemSolutionSpace
(
const Geo::s32 index
) const
Returns a solution space in this system.
| index | The index of the solution space. |
public: CpuSystemSolutionSpace * GetCpuSystemSolutionSpace
(
const Geo::s32 index
)
Returns a solution space in this system.
| index | The index of the solution space. |
public: const CpuSystemSolutionSpace * GetCpuSystemSolutionSpace() const
Returns the main solution space in this system.
public: CpuSystemSolutionSpace * GetCpuSystemSolutionSpace()
Returns the main solution space in this system.
public: virtual InputLightingBuffer * GetInputLightingBuffer()
Returns the current input lighting buffer.
public: virtual const InputLightingBuffer * GetInputLightingBuffer() const
Returns the current input lighting buffer.
public: const InputLightingBuffer ** GetInputLightingList() const
Returns the sorted list of inputlightingbuffers to read from.
public: IncidentLightingBuffer * GetLightBankBuffer
(
Geo::s32 lightBankId
)
Returns the input lighting buffer corresponding to the light bank id, creating a new buffer if necessary.
public: virtual IncidentLightingBuffer ** GetLightBankBuffers()
Returns the array of input lighting buffers for the light banks.
public: Geo::s32 GetNumLightBankBuffers()
Returns the number of input lighting buffers for the light banks.
public: const Enlighten::TransparencyWorkspace * GetTransparencyWorkspace() const
Returns the Transparency workspace if Transparency is enabled.
Otherwise return NULL.
public: Enlighten::TransparencyWorkspace * GetTransparencyWorkspace()
Returns the Transparency workspace if Transparency is enabled.
Otherwise return NULL.
public: bool HasAlbedoData()
Property-setting functions which can be enqueued with EnqueueSetObjectParameter.
public: Geo::u32 HashLightingInputs
(
const Enlighten::InputLightingBuffer * environment
)
Returns a hash of the guids for all the input InputLightingBuffers and the environment.
public: bool HasLightingInputsChanged
(
Geo::u32 inputLightingHash
) const
Returns true if the input hash matches the stored hash.
public: bool HasWorkerPropertiesChanged
(
Geo::u32 workerPropertiesHash
) const
Returns true if the input hash matches the stored hash.
public: virtual void InitStaticSystem
(
const Geo::GeoGuid & guid,
InputLightingBuffer * inputLightingBuffer,
Geo::s32 lightChannels
)
Initialise input lighting buffers with static data.
public: bool IsTransparencySampled() const
Returns true if the system includes additional (optional) transparency data.
public: NonCopyable
(
NonCopyable &&
)
Defaulted to allow move.
public: NonCopyable & operator=
(
NonCopyable &&
)
Defaulted to allow move.
public: void PrepareInputLightingList
(
const Geo::GeoArray< const InputLightingBuffer * > & list,
Geo::u32 hash
)
Calculate th InputLightingBuffer list.
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)'
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)'
public: virtual void RemoveLightBankBuffer
(
Geo::s32 lightBankId
)
Removes a cached light bank and frees its resources.
public: virtual void SetAlbedoData
(
Enlighten::SystemAlbedoData albedoData
)
Property-setting functions which can be enqueued with EnqueueSetObjectParameter.
public: void SetBounceScale
(
float s
)
Property-setting functions which can be enqueued with EnqueueSetObjectParameter.
public: void SetCustomDirectionalVisibility
(
void * srcBuffer,
Geo::s32 lightIndex
)
Set a custom directional visibility buffer. Will use precomputed directional vis data in srcBuffer is NULL.
public: void SetDirectionalLightInputScale
(
float s
)
Property-setting functions which can be enqueued with EnqueueSetObjectParameter.
public: virtual void SetDirectionalVisibility
(
const Geo::v128 & visibility,
Geo::s32 lightIndex
)
Update the directional visibility.
public: void SetEmissiveEnvironment
(
Geo::GeoGuid id
)
Property-setting functions which can be enqueued with EnqueueSetObjectParameter.
public: void SetFramesPerUpdate
(
Geo::s32 f
)
Property-setting functions which can be enqueued with EnqueueSetObjectParameter.
public: void SetSystemSolutionSpace
(
ISystemSolutionSpace * solutionSpace
)
Set a single solution space for this system.
public: void SetSystemSolutionSpaces
(
ISystemSolutionSpace *const * solutionSpaces,
const Geo::s32 solutionSpacesCount,
const Geo::s32 indexForBounceResampling
)
Set multiple solution spaces for this system.
The order of the elements in the input array is NOT preserved.
| solutionSpaces | An array of solution spaces with different output pixel sizes. |
|
| solutionSpacesCount | Number of solution spaces in the 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. |
public: void SetTemporalCoherenceThreshold
(
float t
)
Property-setting functions which can be enqueued with EnqueueSetObjectParameter.
public: void SetTransparencyEnabled
(
bool enabled
)
Set whether or not Transparency should be computed in the HLRT.
public: virtual void SetUpdateCounter
(
Geo::s32 c
)
Property-setting functions which can be enqueued with EnqueueSetObjectParameter.
public: void UpdateFrameCounter()
Property-setting functions which can be enqueued with EnqueueSetObjectParameter.
public: virtual void UpdateGpuTexture()
Update textures using the marked solution buffers.
public: void UpdateInputLightingHash
(
Geo::u32 inputLightingHash
)
Update the stored hash with the given hash value.
public: void UpdateWorkerPropertiesHash
(
Geo::u32 workerPropertiesHash
)
Update the stored hash with the given hash value.