Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

class Enlighten::CpuSystem

    └>Enlighten::BaseSystem
        └>Geo::IGeoReleasable

System for the CPU solver.

Functions

NameDescription
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.

GetTextureUpdateTicks()

Get the number of ticks spent updating GPU textures.

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.

IsStatic()

Returns true if the system is static.

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.

Variables

NameDescription
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.

Geo::s64 m_TextureUpdateTicks

CPU ticks taken to update the texture.

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.


Anchor
a3bcf7948ac0110bd1d9371978c7b4f32
a3bcf7948ac0110bd1d9371978c7b4f32

virtual BaseAlbedoHandler* Enlighten::CpuSystem::AllocateAlbedoHandler

...

public: virtual BaseAlbedoHandler * AllocateAlbedoHandler()

...

Allocates an albedo handler.


Anchor
a76575e5bcf08b7c7152d850950134942
a76575e5bcf08b7c7152d850950134942

void Enlighten::CpuSystem::AllocateInputLightingBuffers

...

public: void AllocateInputLightingBuffers()

...

Allocate the InputLightingBuffers for this system.


Anchor
a7ab0e05ab94219c2131fa4a6dabbbbb9
a7ab0e05ab94219c2131fa4a6dabbbbb9

virtual void Enlighten::CpuSystem::AllocatePersistentDataBuffers

...

public: virtual void AllocatePersistentDataBuffers
(
    bool allocateEnvBounceBuffer
)

...

Allocate the buffers for persistent data (bounce, temporal coherence)


Anchor
a1e39d423ecd06b7f793eb21fb5c6c94f
a1e39d423ecd06b7f793eb21fb5c6c94f

virtual void Enlighten::CpuSystem::AllocateTransparencyBuffers

...

public: virtual void AllocateTransparencyBuffers()

...

Allocate the transparency buffers.


Anchor
af89c7bb390a77f89b644bfc747584be8
af89c7bb390a77f89b644bfc747584be8

Enlighten::CpuSystem::CpuSystem

...

public: CpuSystem
(
    PrecisionHint::Value precision
)

...

Constructor.


Anchor
a7e3fec2d416a871f92a12486196dcc36
a7e3fec2d416a871f92a12486196dcc36

virtual void Enlighten::CpuSystem::FreeTransparencyBuffer

...

public: virtual void FreeTransparencyBuffer()

...

Free any transparency buffers.


Anchor
a185e4a7b46c660d41660bd15eda04e84
a185e4a7b46c660d41660bd15eda04e84

void Enlighten::CpuSystem::FreezeInputLighting

...

public: void FreezeInputLighting()

...

Freeze this systems input lighting.


Anchor
a6ad96d8f0842a8ccf743b028d0701d39
a6ad96d8f0842a8ccf743b028d0701d39

const CpuSystemSolutionSpace* Enlighten::CpuSystem::GetCpuSystemSolutionSpace

...

public: const CpuSystemSolutionSpace * GetCpuSystemSolutionSpace
(
    const Geo::s32 index
) const

...

Returns a solution space in this system.

Parameters
index

The index of the solution space.


Anchor
af74f420c8672bf9b5a684667281b7c81
af74f420c8672bf9b5a684667281b7c81

CpuSystemSolutionSpace* Enlighten::CpuSystem::GetCpuSystemSolutionSpace

...

public: CpuSystemSolutionSpace * GetCpuSystemSolutionSpace
(
    const Geo::s32 index
)

...

Returns a solution space in this system.

Parameters
index

The index of the solution space.


Anchor
af6ff662620279c7ada5c1acde889199d
af6ff662620279c7ada5c1acde889199d

const CpuSystemSolutionSpace* Enlighten::CpuSystem::GetCpuSystemSolutionSpace

...

public: const CpuSystemSolutionSpace * GetCpuSystemSolutionSpace() const

...

Returns the main solution space in this system.


Anchor
a5df4bea61f58ea89c093d47c8962d8af
a5df4bea61f58ea89c093d47c8962d8af

CpuSystemSolutionSpace* Enlighten::CpuSystem::GetCpuSystemSolutionSpace

...

public: CpuSystemSolutionSpace * GetCpuSystemSolutionSpace()

...

Returns the main solution space in this system.


Anchor
a6fdb5e624ebbaebf4119d08b855cb0eb
a6fdb5e624ebbaebf4119d08b855cb0eb

virtual InputLightingBuffer* Enlighten::CpuSystem::GetInputLightingBuffer

...

public: virtual InputLightingBuffer * GetInputLightingBuffer()

...

Returns the current input lighting buffer.


Anchor
a71d104e497f7cff9c5733fc9677a943e
a71d104e497f7cff9c5733fc9677a943e

virtual const InputLightingBuffer* Enlighten::CpuSystem::GetInputLightingBuffer

...

public: virtual const InputLightingBuffer * GetInputLightingBuffer() const

...

Returns the current input lighting buffer.


Anchor
a224364f9259a9e42c797aaed6a44fea0
a224364f9259a9e42c797aaed6a44fea0

const InputLightingBuffer** Enlighten::CpuSystem::GetInputLightingList

...

public: const InputLightingBuffer ** GetInputLightingList() const

...

Returns the sorted list of inputlightingbuffers to read from.


Anchor
aa9a617a0013a8f9e761532cd3c422ed8
aa9a617a0013a8f9e761532cd3c422ed8

IncidentLightingBuffer* Enlighten::CpuSystem::GetLightBankBuffer

...

public: IncidentLightingBuffer * GetLightBankBuffer
(
    Geo::s32 lightBankId
)

...

Returns the input lighting buffer corresponding to the light bank id, creating a new buffer if necessary.


Anchor
a5141f42ffb76b32a6d9938d2fa84952f
a5141f42ffb76b32a6d9938d2fa84952f

virtual IncidentLightingBuffer** Enlighten::CpuSystem::GetLightBankBuffers

...

public: virtual IncidentLightingBuffer ** GetLightBankBuffers()

...

Returns the array of input lighting buffers for the light banks.


Anchor
a1988c8e00cb15438835046106ac607ba
a1988c8e00cb15438835046106ac607ba

Geo::s32 Enlighten::CpuSystem::GetNumLightBankBuffers

...

public: Geo::s32 GetNumLightBankBuffers()

...

Returns the number of input lighting buffers for the light banks.


Anchor
a0105a927eb455df254a257bb7b401829
a0105a927eb455df254a257bb7b401829

virtual Geo::s64 Enlighten::CpuSystem::GetTextureUpdateTicks

...

public: virtual Geo::s64 GetTextureUpdateTicks() const

...

Get the number of ticks spent updating GPU textures.


Anchor
ab76fbeaf932d3a024d5e4152cfbc2eba
ab76fbeaf932d3a024d5e4152cfbc2eba

const Enlighten::TransparencyWorkspace* Enlighten::CpuSystem::GetTransparencyWorkspace

...

public: const Enlighten::TransparencyWorkspace * GetTransparencyWorkspace() const

...

Returns the Transparency workspace if Transparency is enabled.

Otherwise return NULL.


Anchor
ac897d9fd58e08275fd302e1758faffae
ac897d9fd58e08275fd302e1758faffae

Enlighten::TransparencyWorkspace* Enlighten::CpuSystem::GetTransparencyWorkspace

...

public: Enlighten::TransparencyWorkspace * GetTransparencyWorkspace()

...

Returns the Transparency workspace if Transparency is enabled.

Otherwise return NULL.


Anchor
ab33035410b1cb9d41f342e201681b612
ab33035410b1cb9d41f342e201681b612

bool Enlighten::BaseSystem::HasAlbedoData

...

public: bool HasAlbedoData()

...

Property-setting functions which can be enqueued with EnqueueSetObjectParameter.


Anchor
a9db1c50839a631e9ea2ca816fcb2f630
a9db1c50839a631e9ea2ca816fcb2f630

Geo::u32 Enlighten::CpuSystem::HashLightingInputs

...

public: Geo::u32 HashLightingInputs
(
    const Enlighten::InputLightingBuffer * environment
)

...

Returns a hash of the guids for all the input InputLightingBuffers and the environment.


Anchor
a3684599b0e66dc82610560d6121b4c4c
a3684599b0e66dc82610560d6121b4c4c

bool Enlighten::CpuSystem::HasLightingInputsChanged

...

public: bool HasLightingInputsChanged
(
    Geo::u32 inputLightingHash
) const

...

Returns true if the input hash matches the stored hash.


Anchor
a14b21eeee4757478a07510c2e8140360
a14b21eeee4757478a07510c2e8140360

bool Enlighten::CpuSystem::HasWorkerPropertiesChanged

...

public: bool HasWorkerPropertiesChanged
(
    Geo::u32 workerPropertiesHash
) const

...

Returns true if the input hash matches the stored hash.


Anchor
a86515f7bd10d05bc8a85a07d197cc20f
a86515f7bd10d05bc8a85a07d197cc20f

virtual void Enlighten::CpuSystem::InitStaticSystem

...

public: virtual void InitStaticSystem
(
    const Geo::GeoGuid & guid,
    InputLightingBuffer * inputLightingBuffer,
    Geo::s32 lightChannels
)

...

Initialise input lighting buffers with static data.


Anchor
a12509232ecf04cd2a5512c02509c4fcd
a12509232ecf04cd2a5512c02509c4fcd

virtual bool Enlighten::CpuSystem::IsStatic

...

public: virtual bool IsStatic()

...

Returns true if the system is static.


Anchor
ae58f53afb8a3e39fb84363ac08197a4f
ae58f53afb8a3e39fb84363ac08197a4f

bool Enlighten::CpuSystem::IsTransparencySampled

...

public: bool IsTransparencySampled() const

...

Returns true if the system includes additional (optional) transparency data.


Anchor
adaed81b4c59f263dcb4e78c4126f4683
adaed81b4c59f263dcb4e78c4126f4683

Geo::NonCopyable::NonCopyable

...

public: NonCopyable
(
    NonCopyable &&
)

...

Defaulted to allow move.


Anchor
a6abc781e23b8f4864e0b868806e0acbf
a6abc781e23b8f4864e0b868806e0acbf

NonCopyable& Geo::NonCopyable::operator=

...

public: NonCopyable & operator=
(
    NonCopyable &&
)

...

Defaulted to allow move.


Anchor
a1e439b20e5eef99a204b0cfd85874368
a1e439b20e5eef99a204b0cfd85874368

void Enlighten::CpuSystem::PrepareInputLightingList

...

public: void PrepareInputLightingList
(
    const Geo::GeoArray< const InputLightingBuffer * > & list,
    Geo::u32 hash
)

...

Calculate th InputLightingBuffer list.


Anchor
af6bdf30b42adde386c428e9dc2821eb9
af6bdf30b42adde386c428e9dc2821eb9

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)'


Anchor
a01e0e5ec00c20daac7457ed3c6797608
a01e0e5ec00c20daac7457ed3c6797608

virtual void Enlighten::BaseSystem::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)'


Anchor
a3d7706d75c314349a5bf912c056e6f8c
a3d7706d75c314349a5bf912c056e6f8c

virtual void Enlighten::CpuSystem::RemoveLightBankBuffer

...

public: virtual void RemoveLightBankBuffer
(
    Geo::s32 lightBankId
)

...

Removes a cached light bank and frees its resources.


Anchor
a846f31d98fe9fcfcc5657a6341862ddf
a846f31d98fe9fcfcc5657a6341862ddf

virtual void Enlighten::BaseSystem::SetAlbedoData

...

public: virtual void SetAlbedoData
(
    Enlighten::SystemAlbedoData albedoData
)

...

Property-setting functions which can be enqueued with EnqueueSetObjectParameter.


Anchor
a9c40b9c758a991084ca4c47b619f75d2
a9c40b9c758a991084ca4c47b619f75d2

void Enlighten::BaseSystem::SetBounceScale

...

public: void SetBounceScale
(
    float s
)

...

Property-setting functions which can be enqueued with EnqueueSetObjectParameter.


Anchor
a36052999508c8050d7d646c5a5edd70b
a36052999508c8050d7d646c5a5edd70b

void Enlighten::CpuSystem::SetCustomDirectionalVisibility

...

public: void SetCustomDirectionalVisibility
(
    void * srcBuffer,
    Geo::s32 lightIndex
)

...

Set a custom directional visibility buffer. Will use precomputed directional vis data in srcBuffer is NULL.


Anchor
ad7bfcd3f82bbda2b89f0df08dba32c28
ad7bfcd3f82bbda2b89f0df08dba32c28

void Enlighten::BaseSystem::SetDirectionalLightInputScale

...

public: void SetDirectionalLightInputScale
(
    float s
)

...

Property-setting functions which can be enqueued with EnqueueSetObjectParameter.


Anchor
aa29bc9010c4b777a810d4770148abf11
aa29bc9010c4b777a810d4770148abf11

virtual void Enlighten::CpuSystem::SetDirectionalVisibility

...

public: virtual void SetDirectionalVisibility
(
    const Geo::v128 & visibility,
    Geo::s32 lightIndex
)

...

Update the directional visibility.


Anchor
a7f5649461c5210114430c2c1505896b9
a7f5649461c5210114430c2c1505896b9

void Enlighten::BaseSystem::SetEmissiveEnvironment

...

public: void SetEmissiveEnvironment
(
    Geo::GeoGuid id
)

...

Property-setting functions which can be enqueued with EnqueueSetObjectParameter.


Anchor
a266dfc3bc543917550778150f0a816a8
a266dfc3bc543917550778150f0a816a8

void Enlighten::BaseSystem::SetFramesPerUpdate

...

public: void SetFramesPerUpdate
(
    Geo::s32 f
)

...

Property-setting functions which can be enqueued with EnqueueSetObjectParameter.


Anchor
ad17d6dbd419a41b0d90635fb5400d26f
ad17d6dbd419a41b0d90635fb5400d26f

void Enlighten::BaseSystem::SetSystemSolutionSpace

...

public: void SetSystemSolutionSpace
(
    ISystemSolutionSpace * solutionSpace
)

...

Set a single solution space for this system.


Anchor
ac4509bd946728f651782e9c18fc61d06
ac4509bd946728f651782e9c18fc61d06

void Enlighten::BaseSystem::SetSystemSolutionSpaces

...

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.

Parameters
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.


Anchor
a79b6ce43f0bb5e6fdb7afd6ba91246db
a79b6ce43f0bb5e6fdb7afd6ba91246db

void Enlighten::BaseSystem::SetTemporalCoherenceThreshold

...

public: void SetTemporalCoherenceThreshold
(
    float t
)

...

Property-setting functions which can be enqueued with EnqueueSetObjectParameter.


Anchor
a03db85d099730ed19e184635dc33f437
a03db85d099730ed19e184635dc33f437

void Enlighten::BaseSystem::SetTransparencyEnabled

...

public: void SetTransparencyEnabled
(
    bool enabled
)

...

Set whether or not Transparency should be computed in the HLRT.


Anchor
a1ccc61845ec306045013dd74c65776c3
a1ccc61845ec306045013dd74c65776c3

virtual void Enlighten::BaseSystem::SetUpdateCounter

...

public: virtual void SetUpdateCounter
(
    Geo::s32 c
)

...

Property-setting functions which can be enqueued with EnqueueSetObjectParameter.


Anchor
ad75d8d98ec027bbf5843a27ba19ff115
ad75d8d98ec027bbf5843a27ba19ff115

void Enlighten::BaseSystem::UpdateFrameCounter

...

public: void UpdateFrameCounter()

...

Property-setting functions which can be enqueued with EnqueueSetObjectParameter.


Anchor
a0874601bbe142709957f2f6b2a9b4174
a0874601bbe142709957f2f6b2a9b4174

virtual void Enlighten::CpuSystem::UpdateGpuTexture

...

public: virtual void UpdateGpuTexture()

...

Update textures using the marked solution buffers.


Anchor
a6d0ae102b7834a3b3d05ad33d7e07c01
a6d0ae102b7834a3b3d05ad33d7e07c01

void Enlighten::CpuSystem::UpdateInputLightingHash

...

public: void UpdateInputLightingHash
(
    Geo::u32 inputLightingHash
)

...

Update the stored hash with the given hash value.


Anchor
a27cf9b8462e53318df07055b98bd7254
a27cf9b8462e53318df07055b98bd7254

void Enlighten::CpuSystem::UpdateWorkerPropertiesHash

...

public: void UpdateWorkerPropertiesHash
(
    Geo::u32 workerPropertiesHash
)

...

Update the stored hash with the given hash value.