...
Name | Description | ||
---|---|---|---|
const Geo::u64 DEFAULT_WORKER_THREAD_AFFINITY = Geo::g_MaxU64 | Constant defining the default affinity for the worker thread of a MultithreadCpuWorker. | ||
const float g_DependencyVisibilityThresholdDefault = 1.f / (1 << 8) | By default, do not consider a system as a dependency if its visibility is smaller than this threshold. | ||
const Geo::s32 g_MaxLightDataStackDepth = 6 | This is the number of copies of lightcount pointers we have in the LightDataStack member of InputWorkspaceData in the lighting internals. | ||
const Geo::u32 g_OctreeProbeBorder = 0xfffffffe0xfffffe | This probe index refers to a border probe. | ||
const Geo::u32 g_OctreeProbeCulled = 0xffffffff0xffffff | This probe index refers to a culled probe. | const Geo::u32 g_OctreeProbeIndexMask = 0x7fffffff | Mask the bits which contain an index into the probe set. |
const Geo::u32 g_RadMagicNumber = 0xAD105174 | Arbitrary number that is used to check that the object is of correct type (and endian-ness). | ||
const Geo::v128 g_VFalloffInvSamples = Geo::VBroadcast(1.0f / (InputLightFalloffTable::g_SampleCount - 2.0f)) | Light falloff constants for the function: index = (((samples - 1.0) / (samples - 2.0)) / (1.0 / (samples - 2.0) + d * d);. | ||
const Geo::v128 g_VFalloffNumSamples = Geo::VBroadcast(float(InputLightFalloffTable::g_SampleCount)) | Light falloff constants for the function: index = (((samples - 1.0) / (samples - 2.0)) / (1.0 / (samples - 2.0) + d * d);. | ||
const Geo::v128 g_VFalloffSampleFraction = Geo::VBroadcast((InputLightFalloffTable::g_SampleCount - 1.0f) / (InputLightFalloffTable::g_SampleCount - 2.0f)) | Light falloff constants for the function: index = (((samples - 1.0) / (samples - 2.0)) / (1.0 / (samples - 2.0) + d * d);. | ||
const Geo::s32 INFINITE_UPDATES = -1 | Set the update counter for a system to this value to request continuous updates. | ||
void *const LIGHT_VISIBILITY_DISABLED = (void*)1 | Equivalent to light visibility data with all bits set to 0. | ||
const PppiProbeSetHandle PppiProbeSetHandleInvalid = PppiProbeSetHandle(-1) | A special handle value indicating an invalid handle. | ||
const WorldAxis WorldAxisInvalid = WorldAxis(6) | A special value indicating an invalid world axis. |
...
...
Enqueue function pointer 1 param.
Anchor | ||||
---|---|---|---|---|
|
void Enlighten::EnqueueWorkerCommand
...
public: void EnqueueWorkerCommand
(
  IUpdateManager * updateManager,
  typename FunctionPointer3< FunctionPointer2< Param1Type, Param2Type , Param3Type >::CallbackType callback,
  Param1Type input1,
  Param2Type input2,
  Param3Type input3
)
...
Enqueue function pointer 3 2 param.
Anchor | ||||
---|---|---|---|---|
|
...
Enqueue function pointer 0 param
Anchor | ||||
---|---|---|---|---|
|
void Enlighten::EnqueueWorkerCommand
...
public: void EnqueueWorkerCommand
(
  IUpdateManager * updateManager,
  typename FunctionPointer2< FunctionPointer3< Param1Type, Param2Type, Param3Type >::CallbackType callback,
  Param1Type input1,
  Param2Type input2,
  Param3Type input3
)
...
Enqueue function pointer 2 3 param.
Anchor | ||||
---|---|---|---|---|
|
...
0 if successful, otherwise a non-zero value.
Anchor | ||||
---|---|---|---|---|
|
bool GEO_CALL Enlighten::
...
ExtractOctreeDisplacedProbes
...
public: bool GEO_CALL ExtractOctreeProbePositionsExtractOctreeDisplacedProbes
(
  const RadProbeSetCore * core,
  Geo::v128 * positions,
  Geo::u32 count
)
...
Extract the first n displaced probe positions within the specified RadProbeSetCore.
For debugging only. Use GetOctreeProbePositionCount GetOctreeDisplacedProbeCount to obtain the total number of probe positions that can be extracted. Real probes appear first in the array, followed by virtual probes, followed by nonexistent probes. The W coordinate of a nonexistent probe indicates its type:
...
The position of a culled probe has W == -1
...
The position of a border probe has W == -2
...
The XYZ coordinates are the offset by which the probe was displaced. The W coordinate is the index of the probe that was displaced.
Parameters
[in] | core | A RadProbeSetCore containing a probe set created by automatic probe placement. |
[in] | positions | An array large enough to store the desired subset of probes. |
[in] | count | The number of entries in the positions array. |
Anchor | ||||
---|---|---|---|---|
|
bool GEO_CALL Enlighten::
...
ExtractOctreeProbePositions
...
public: bool GEO_CALL FindDebugClusterInfoExtractOctreeProbePositions
(
  RadDebugPixelInfo const RadProbeSetCore * infoOutcore,
  Geo::s32 clusterIndexv128 * positions,
  const RadSystemCore * radCore
)Fill in Geo::u32 count
)
...
Extract the first n probe positions within the specified RadProbeSetCore.
For debugging only. Use GetOctreeProbePositionCount to obtain the total number of probe positions that can be extracted. Real probes appear first in the array, followed by virtual probes, followed by nonexistent probes. The W coordinate of a nonexistent probe indicates its type:
The position of a culled probe has W == -1
The position of a border probe has W == -2
The W coordinate of a referenced probe is the index of the real or virtual probe to which it refers.
Parameters
[in] core A RadProbeSetCore containing a probe set created by automatic probe placement.
[in] positions An array large enough to store the desired subset of probes.
[in] count The number of entries in the positions array.
Anchor | ||||
---|---|---|---|---|
|
bool GEO_CALL Enlighten::FindDebugClusterInfo
...
public: bool GEO_CALL FindDebugClusterInfo
(
  RadDebugPixelInfo * infoOut,
  Geo::s32 clusterIndex,
  const RadSystemCore * radCore
)
...
Fill in a RadDebugPixelInfo for a specified leaf cluster index (for internal debugging purposes).
...
Returns a search result containing information about the node containing the specified point.
Parameters
[in] | core | A RadProbeSetCore containing a probeset created by automatic probe placement. |
[in] | point | The world space location at which to search. |
[in] | lod | LOD to use when searching the octree nodes. |
...
Nevertheless, some probe sets can be updated less frequently than others by using the Freeze functions in place of a solve. FreezeEntireProbeSetTask performs the minimal housekeeping required to keep track of light changes for the temporal optimization - no output SH coefficients are updated. The input parameters are exactly the same as for SolveEntireProbeSetTask.
Parameters
[in] | task | A valid pointer to the probe task structure to freeze. |
[in] | workspace | A valid pointer to a block of memory to use as a workspace which must be at least as big as m_RequiredWorkspaceSize in the core meta data. |
[out] | timeUs | Number of microseconds it took to freeze the task. |
[out] | numSolvedProbes | Number of probes solved in the task. This will always be 0. |
...
Nevertheless, some systems can be updated less frequently than others by using the Freeze functions in place of a solve. FreezeInputLightingBuffer marks an input lighting buffer as frozen. Other systems reading this buffer then recognise that the input hasn't changed. (Neglecting to freeze buffers won't cause visual artefacts, but will result in performing more recalculations than necessary.)
Parameters
[in] | lightingBuffer | The input lighting buffer to mark as frozen. |
...
Nevertheless, some systems can be updated less frequently than others by using the Freeze functions in place of a solve. FreezeIrradianceTask performs the minimal housekeeping required to keep track of light changes for the temporal optimization - no output textures are updated. The input parameters are exactly the same as for SolveIrradianceTask.
Parameters
[in] | task | A valid pointer to the irradiance task structure to freeze. |
[in] | workspace | A valid pointer to a block of memory to use as a workspace which must be at least as big as m_RequiredWorkspaceSize in the core meta data. |
[out] | timeUs | Number of microseconds it took to freeze the task. |
[out] | numSolvedPixels | Number of output pixels solved in the task. This will always be 0. |
[out] | environmentOnly | Use in combination with environment only bounce solve. |
...
Light falloff is smoothly biased to zero as it approaches the cutoff.
Parameters
[out] | lightTable | The Input Light Falloff Table to write to. |
[in] | lightFalloffDistance | The falloff distance the light table will represent, typically (m_Cutoff - m_Radius), must be > 0. |
[in] | lightRadius | The radius of the simulated light source, typically m_Radius or 1.0, must be > 0. |
...
Helper function that generates a falloff table compatible with the Unity light falloff model.
Parameters
[out] | lightTable | The input light falloff table to write to. |
...
Helper function that generates a Falloff Table compatible with the Unreal light falloff model.
Parameters
[out] | lightTable | The Input Light Falloff Table to write to. |
[in] | falloffExponent | The falloff exponent of the light, must be > 0. |
...
Returns the size of the specified BounceBuffer object.
Parameters
[in] | bounceBuffer | The BounceBuffer to query. |
[in] | precision | The hint to what floating point precision to use. |
...
Get system id from BounceBuffer.
Parameters
[in] | bounceBuffer | The BounceBuffer to query. |
...
The length of the returned array can be found using GetClusterAlbedoWorkspaceNumMaterials().
Parameters
[in] | materialData | The albedo workspace material data to query. |
...
Returns the number of material Ids referenced by this albedo workspace.
Parameters
[in] | materialData | The albedo workspace material data to query. |
...
Get the cluster albedo value of a debug point from an AlbedoBuffer.
Parameters
[in] | debugClusterIdx | Index of the cluster |
[in] | albedoBuffer | The input AlbedoBuffer to query. |
[out] | outValue | The value in the buffer for the given debug point. returns true on success or false if an error occured. |
...
Get the cluster emissive value of a debug point from an EmissiveBuffer.
Parameters
[in] | debugClusterIdx | Index of the cluster |
[in] | emissiveBuffer | The input EmissiveBuffer to query. |
[out] | outValue | The value in the buffer for the given debug point. returns true on success or false if an error occured. |
...
Get the cluster transparency value of a debug point from an TransparencyBuffer.
Parameters
[in] | debugClusterIdx | Index of the cluster |
[in] | transparencyBuffer | The input TransparencyBuffer to query. |
[out] | outValue | The value in the buffer for the given debug point. returns true on success or false if an error occured. |
...
Returns the size of the specified IncidentLightingBuffer object.
Parameters
[in] | incidentLightingBuffer | The IncidentLightingBuffer to query. |
[in] | precision | The hint to what floating point precision to use. |
...
Get system id from IncidentLightingBuffer.
Parameters
[in] | incidentLightingBuffer | The IncidentLightingBuffer to query. |
...
Returns the size of the specified InputLightingBuffer object.
Parameters
[in] | inputLightingBuffer | The InputLightingBuffer to query. |
...
Get system id from InputLightingBuffer.
Parameters
[in] | inputLightingBuffer | The InputLightingBuffer to query. |
...
Does not include lighting.
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoGuid GEO_CALL Enlighten::GetInputWorkspaceGUID
...
public: Geo::GeoGuidGEO_CALL GetInputWorkspaceGUID
(
  const Enlighten::RadProbeSetCoreRadSystemCore * coreData,
  Geo::s32 index
)
...
Returns the GUID of a specific entry in the expected input lighting buffer list.
Parameters
[in] | coreData | The core data to query. |
[in] | index | The index of the system to query. Must be >= 0 and less than the length returned by GetInputWorkspaceListLength. |
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoGuid GEO_CALL Enlighten::GetInputWorkspaceGUID
...
public: Geo::GeoGuidGEO_CALL GetInputWorkspaceGUID
(
  const Enlighten::RadSystemCoreRadCubeMapCore * coreData,
  Geo::s32 index
)
...
Returns the GUID of a specific entry in the expected input lighting buffer list.
Parameters
[in] | coreData | The core data to query. |
[in] | index | The index of the system to query. Must be >= 0 and less than the length returned by GetInputWorkspaceListLength. |
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoGuid GEO_CALL Enlighten::GetInputWorkspaceGUID
...
public: Geo::GeoGuidGEO_CALL GetInputWorkspaceGUID
(
  const Enlighten::RadDataBlockRadProbeSetCore * dataBlockcoreData,
  Geo::s32 index
)
...
Returns the GUID of a specific entry in the expected input lighting buffer list.
Parameters
[in] | dataBlockcoreData | The precomputed data block for the task. This should be RadSystemCore::m_RadiosityPrecomp (for RadIrradianceTask); RadProbeSetCore::m_ProbeSetPrecomp (for RadProbeTask); RadProbeSetCore::m_EntireProbeSetPrecomp (for EntireProbeSetTask; or RadCubeMapCore::m_ClusterCubeMapPrecomp (for RadCubeMapTask). core data to query. |
[in] | index | The index of the system to query. Must be >= 0 and less than the length returned by GetInputWorkspaceListLength. |
Returns
...
. |
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoGuid GEO_CALL Enlighten::GetInputWorkspaceGUID
...
public: Geo::GeoGuidGEO_CALL GetInputWorkspaceGUID
(
  const Enlighten::RadCubeMapCoreRadDataBlock * coreDatadataBlock,
  Geo::s32 index
)
...
Returns the GUID of a specific entry in the expected input lighting buffer list.
Parameters
[in] | coreDatadataBlock | The core data to queryprecomputed data block for the task. This should be RadSystemCore::m_RadiosityPrecomp (for RadIrradianceTask); RadProbeSetCore::m_ProbeSetPrecomp (for RadProbeTask); RadProbeSetCore::m_EntireProbeSetPrecomp (for EntireProbeSetTask; or RadCubeMapCore::m_ClusterCubeMapPrecomp (for RadCubeMapTask). |
[in] | index | The index of the system to query. Must be >= 0 and less than the length returned by GetInputWorkspaceListLength. |
Returns
The GUID of the entry, or GeoGuid::Invalid if out of range, or input invaild.
Anchor | ||||
---|---|---|---|---|
|
...
This reports all the instance GUIDs this system saw and recorded during the precompute. You must pass an array that is at least as large as the number reported by GetInputWorkspaceInstanceGuids(). Note that it can succeed not have written anything out if there is a valid projection block, but it's empty. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.
Parameters
[in] | inputWorkspace | The input workspace to use. |
[out] | instanceIdsOut | A pointer to an array of GeoGuid to receive the instance GUIDs. Must not be null and at least as long as GetInputWorkspaceNumInstanceGuids(). |
Anchor | ||||
---|---|---|---|---|
|
Geo::s32 GEO_CALL Enlighten::GetInputWorkspaceListLength
...
public: Geo::s32GEO_CALL GetInputWorkspaceListLength
(
  const Enlighten::RadProbeSetCoreRadSystemCore * probeSetCorecoreSystem
)
...
Returns the length of the input lighting buffer list expected when solving radiosity using this core data.
E.g. the number of pointers in m_InputLighting in RadIrradianceTask, or RadProbeTask. (In older versions of the API, the input lighting data was part of the input workspace object, which has resulted in some confusing terminology.)
Anchor | ||||
---|---|---|---|---|
|
Geo::s32 GEO_CALL Enlighten::GetInputWorkspaceListLength
...
public: Geo::s32GEO_CALL GetInputWorkspaceListLength
(
  const Enlighten::RadSystemCoreRadCubeMapCore * coreSystemcoreCubeMap
)
...
Returns the length of the input lighting buffer list expected when solving radiosity using this core data.
E.g. the number of pointers in m_InputLighting in RadIrradianceTask, or RadProbeTask. (In older versions of the API, the input lighting data was part of the input workspace object, which has resulted in some confusing terminology.)
Anchor | ||||
---|---|---|---|---|
|
Geo::s32 GEO_CALL Enlighten::GetInputWorkspaceListLength
...
public: Geo::s32GEO_CALL GetInputWorkspaceListLength
(
  const Enlighten::RadCubeMapCoreRadProbeSetCore * coreCubeMapprobeSetCore
)
...
Returns the length of the input lighting buffer list expected when solving radiosity using this core data.
...
E.g. the number of pointers in m_InputLighting in RadIrradianceTask, RadProbeTask, EntireProbeSetTask or RadCubeMapTask.
Parameters
[in] | dataBlock | The precomputed data block for the task. This should be RadSystemCore::m_RadiosityPrecomp (for RadIrradianceTask); RadProbeSetCore::m_ProbeSetPrecomp (for RadProbeTask); RadProbeSetCore::m_EntireProbeSetPrecomp (for EntireProbeSetTask; or RadCubeMapCore::m_ClusterCubeMapPrecomp (for RadCubeMapTask). |
...
This is effectively the largest number that can be returned by GetInputWorkspaceNumProjectedPointsInInstance() Useful if you want to allocate one buffer up front that will always be large enough to accept results. Note that it can succeed and return 0 if there is a valid projection block, but it's empty. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.
Parameters
[in] | inputWorkspace | The input workspace to use. |
[out] | maxPointsOut | A pointer to an s32 to receive the number of points. Must not be null. |
...
This is effectively the largest number that can be returned by GetInputWorkspaceNumVersionsInInstance() Useful if you want to allocate one buffer up front that will always be large enough to accept results. Note that it can succeed and return 0 if there is a valid projection block, but it's empty. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.
Parameters
[in] | inputWorkspace | The input workspace to use. |
[out] | maxVersionsOut | A pointer to an s32 to receive the number of versions. Must not be null. |
...
The array should be big enough to hold one vector for each point in the input workspace. The number of points is returned by GetNumberOfPointsInInputWorkspace().
Parameters
[in] | inputWorkspace | The input workspace to use. |
[out] | normalsOut | Pointer to an array of vectors to write the normals to. |
...
This is a record of all the instance GUIDs this system saw and recorded during the precompute. It's also the length of the array required by GetInputWorkspaceInstanceGuids() Note that it can succeed and set numInstanceGuidsOut to 0 if there is a valid projection block, but it's empty. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.
Parameters
[in] | inputWorkspace | The input workspace to use. |
[out] | numInstanceGuidsOut | A pointer to an s32 to receive the number of instance GUIDs. Must not be null. |
...
The points inside an input workspace are ordered and grouped by cluster, so you can identify which point belongs it which cluster from this information. You can also produce this information from GetInputWorkspaceDebugPoint() and GetInputWorkspaceLitDebugPoint(), but this implementation would be more efficient.
Parameters
[in] | inputWorkspace | A valid input workspace. |
[in] | numPointsPerClusterArray | The array to fill. Must be at least as long as that returned by GetNumberOfClustersInInputWorkspace() |
...
If the instanceGuid is recognised (i.e. it was seen by the precompute), and versions exist for it, then numPointsOut will be set to the number of points associated with this instance. Note numPointsOut can be zero if there were no associated points. If the instanceGuid is recognised, but no versions exist for it, then numPointsOut will be set to 0. If the instanceGuid is not recognised or invalid, then numPointsOut will be set to -1, but the function still returns true. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.
Parameters
[in] | inputWorkspace | The input workspace to use. |
[in] | instanceGuid | The instance GUID to lookup. |
[out] | numPointsOut | A pointer to an s32 to receive the number of points. Must not be null. |
...
If the instanceGuid is recognised (i.e. it was seen by the precompute), then numVersionsOut will be the number of versions associated with this instance. Note that it is valid for an instance to have no versions associated with it, in which case numVersionsOut will be 0. If the instanceGuid is not recognised or invalid, then numVersionsOut will be set to -1, but the function still returns true. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.
Parameters
[in] | inputWorkspace | The input workspace to use. |
[in] | instanceGuid | The instance GUID to lookup. |
[out] | numVersionsOut | A pointer to an s32 to receive the number of versions. Must not be null. |
...
This array can then be used for visibility computations (eg on the GPU).
Parameters
[in] | inputWorkspace | The input workspace to use. |
[out] | positionsOut | Pointer to an array of vectors to write the positions to. |
[out] | normalsOut | Pointer to an array of vectors to write the normals to. Both arrays should be big enough to hold one vector for each point in the input workspace. The number of points is returned by GetNumberOfPointsInInputWorkspace(). |
...
This array can then be used for visibility computations (eg on the GPU). The array should be big enough to hold one vector for each point in the input workspace. The number of points is returned by GetNumberOfPointsInInputWorkspace().
Parameters
[in] | inputWorkspace | The input workspace to use. |
[out] | positionsOut | Pointer to an array of vectors to write the positions to. |
...
The arrays should be at least as large as the maximum value that may be written, which can be found by calling GetInputWorkspaceNumProjectedPointsInInstance() in advance, or by using the system-wide num points maximum returned by GetInputWorkspaceMaxProjectedPointsInAnyInstance(). The system wide maximum may be helpful if you wish to allocate a single block of memory and re-use it for other instances. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.
Parameters
[in] | inputWorkspace | The input workspace to use. |
[in] | instanceGuid | The instance GUID to lookup. |
[in] | versionId | The version ID to lookup. |
[out] | pointIdxArrayOut | A pointer to an array of s32 to receive the point indices. Must not be null and at least as long as GetInputWorkspaceNumProjectedPointsInInstance(). |
[out] | pointPosArrayOut | A pointer to an array of v128 to receive the point positions. Must not be null and at least as long as GetInputWorkspaceNumProjectedPointsInInstance(). |
[out] | numProjectedPointsOut | A pointer to an s32 to receive the number of points written. Must not be null. |
...
If the instanceGuid is recognised, then numVersionsOut will be the number of items written to versionIdsOut. If the instanceGuid is not recognised or is invalid, numVersionsOut will be -1, and no values will be written to versionIdsOut. The versionIdsOut array should be at least as large as the maximum value that may be written, which can be found by calling GetInputWorkspaceNumVersionsInInstance() in advance, or by using the system-wide num versions maximum returned by GetInputWorkspaceMaxVersionsInAnyInstance(). The system wide maximum may be helpful if you wish to allocate a single block of memory and re-use it for other instances. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.
Parameters
[in] | inputWorkspace | The input workspace to use. |
[in] | instanceId | The instance GUID to lookup. |
[out] | versionIdsOut | A pointer to an array of s32 to receive the version IDs. Must not be null and at least as long as GetInputWorkspaceNumVersionsInInstance(). |
[out] | numVersionsOut | A pointer to an s32 to receive the number of versions. Must not be null. |
...
Computes the intersection between two Line2D.
Parameters
[out] | intersection | The intersection point of the two lines. |
[in] | p | One line. |
[in] | q | Other line. |
...
Return the world space position (xyz) and size (w) of the octree block identified by the specified octree code with the specified voxel size.
Anchor | ||||
---|---|---|---|---|
|
Geo::u32 GEO_CALL Enlighten::GetOctreeDisplacedProbeCount
...
public: Geo::u32GEO_CALL GetOctreeDisplacedProbeCount
(
  const RadProbeSetCore * core
)
...
Return the total number of displaced probe positions within the specified RadProbeSetCore.
For debugging only.
Parameters
[in] | core | A RadProbeSetCore containing a probe set created by automatic probe placement. |
Anchor | ||||
---|---|---|---|---|
|
...
For debugging only. The total includes virtual and nonexistent probes.
Parameters
[in] | core | A RadProbeSetCore containing a probe set created by automatic probe placement. |
...
Return the end of the range of output texture types that can be updated for this combination of solve type and radiosity core.
Anchor | ||||
---|---|---|---|---|
|
Geo::
...
s32 Enlighten::GetOutputTextureSize
...
public: Geo::GeoPoint2Ds32 GetOutputTextureSize
(
  const RadSystemCore RadCubeMapCore & core
)
...
Returns the size of the output texture required for this radiosity data.
Anchor | ||||
---|---|---|---|---|
|
Geo::
...
GeoPoint2D Enlighten::GetOutputTextureSize
...
public: Geo::s32GeoPoint2D GetOutputTextureSize
(
  const RadCubeMapCore RadSystemCore & core
)
...
Returns the size of the output texture required for this radiosity data.
...
The visibility data is encoded as a spherical harmonic with a number of coefficients depending on the precompute settings used to create the probe set. The number of coefficients can be retrieved from the probeSetCore metadata. The visibility pointer must point to a buffer that is large enough to accommodate the coefficients. Returns a pointer to the visibility data, this pointer will be NULL if the environment visibility is disabled or the probe has been culled by the precompute.
Parameters
[in] | probeId | The volumetric probe to query. |
[in] | probeSetCore | The volumetric probe data to query. |
...
Retrieves the light probe visibility for the given probe in the volume probe data.
Returns TRUE on success.
Parameters
[in] | probeId | The volumetric probe to query. |
[in] | probeSetCore | The volumetric probe data to query. |
[out] | visibility | The volumetric probe visibility. |
...
Returns the axis-aligned bounding box of the set of input points in the input workspace.
Parameters
[in] | inputWorkspace | The input workspace to compute the bounding box for. |
[out] | bb | The bounding box object to receive the system bounds. |
...
Retrieve the bounding volume of the system.
Parameters
[in] | inputWorkspace | The input workspace for the system |
[out] | boundingBox | The bounding box for the system |
...
This is a replacement for GetTextureAlbedoSize()
Parameters
[in] | radSystemCoreIn | The radiosity core to compute the texture dimensions for. |
[in] | scale | The desired texture resolution scale. |
[out] | widthOut | The width of the albedo and emissive textures, -1 upon error. |
[out] | heightOut | The height of the albedo and emissive textures, -1 upon error. returns true on success or false if an error occurred. |
...
Hash the guids and pointers of the InputLightingBuffer array.
Parameters
[in] | inputLightingArray | An array of InputLightingBuffers to hash. This hash included the pointer values. |
[in] | numBuffers | The number of InputLightingBuffers in the array. |
...
You can use Enlighten::GetNumberOfPointsInInputWorkspace() to get the number of points in a system, and Enlighten::GetInputWorkspacePositionAndNormalArray() to get their positions and normals.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | inputWorkspace | The input workspace for the system. |
[in] | pointAlbedoColours | The albedo colours to set for the points. Each colour component should be between [0..1]. Values outside this range will be clamped internally. The size of this array must be equal to or larger than the value in numPoints. These values are expected in linear colour space. |
[in] | numPoints | Number of sample points provided. It must match the number of points in the input workspace. |
[in] | albedoBuffer | The AlbedoBuffer which is being initialised. |
...
Sets the albedo colours for an AlbedoBuffer from a materialWorkspace.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | albedoBuffer | The AlbedoBuffer which is being initialised. |
...
Sets the albedo colours for an AlbedoBuffer from an albedo texture expected in RGBA format in gamma-2 colour space.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | textureParams | Parameters used for sampling the albedo texture on the CPU. |
[in] | resolutionScale | An enumeration representing the size of the albedo texture relative to the lightmap resolution. Can be FullResolutionScale or HalfResolutionScale. |
[in] | albedoBuffer | The AlbedoBuffer which is being initialised. |
...
You can use Enlighten::GetNumberOfPointsInInputWorkspace() to get the number of points in a system, and Enlighten::GetInputWorkspacePositionAndNormalArray() to get their positions and normals.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | inputWorkspace | The input workspace for the system. |
[in] | pointEmissiveColours | The albedo colours to set for the points. Each colour component should be between [0..1]. Values outside this range will be clamped internally. The size of this array must be equal to or larger than the value in numPoints. These values are expected in linear colour space. |
[in] | numPoints | Number of sample points provided. It must match the number of points in the input workspace. |
[in] | emissiveBuffer | The EmissiveBuffer which is being initialised. |
...
Sets the emissive colours for an EmissiveBuffer from a materialWorkspace.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | emissiveBuffer | The EmissiveBuffer which is being initialised. |
...
Sets the emissive colours for an EmissiveBuffer from an emissive texture expected in RGBM format in linear colour space.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | textureParams | Parameters used for sampling the albedo texture on the CPU. |
[in] | fixedPointMaximum | The maximum value representable by the fixed point RGBM format. |
[in] | resolutionScale | An enumeration representing the size of the albedo texture relative to the lightmap resolution. Can be FullResolutionScale or HalfResolutionScale. |
[in] | emissiveBuffer | The EmissiveBuffer which is being initialised. |
...
Sets the emissive colours for an EmissiveBuffer from an emissive texture expected in FP16 format in linear colour space.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | textureParams | Parameters used for sampling the albedo texture on the CPU. |
[in] | resolutionScale | An enumeration representing the size of the albedo texture relative to the lightmap resolution. Can be FullResolutionScale or HalfResolutionScale. |
[in] | emissiveBuffer | The EmissiveBuffer which is being initialised. |
...
This is used to distinguish dynamic material values from static values when initialising or reconstructing the EmissiveBuffer. If a material albedo component is not initialised as dynamic, any calls to SetMaterialEmissiveColour() will require the EmissiveBuffer to be re-initialised.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | instanceId | The instance ID to set the emissive for. |
...
This is used to distinguish dynamic material values from static values when initialising or reconstructing the AlbedoBuffer. If a material component is not initialised as dynamic albedo, any calls to SetMaterialAlbedoColour() will require the AlbedoBuffer to be re-initialised. If a material component is not initialised as dynamic emissive, any calls to SetMaterialEmissiveColour() will require the EmissiveBuffer to be re-initialised. If a material component is not initialised as dynamic transparency, any calls to SetMaterialTransparency() will require the TransparencyBuffer to be re-initialised.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | selection | The selection of surfaces to set the state for. |
[in] | dynamicity | The dynamicity to initialise the material component with. |
...
This is used to distinguish dynamic material values from static values when initialising or reconstructing the EmissiveBuffer. If a material emissive component is not initialised as dynamic, any calls to SetMaterialEmissiveColour() will require the EmissiveBuffer to be re-initialised.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | materialId | The material 64 bit material ID to set the emissive for. |
...
This is used to distinguish dynamic material values from static values when initialising or reconstructing the EmissiveBuffer. If a material albedo component is not initialised as dynamic, any calls to SetMaterialEmissiveColour() will require the EmissiveBuffer to be re-initialised.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
...
You can use Enlighten::GetNumberOfPointsInInputWorkspace() to get the number of points in a system, and Enlighten::GetInputWorkspacePositionAndNormalArray() to get their positions and normals.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | inputWorkspace | The input workspace for the system. |
[in] | pointTransparencyValues | The transparency values to set for the points. Each value should be between [0..1]. Values outside this range will be clamped internally. The size of this array must be equal to or larger than the value in numPoints. These values are expected in linear colour space. |
[in] | numPoints | Number of sample points provided. It must match the number of pointsg in the input workspace. |
[in] | transparencyBuffer | The TransparencyBuffer which is being initialised. |
...
Sets the values for a TransparencyBuffer from a materialWorkspace.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | transparencyBuffer | The TransparencyBuffer which is being initialised. |
...
In the alpha channel 0 represents fully transparent and 255 represents fully opaque in linear space.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | textureParams | Parameters used for sampling the albedo texture on the CPU. |
[in] | pixelStrideInBytes | The stride between pixels in the texture. |
[in] | alphaOffsetInBytes | The byte offset to the first alpha element. |
[in] | resolutionScale | An enumeration representing the size of the albedo texture relative to the lightmap resolution. Can be FullResolutionScale or HalfResolutionScale. |
[in] | transparencyBuffer | The TransparencyBuffer which is being initialised. |
...
Tests if a Vertex2D is within a bounding box defined by two Vertex2D.
Parameters
[in] | v | Vertex that gets tested |
[in] | min | Vertex that defines the bounding box minimum |
[in] | max | Vertex that defines the bounding box maximum |
...
Tests if a Vertex2D is within a bounding box defined by two Vertex2D.
Parameters
[in] | v | Vertex that gets tested |
[in] | min | Vertex that defines the bounding box minimum |
[in] | max | Vertex that defines the bounding box maximum |
...
An initialised buffer can require re-initialisation if a static colour changes or the dynamic-ness of a material changes.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
...
An initialised buffer can require re-initialisation if a static colour changes or the dynamic-ness of a material changes.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
...
Returns the number of frames since the last update that changed the given input lighting buffer.
Parameters
[in] | lightingBuffer | The lighting buffer to check for changes. |
...
Returns true if the specified probe set core is a ProbeOctree.
Parameters
[in] | core | A valid RadProbeSetCore object |
...
Returns TRUE if the probe was culled during precompute.
Parameters
[in] | probeId | The volumetric probe to query. |
[in] | probeSetCore | The volumetric probe data to query. |
...
An initialised buffer can require re-initialisation if a static colour changes or the dynamic-ness of a material changes.
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
...
RadIrradianceTask, RadProbeTask and RadCubeMapTask all expect a pointer to an ordered
...
Parameters
[in] | coreData | The core data to prepare the input list for. |
[in] | inputLightingBuffers | The unordered list of lighting buffers. |
[in] | numLightingBuffers | The number of lighting buffers provided. |
[in] | listILBOut | The location to write the new list to. This array of pointers must be the length returned by GetInputWorkspaceListLength(). |
...
RadIrradianceTask, RadProbeTask and RadCubeMapTask all expect a pointer to an ordered
...
Parameters
[in] | coreData | The core data to prepare the input list for. |
[in] | inputLightingBuffers | The unordered list of lighting buffers. |
[in] | numLightingBuffers | The number of lighting buffers provided. |
[in] | listILBOut | The location to write the new list to. This array of pointers must be the length returned by GetInputWorkspaceListLength(). |
...
RadIrradianceTask, RadProbeTask, EntireProbeSetTask and RadCubeMapTask all expect a pointer to an ordered
...
Parameters
[in] | dataBlock | The precomputed data block for the task. This should be RadSystemCore::m_RadiosityPrecomp (for RadIrradianceTask); RadProbeSetCore::m_ProbeSetPrecomp (for RadProbeTask); RadProbeSetCore::m_EntireProbeSetPrecomp (for EntireProbeSetTask; or RadCubeMapCore::m_ClusterCubeMapPrecomp (for RadCubeMapTask). |
[in] | inputLightingBuffers | The unordered list of lighting buffers. |
[in] | numLightingBuffers | The number of lighting buffers provided. |
[in] | listILBOut | The location to write the new list to. This array of pointers must be the length returned by GetInputWorkspaceListLength(). |
...
RadIrradianceTask, RadProbeTask and RadCubeMapTask all expect a pointer to an ordered
...
Parameters
[in] | coreData | The core data to prepare the input list for. |
[in] | inputLightingBuffers | The unordered list of lighting buffers. |
[in] | numLightingBuffers | The number of lighting buffers provided. |
[in] | listILBOut | The location to write the new list to. This array of pointers must be the length returned by GetInputWorkspaceListLength(). |
...
Read an AlbedoBuffer from a stream.
Parameters
[in] | stream | - The Geo::IGeoStream to read. |
...
Read an ClusterAlbedoWorkspaceMaterialData from a stream.
Parameters
[in] | stream | - The Geo::IGeoStream to read. |
[in] | sections | - Which of the optional data blocks to allocate and read. Pass 0 to load no optional data, or Enlighten::Iff::ClusterAlbedoWorkspaceMaterialGuidsSection to load the optional material guids data |
...
Read an ClusterAlbedoWorkspaceMaterialData from file.
Parameters
[in] | filename | - The name of the file to read. |
[in] | sections | - Which of the optional data blocks to allocate and read. Pass 0 to load no optional data, or Enlighten::Iff::ClusterAlbedoWorkspaceMaterialGuidsSection to load the optional material guids data |
...
Read an DynamicMaterialWorkspace from a stream.
Parameters
[in] | stream | - The Geo::IGeoStream to read. |
...
Read an EmissiveBuffer from a stream.
Parameters
[in] | stream | - The Geo::IGeoStream to read. |
...
Read an IncidentLightingBuffer from a stream.
Parameters
[in] | stream | - The Geo::IGeoStream to read. |
...
Read an InputLightingBuffer from a stream.
Parameters
[in] | stream | - The Geo::IGeoStream to read. |
...
Read an InputWorkspace from a stream.
Parameters
[in] | stream | - The Geo::IGeoStream to read. |
[in] | sections | - Which of the optional data blocks to allocate and read. Pass 0 to load no optional data, or Enlighten::Iff::DynamicInputWorkspaceDataSection to load the optional dynamic data and/or Enlighten::Iff::ProjectedPointsInputWorkspaceDataSection to load the optional duster projection data and/or Enlighten::Iff::HighQualityBounceCoordinateDataSection to load the optional high quality bounce data |
...
Read an InputWorkspace from file.
Parameters
[in] | filename | - The name of the file to read. |
[in] | sections | - Which of the optional data blocks to allocate and read. Pass 0 to load no optional data, or Enlighten::Iff::DynamicInputWorkspaceDataSection to load the optional dynamic data and/or Enlighten::Iff::ProjectedPointsInputWorkspaceDataSection to load the optional duster projection data and/or Enlighten::Iff::HighQualityBounceCoordinateDataSection to load the optional high quality bounce data |
...
Read a PrecomputedVisibilityData struct from a stream.
Parameters
[in] | stream | - The Geo::IGeoStream to read |
...
Read a PrecomputedVisibilityData struct from a file.
Parameters
[in] | filename | - The name of the file to read |
...
The data is written in little-endian format, so the loading code must handle this.
Parameters
[in] | stream | - The Geo::IGeoStream to read. |
...
The files are written in target-endian format, so the same loading code works for all platforms.
Parameters
[in] | filename | - The name of the file to read. |
...
The files are written in target-endian format, so the same loading code works for all platforms.
Parameters
[in] | stream | - The Geo::IGeoStream to read |
[in] | sections | - Pass 0 to load no optional data or any combination of the following: Enlighten::Iff::ProbeSetPrecompSection Enlighten::Iff::EntireProbeSetPrecompSection Enlighten::Iff::ProbeSetInterpolationDataSection Enlighten::Iff::ProbeSetVisibilityDataSection Enlighten::Iff::ProbeSetDebugDataSection |
...
The files are written in target-endian format, so the same loading code works for all platforms. Note this doesn't do any endian swapping. It assumes you are reading/writing the file on the same platform.
Parameters
[in] | filename | - The name of the file to read |
[in] | sections | - Pass 0 to load no optional data or any combination of the following: Enlighten::Iff::ProbeSetPrecompSection Enlighten::Iff::EntireProbeSetPrecompSection Enlighten::Iff::ProbeSetInterpolationDataSection Enlighten::Iff::ProbeSetVisibilityDataSection Enlighten::Iff::ProbeSetDebugDataSection |
...
The data is written in little-endian format, so the loading code must handle this.
Parameters
[in] | stream | - The Geo::IGeoInputStream to read. |
[in] | sections | - Which of the optional data blocks to allocate and read. Pass 0 to load no optional data, or a combination of Enlighten::Iff::ProjectionDataSection and/or Enlighten::Iff::DynamicRadiosityDataSection |
...
The files are written in target-endian format, so the same loading code works for all platforms.
Parameters
[in] | filename | - The name of the file to read. |
[in] | sections | - Which of the optional data blocks to allocate and read. Pass 0 to load no optional data, or a combination of Enlighten::Iff::ProjectionDataSection and/or Enlighten::Iff::DynamicRadiosityDataSection |
...
Note | ||
---|---|---|
| ||
If the output width or height are set to zero, then only the header of the file is read, and the width, height outputFormat and outputFormatByteOrder are filled in. The function then returns true. If the output size is non-zero, the function assumes that the various output pointers are large enough to hold the incoming data. In general, users should not have to call these functions in their integration. |
Parameters
[out] | outputWidth | - The width of the output texture |
[out] | outputHeight | - The height of the output texture |
[out] | outputFormat | - The format of the output texture |
[out] | outputFormatByteOrder | - The byte order of the LRB irradiance/directional output texture |
[in] | irradianceOutput64 | - pointer large enough to hold 64-bit-per-pixel output data (e.g. FP16). Pass NULL if not required |
[in] | irradianceOutput32 | - pointer large enough to hold 32-bit-per-pixel output data (e.g. LRB). Pass NULL if not required |
[in] | directionalOutput | - pointer large enough to hold directional output data. Pass NULL if not required |
[in] | stream | - The file stream from which to read the rad task data from |
...
Please see ReadRadTaskOutput for details.
Parameters
[out] | outputWidth | - The width of the output texture |
[out] | outputHeight | - The height of the output texture |
[out] | outputFormat | - The format of the output texture |
[out] | outputFormatByteOrder | - The byte order of the LRB irradiance/directional output texture |
[in] | irradianceOutput64 | - pointer large enough to hold 64-bit-per-pixel output data (e.g. FP16). Pass NULL if not required |
[in] | irradianceOutput32 | - pointer large enough to hold 32-bit-per-pixel output data (e.g. LRB). Pass NULL if not required |
[in] | directionalOutput | - pointer large enough to hold directional output data. Pass NULL if not required |
[in] | filename | - The name of the rad task output file to read data from |
...
This BounceBuffer is then used as input to the IndirectInputLighting stage for the next solve iteration.
Parameters
[in] | params | A complete and valid ResampleBounceParameters |
[out] | timeUs | Number of microseconds it took to Resample the bounce |
...
Generate a texture that highlights the information specified in the task object.
Parameters
[in] | task | A valid pointer to a RadDebugBucketSelectionTask to perform. |
...
Set visibility in an input workspace for a directional light, using precomputed visibility data.
Parameters
[in] | workspaceMemory | The input workspace memory block. |
[in] | precomputedVisibilityData | The block of precomputed visibility data. |
[in] | visibilityWorkspace | The visibility workspace memory block. |
[in] | visibilityData | The visibility data to set, one bit per duster. |
[in] | lightDirection | The direction of the light source. |
...
If the selection has been previously setup as dynamic (using InitialiseMaterialAlbedoAsDynamic()), the AlbedoBuffer will need updating using UpdateAlbedoBuffer(). If the selection is static however, the AlbedoBuffer will need re-initialising using InitialiseAlbedoBufferFromMaterialWorkspace().
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | selection | The selection of surfaces to set the albedo for. |
[in] | newAlbedoColour | The colour to set the material to. This is expected to be in linear colour space. |
...
If the selection has been previously setup as dynamic (using InitialiseMaterialEmissiveAsDynamic()), the EmissiveBuffer will need updating using UpdateEmissiveBuffer(). If the selection is static however, the EmissiveBuffer will need re-initialising using InitialiseEmissiveBufferFromMaterialWorkspace().
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | selection | The selection of surfaces to set the emissive for. |
[in] | newEmissiveColour | The colour to set to the emissive component of the material. This is expected to be in linear colour space. |
...
If the selection has been previously setup as dynamic (using InitialiseMaterialTransparencyAsDynamic()), the TransparencyBuffer will need updating using UpdateTransparencyBuffer(). If the selection is static however, the TransparencyBuffer will need re-initialising using InitialiseTransparencyBufferFromMaterialWorkspace().
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | selection | The selection of surfaces to set the transparency for. |
[in] | newTransparency | The transparency to set the material to. This is expected to be in linear space. |
...
Set all transparency values of transparencyWorkspace to the given value.
Parameters
[in] | inputWorkspace | The input workspace for the system |
[out] | transparencyWorkspace | The TransparencyWorkspace for the system |
[in] | transparencyValue | The value to reset all the quads in this system to |
...
This does not update the lightmap. All parameters must be valid non-null objects.
Parameters
[in] | task | A valid pointer to the RadIrradianceTaskLod structure to complete. |
[in] | workspace | A valid pointer to a block of memory to use as a workspace which must be at least as big as m_RequiredWorkspaceSize in the core meta data. |
[out] | timeUs | Number of microseconds it took to solve the task. |
[out] | numSolvedClusters | Number of output pixels solved in the task. |
...
Returns TRUE on success. All parameters must be valid non-null objects.
Parameters
[in] | task | A valid pointer to the cube map task structure to complete. |
[in] | workspace | A valid pointer to a block of memory to use as a workspace which must be at least as big as the amount returned from CalcRequiredWorkspaceMemory(). |
[out] | timeUs | Number of microseconds it took to solve the task. |
[out] | numSolvedPixels | Number of output pixels solved in the task. |
...
Returns TRUE on success. All parameters must be valid non-null objects.
Parameters
[in] | task | A valid pointer to the irradiance task structure to complete. |
[in] | workspace | A valid pointer to a block of memory to use as a workspace which must be at least as big as m_RequiredWorkspaceSize in the core meta data. |
[out] | timeUs | Number of microseconds it took to solve the task. |
[out] | numSolvedPixels | Number of output pixels solved in the task. |
...
Returns TRUE on success. Returns FALSE if the input task is precomputed as L2.
Parameters
[in] | task | A valid pointer to the probe task structure to complete. |
[out] | timeUs | Returns the number of microseconds taken to perform the compute |
...
Returns TRUE on success. Returns FALSE if the input task is precomputed as L1.
Parameters
[in] | task | A valid pointer to the probe task structure to complete. |
[out] | timeUs | Returns the number of microseconds taken to perform the compute |
...
This later gets overridden
Parameters
[in] | outputInstance | The output instance |
[in] | uvScale | The UV scaling to apply to the instance chart |
[in] | precompBlockSize | The block size used when testing charts in the packing |
...
This will preserve values that were initialised with static data (ie ColourPerPoint or Texture).
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | albedoBuffer | A valid AlbedoBuffer where the results will be written to. This buffer is used as input to the IndirectInputLighting stage. |
...
This will preserve values that were initialised with static data (ie ColourPerPoint or Texture).
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | emissiveBuffer | A valid EmissiveBuffer where the results will be written to. This buffer is used as input to the IndirectInputLighting stage. |
...
This will preserve values that were initialised with static data (ie ColourPerPoint or Texture).
Parameters
[in] | materialWorkspace | A pointer to the DynamicMaterialWorkspace for the system. |
[in] | materialData | A pointer to the precompute material data. |
[in] | transparencyBuffer | A valid TransparencyBuffer where the results will be written to. This buffer is used as input to the IndirectInputLighting stage. |
...
Update the transparency workspace with values calculated from interpolated probes.
Parameters
[in] | inputWorkspace | The input workspace for the system |
[out] | transparencyWorkspace | The workspace where intermediate probe results and other calculation results are stored |
[in] | probeSetManager | The Probe Set Manager object that provides interface for probe interpolation |
[in] | recomputeInterpolants | Whether or not to recompute the interpolants |
...
Update the transparency workspace with values calculated from interpolated probes.
Parameters
[in] | inputWorkspace | The input workspace for the system |
[out] | transparencyWorkspace | The workspace where intermediate probe results and other calculation results are stored |
[in] | interpolationInputs | An array of probesets to interpolate from |
[in] | numInterpolationInputs | The number of probesets in the array |
[in] | recomputeInterpolants | Whether or not to recompute the interpolants |
...
Returns true if there are no NaN's or non-finite numbers in the specified BounceBuffer object.
Parameters
[in] | bounceBuffer | The BounceBuffer to query. |
...
Returns true if there are no NaN's or non-finite numbers in the specified InputLightingBuffer object.
Parameters
[in] | incidentLightingBuffer | The IncidentLightingBuffer to query. |
...
Returns true if there are no NaN's or non-finite numbers in the specified InputLightingBuffer object.
Parameters
[in] | inputLightingBuffer | The InputLightingBuffer to query. |
...
Write an AlbedoBuffer to a stream.
Parameters
[in] | albedoBuffer | - The AlbedoBuffer to write. |
[in] | stream | - The Geo::IGeoStream to write. |
...
Write an ClusterAlbedoWorkspaceMaterialData to a stream, ready to be loaded on the target platform.
Parameters
[in] | materialData | - The ClusterAlbedoWorkspaceMaterialData to write. |
[in] | stream | - The Geo::IGeoStream to write to. |
...
Write an ClusterAlbedoWorkspaceMaterialData to file, ready to be loaded on the target platform.
Parameters
[in] | materialData | - The ClusterAlbedoWorkspaceMaterialData to write. |
[in] | filename | - The name of the file to write. |
...
Write an DynamicMaterialWorkspace to a stream.
Parameters
[in] | materialWorkspace | - The DynamicMaterialWorkspace to write. |
[in] | stream | - The Geo::IGeoStream to write. |
...
Write an EmissiveBuffer to a stream.
Parameters
[in] | emissiveBuffer | - The EmissiveBuffer to write. |
[in] | stream | - The Geo::IGeoStream to write. |
...
Write an IncidentLightingBuffer to a stream.
Parameters
[in] | incidentLightingBuffer | - The IncidentLightingBuffer to write. |
[in] | stream | - The Geo::IGeoStream to write. |
...
Write an InputLightingBuffer to a stream.
Parameters
[in] | inputLightingBuffer | - The InputLightingBuffer to write. |
[in] | stream | - The Geo::IGeoStream to write. |
...
Fails if the system ids or sample counts do not match.
Parameters
[in] | source | - The InputLightingBuffer to read. |
[inout] | destination | - The InputLightingBuffer to write. |
...
Write an InputLightingBuffer to file.
Parameters
[in] | inputLightingBuffer | - The InputLightingBuffer to write. |
[in] | filename | - The name of the file to write. |
...
Write an InputWorkspace to a stream, ready to be loaded on the target platform.
Parameters
[in] | inputWorkspace | - The InputWorkspace to write. |
[in] | stream | - The Geo::IGeoStream to write to. |
...
Write an InputWorkspace to file, ready to be loaded on the target platform.
Parameters
[in] | inputWorkspace | - The InputWorkspace to write. |
[in] | filename | - The name of the file to write. |
...
Write a PrecomputedVisibilityData structure to a stream.
Parameters
[in] | visibilityData | - The PrecomputedVisibilityData structure data to write. |
[in] | stream | - The Geo::IGeoStream to write. |
...
Write a PrecomputedVisibilityData structure to a file.
Parameters
[in] | visibilityData | - The PrecomputedVisibilityData structure data to write. |
[in] | filename | - The name of the file to write. |
...
Write a RadCubeMapCore to a stream, ready to be loaded on the target platform.
Parameters
[in] | cubeMapCore | - The RadCubeMapCore to write. |
[in] | stream | - The Geo::IGeoStream to write to. |
...
Write a RadCubeMapCore to file, ready to be loaded on the target platform.
Parameters
[in] | cubeMapCore | - The RadCubeMapCore to write. |
[in] | filename | - The name of the file to write. |
...
Write run-time probeset data to a stream, ready to be loaded on the target platform.
Parameters
[in] | probeSet | - The probe set data to write. |
[in] | stream | - The Geo::IGeoStream to write. |
...
The data is written in little-endian format, so the loading code must handle this.
Parameters
[in] | probeSet | - The probe set data to write. |
[in] | filename | - The name of the file to write. |
...
Write a RadSystemCore to a stream, ready to be loaded on the target platform.
Parameters
[in] | system | - The RadSystemCore to write. |
[in] | stream | - The Geo::IGeoStream to write to. |
...
Write a RadSystemCore to file, ready to be loaded on the target platform.
Parameters
[in] | system | - The RadSystemCore to write. |
[in] | filename | - The name of the file to write. |
...
This will be the buffer that the GPU uses to read lights from.
Parameters
[in] | sortedLights | A valid SortedLights buffer created though a call to CreateSortedLights() |
[in] | destMem | A pointer to memory where the CachedData of the sorted lights will be written to. |
...