This is the documentation for Enlighten.
module Core Runtime System
Classes
Name | Description |
|---|---|
Constitutes the precomputed material data for a system. | |
An EntireProbeSetTask solves an entire set of probes as an atomic block. | |
A class containing the parameters to be used as input to the albedo/emissive/transparency sampling stage. | |
Constitutes the core precomputed data for the input lighting generation for a system. | |
A data block that describes essential properties of an input workspace. | |
The data associated with each non-empty octree node. | |
A pair of probes which can be averaged to produce a 'virtual' probe output. | |
Constitutes the core precomputed data for a cube map. | |
A data block that describes essential properties of a cube map. | |
Structure describing a task to generate a cube map. | |
Facilitates storage of core Enlighten data. | |
Structure describing a task using the irradiance technique. | |
Constitutes the core precomputed data for a probe set. | |
A data block that describes essential properties of a run-time probe set. | |
A Probe task specifies a list of probe points whose lighting values will be calculated when the task is solved. | |
Constitutes the core precomputed data for a system. | |
A data block that describes essential properties of a rad system, including it's id, output and input textures sizes, budget, pixel utilisation and other debugging data. | |
A class containing the parameters to be used as input to the bounce resampling stage. | |
A class containing the parameters to be used if sampling from a texture is required. | |
Structure describing a task which solves directly to the bounce buffer and does not update any textures. |
Functions
Name | Description |
|---|---|
AllLightingInputsStatic(const InputLightingBuffer **, Geo::s32, const InputLightingBuffer *) | Returns true if all of the given light inputs did not change the last time they were updated. |
CalcDirectionalIrradianceMemory(const Enlighten::RadSystemCore *) | Tells you how much memory in a RadSystemCore is used by the directional irradiance technique. |
Tells you how much memory is required to create a DirectionPalette, which is a required input to an Enlighten::EntireProbeSetTask. | |
Tells you how much memory in a RadSystemCore is used by the irradiance technique. | |
CalcRadCubeMapCoreTotalMemory(const Enlighten::RadCubeMapCore *) | Tells you how much memory in total is used by a RadCubeMapCore. |
CalcRadProbeSetCoreTotalMemory(const Enlighten::RadProbeSetCore *) | Tells you how much memory in total is used by a RadProbeSetCore. |
CalcRadSystemCoreTotalMemory(const Enlighten::RadSystemCore *) | Tells you how much memory in total is used by a RadSystemCore. |
CalcRequiredPersistentDataSize(const Enlighten::RadSystemCore *) | Tells you how much memory is required for the intermediate bounce output data for this radiosity core. |
Tells you how much workspace memory is required by SolveCubeMapTask to solve a specific cube map. | |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::InputWorkspace *) | Converts the endian format of a runtime object. |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::RadProbeSetCore *) | Converts the endian format of a runtime object. |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::RadCubeMapCore *) | Converts the endian format of a runtime object. |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::RadSystemCore *) | Converts the endian format of a runtime object. |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::ClusterAlbedoWorkspaceMaterialData *) | Converts the endian format of a runtime object. |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::InputWorkspaceMetaData *) | Converts the endian format of a runtime object. |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::RadCubeMapMetaData *) | Converts the endian format of a runtime object. |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::AlbedoBuffer *) | Converts the endian format of a runtime object. |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::PrecomputedVisibilityData *) | Converts the endian format of a runtime object. |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::DynamicMaterialWorkspace *) | Converts the endian format of a runtime object. |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::IncidentLightingBuffer *) | Converts the endian format of a runtime object. |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::InputLightingBuffer *) | Converts the endian format of a runtime object. |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::RadDataBlock &) | Converts the endian format of a runtime object. |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::RadSystemMetaData *) | Converts the endian format of a runtime object. |
ConvertEndian(Geo::EConvertEndianMode, Enlighten::RadProbeSetMetaData *) | Converts the endian format of a runtime object. |
Create a Direction Palette for use with an EntireProbeSetTask. | |
FreezeEntireProbeSetTask(const Enlighten::EntireProbeSetTask *, void *, Geo::u32 &, Geo::u32 &) | The temporal coherence optimization - if used - requires that all probe sets are kept in sync, so that no changes in lighting are missed. |
The temporal coherence optimisation - if used - requires that all systems are kept in sync, so that no changes in lighting are missed. | |
FreezeIrradianceTask(const Enlighten::RadIrradianceTask *, void *, Geo::u32 &, Geo::u32 &) | The temporal coherence optimization - if used - requires that all systems are kept in sync, so that no changes in lighting are missed. |
Helper function for getting irradiance output format friendly name. | |
Helper function to get the number of bytes/pixel per texture for a given output format. | |
Get the state of the force disable FMA4 support flag. | |
GetInputWorkspaceGUID(const Enlighten::RadCubeMapCore *, Geo::s32) | Returns the GUID of a specific entry in the expected input lighting buffer list. |
GetInputWorkspaceGUID(const Enlighten::RadProbeSetCore *, Geo::s32) | Returns the GUID of a specific entry in the expected input lighting buffer list. |
GetInputWorkspaceGUID(const Enlighten::RadSystemCore *, Geo::s32) | Returns the GUID of a specific entry in the expected input lighting buffer list. |
GetInputWorkspaceGUID(const Enlighten::RadDataBlock *, Geo::s32) | Returns the GUID of a specific entry in the expected input lighting buffer list. |
GetInputWorkspaceListLength(const Enlighten::RadDataBlock *) | Returns the length of the input lighting buffer list expected when solving radiosity using this core data. |
GetInputWorkspaceListLength(const Enlighten::RadSystemCore *) | Returns the length of the input lighting buffer list expected when solving radiosity using this core data. |
GetInputWorkspaceListLength(const Enlighten::RadCubeMapCore *) | Returns the length of the input lighting buffer list expected when solving radiosity using this core data. |
GetInputWorkspaceListLength(const Enlighten::RadProbeSetCore *) | Returns the length of the input lighting buffer list expected when solving radiosity using this core data. |
Returns the number of octree nodes within the specified octree probe set. | |
Returns the number of virtual probes within the specified probe set. | |
Returns a pointer to the array of octree nodes within the specified octree probe set. | |
Returns the number of LODs for the specified octree probe set. | |
GetOctreeNumProbesLod(const Enlighten::RadProbeSetCore *, Geo::u32) | Returns the number of probes within the specified LOD for the specified octree probe set. |
GetOctreeNumVirtualProbesLod(const Enlighten::RadProbeSetCore *, Geo::u32) | Returns the number of virtual probes within the specified LOD for the specified octree probe set. |
GetOctreePppiInstanceCount(const Enlighten::RadProbeSetCore *) | Returns the number of PPPI instances within the specified octree probe set. |
GetOctreePppiInstanceCount(const Enlighten::RadProbeSetCore *, Geo::u32) | Returns the number of PPPI instances within the specified octree probe set at the specified lod. |
GetOctreePppiInstanceProbeIds(const Enlighten::RadProbeSetCore *) | Returns a pointer to the array of PPPI instance probe ids within the specified octree probe set. |
Returns a pointer to the array of PPPI nodes within the specified octree probe set. | |
GetOctreePppiProbeInstances(const Enlighten::RadProbeSetCore *) | Returns a pointer to the array of PPPI probe instances within the specified octree probe set. |
GetOctreePppiTargetCount(const Enlighten::RadProbeSetCore *) | Returns the number of PPPI targets within the specified octree probe set. |
Returns a pointer to the array of PPPI targets within the specified octree probe set. | |
Returns a pointer to the root probes in the specified octree probe set. | |
Function returning the correct optimised solver based on the compilation environment. | |
Returns the size of the output texture required for this radiosity data. | |
Returns the size of the output texture required for this radiosity data. | |
GetProbeEnvironmentVisibility(Geo::s32, const Enlighten::RadProbeSetCore *) | Retrieves the light probe environment visibility for the given probe in the volume probe data. |
GetProbeVisibility(Geo::s32, const Enlighten::RadProbeSetCore *, float *) | Retrieves the light probe visibility for the given probe in the volume probe data. |
Returns a pointer to the array of virtual probes within the specified probe set. | |
HashInputLightingElements(const InputLightingBuffer **, Geo::s32) | Hash the guids and pointers of the InputLightingBuffer array. |
Returns true for formats with a fixed range (0-1). | |
Returns true if the given light input buffer did not change the last time it was updated. | |
Returns TRUE if the probe was culled during precompute. | |
Checks if the given output format enumeration is valid. | |
Places the unordered list of lighting buffers into the correct order for the solver. | |
Places the unordered list of lighting buffers into the correct order for the solver. | |
Places the unordered list of lighting buffers into the correct order for the solver. | |
Places the unordered list of lighting buffers into the correct order for the solver. | |
ResampleBounce(const Enlighten::ResampleBounceParameters &, Geo::u32 &) | After SolveIrradianceTask is run, the ResampleBounce() function populates an Enlighten::BounceBuffer with bounce data. |
Set whether to force disable FMA4 support. | |
SolveBounceBufferTask(const Enlighten::SolveBounceTask *, void *, Geo::u32 &, Geo::u32 &) | Solve the radiosity directly to a bounce buffer only. |
SolveCubeMapTask(const Enlighten::RadCubeMapTask *, void *, Geo::u32 &, Geo::u32 &) | Solve the specified cube map task using a given workspace. |
SolveEntireProbeSetTask(const Enlighten::EntireProbeSetTask *, void *, Geo::u32 &, Geo::u32 &) | Solve the specified EntireProbeSetTask. |
SolveIrradianceTask(const Enlighten::RadIrradianceTask *, void *, Geo::u32 &, Geo::u32 &) | Solve the specified irradiance task using a given workspace. |
SolveProbeTaskL1(const Enlighten::RadProbeTask *, Geo::u32 &) | Solve the specified L1 probe task. |
SolveProbeTaskL2(const Enlighten::RadProbeTask *, Geo::u32 &) | Solve the specified L2 probe task. |
Enums
Name | Description |
|---|---|
Output formats. | |
To support both DX9 and DX11 rendering with the same shader code, the solve functions can output 8-bit-per-pixel texture data in either byte order. | |
Probe Interpolation output formats. | |
Valid data types for use with the RadDataBlock class. | |
Supported Spherical Harmonic types. | |
Valid solver types for use with the RadDataBlock class. |
Typedefs
Name | Description |
|---|---|
IncidentLightingBuffer BounceBuffer | BounceBuffer type used for re-sampling the bounce for feedback into the input lighting. |
bool GEO_CALL Enlighten::AllLightingInputsStatic
public: bool GEO_CALL AllLightingInputsStatic
(
const InputLightingBuffer ** lightingBuffers,
Geo::s32 numLightingBuffers,
const InputLightingBuffer * emissiveEnvironment
)
Returns true if all of the given light inputs did not change the last time they were updated.
This function is called internally by the CPU versions of the task solvers, so long as a positive temporal coherence threshold is specified. However, if is also provided as a public API function so that unnecessary SPU/GPU tasks can be avoided completely.
Parameters
[in] | lightingBuffers | The list of input lighting buffers to check for changes (individual entries can be NULL). |
[in] | numLightingBuffers | The number of input lighting buffers in the list (can be zero). |
[in] | emissiveEnvironment | The (optional) emissive environment to check for changes. |
Returns
Returns TRUE if all inputs are static; FALSE if at least one has changed.
Geo::u32 GEO_CALL Enlighten::CalcDirectionalIrradianceMemory
public: Geo::u32GEO_CALL CalcDirectionalIrradianceMemory
(
const Enlighten::RadSystemCore * radCore
)
Tells you how much memory in a RadSystemCore is used by the directional irradiance technique.
This is provided for information purposes only (it doesn't relate to any memory buffer requirement).
Parameters
[in] | radCore | A non-null pointer to a valid RadSystemCore object. |
Returns
Required memory in bytes, 0xFFFFFFFF upon error.
Geo::u32 GEO_CALL Enlighten::CalcDirectionPaletteSize
public: Geo::u32GEO_CALL CalcDirectionPaletteSize()
Tells you how much memory is required to create a DirectionPalette, which is a required input to an Enlighten::EntireProbeSetTask.
Returns
Required memory in bytes, 0xFFFFFFFF upon error.
Geo::u32 GEO_CALL Enlighten::CalcIrradianceMemory
public: Geo::u32GEO_CALL CalcIrradianceMemory
(
const Enlighten::RadSystemCore * radCore
)
Tells you how much memory in a RadSystemCore is used by the irradiance technique.
This is provided for information purposes only (it doesn't relate to any memory buffer requirement).
Parameters
[in] | radCore | A non-null pointer to a valid RadSystemCore object. |
Returns
Required memory in bytes, 0xFFFFFFFF upon error.
Geo::u32 GEO_CALL Enlighten::CalcRadCubeMapCoreTotalMemory
public: Geo::u32GEO_CALL CalcRadCubeMapCoreTotalMemory
(
const Enlighten::RadCubeMapCore * radCubeMapCore
)
Tells you how much memory in total is used by a RadCubeMapCore.
This is provided for information purposes only (it doesn't relate to any memory buffer requirement). It is simply the sum of the memory used by each of the RadDataBlocks and the RadCubeMapCore itself.