The extended input lighting api.
Classes
Name | Description |
---|---|
Enlighten::DirectInputLightingParameters | A class containing the parameters to be used as input to the direct input lighting stage. |
Enlighten::IncidentLightingBuffer | A buffer containing the incident lighting for a system's input sample points (internal). |
Enlighten::IndirectInputLightingParameters | A class containing the parameters to be used as input to the indirect input lighting stage. |
Enlighten::TransparencyWorkspace | Workspace used for authored destruction of lightmapped geometry (internal). |
Functions
Anchor | ||||
---|---|---|---|---|
|
bool GEO_CALL Enlighten::AddDusterValuesToInputWorkspace
...
public: bool GEO_CALL AddDusterValuesToInputWorkspace
(
const InputWorkspace * workspaceMemory,
Enlighten::IncidentLightingBuffer * output,
const Geo::v128 * dusterValues
)
...
Adds light values laid out in a duster block to an Enlighten input workspace.
Parameters
[in] | workspaceMemory | The input workspace memory block. |
[in] | output | The incident lighting buffer to fill with data. |
[in] | dusterValues | The linear light colour values for the duster array of point samples. The duster (its size, positions, normals etc.) must match the one originally passed to CreateInputWorkspace. |
Anchor | ||||
---|---|---|---|---|
|
void GEO_CALL Enlighten::ApplyVolumeTransparency
...
public: void GEO_CALL ApplyVolumeTransparency
(
const InputWorkspace * inputWorkspace,
TransparencyWorkspace * transparencyWorkspace,
const SphereVolume & volume
)
...
Mark the quads transparency value using a sphere volume.
Parameters
[in] | inputWorkspace | The input workspace for the system |
[out] | transparencyWorkspace | The TransparencyWorkspace for the system |
[in] | volume | The volume primitive to use to mark the quads |
Anchor | ||||
---|---|---|---|---|
|
void GEO_CALL Enlighten::ApplyVolumeTransparency
...
public: void GEO_CALL ApplyVolumeTransparency
(
const InputWorkspace * inputWorkspace,
TransparencyWorkspace * transparencyWorkspace,
const BoxVolume & volume
)
...
Mark the quads transparency value using a box volume.
Parameters
[in] | inputWorkspace | The input workspace for the system |
[out] | transparencyWorkspace | The TransparencyWorkspace for the system |
[in] | volume | The volume primitive to use to mark the quads |
Anchor | ||||
---|---|---|---|---|
|
Geo::u32 GEO_CALL Enlighten::CalcBounceBufferSize
...
public: Geo::u32GEO_CALL CalcBounceBufferSize
(
const Enlighten::InputWorkspace * inputWorkspace,
PrecisionHint::Value precision
)
...
Tells you the amount of memory required to hold bounce lighting for a given system.
Parameters
[in] | inputWorkspace | The InputWorkspace for the system. |
[in] | precision | The hint to what floating point precision to use. |
Returns
Required memory in bytes, 0xFFFFFFFF upon error.
Anchor | ||||
---|---|---|---|---|
|
Geo::u32 GEO_CALL Enlighten::CalcIncidentLightingBufferSize
...
public: Geo::u32GEO_CALL CalcIncidentLightingBufferSize
(
const Enlighten::InputWorkspace * inputWorkspace,
PrecisionHint::Value precision
)
...
Tells you the amount of memory required to hold incident lighting for a given system.
Parameters
[in] | inputWorkspace | The InputWorkspace for the system. |
[in] | precision | The hint to what floating point precision to use. |
Returns
Required memory in bytes, 0xFFFFFFFF upon error.
Anchor | ||||
---|---|---|---|---|
|
size_t Enlighten::CalcRequiredScratchSpaceMemory
...
public: size_t CalcRequiredScratchSpaceMemory
(
InputLightBase ** lights,
Geo::u32 numLights
)
...
Calculate how much scratchspace memory will be required by the DoDirectInputLighting() function given the lights to be shaded.
Parameters
[in] | lights | An array of pointers to input lights. |
[in] | numLights | The number of light pointers in the array. |
Returns
Required memory in bytes
Anchor | ||||
---|---|---|---|---|
|
Geo::u32 GEO_CALL Enlighten::CalcTransparencyWorkspaceSize
...
public: Geo::u32GEO_CALL CalcTransparencyWorkspaceSize
(
const InputWorkspace * inputWorkspace,
Geo::s32 numInterpolants,
PrecisionHint::Value precision
)
...
Tells you the amount of memory required for the transparency workspace for a given system.
Parameters
[in] | inputWorkspace | The InputWorkspace for the system. |
[in] | numInterpolants | The maximum number of interpolants to use. |
[in] | precision | The floating point precision for intermediate values. |
Returns
Required memory in bytes, 0xFFFFFFFF upon error.
Anchor | ||||
---|---|---|---|---|
|
Geo::u32 GEO_CALL Enlighten::CalcTransparencyWorkspaceSize
...
public: Geo::u32GEO_CALL CalcTransparencyWorkspaceSize
(
const InputWorkspace * inputWorkspace,
Geo::s32 numInterpolants,
Geo::s32 numLods,
PrecisionHint::Value precision
)
...
Tells you the amount of memory required for the transparency workspace for a given system.
Parameters
[in] | inputWorkspace | The InputWorkspace for the system. |
[in] | numInterpolants | The maximum number of interpolants to use. |
[in] | precision | The floating point precision for intermediate values. |
[in] | numLods | The number of LODs to use. |
Returns
Required memory in bytes, 0xFFFFFFFF upon error.
Anchor | ||||
---|---|---|---|---|
|
bool GEO_CALL Enlighten::CompareBounceBuffers
...
public: bool GEO_CALL CompareBounceBuffers
(
Geo::Statistics & res,
const Enlighten::BounceBuffer * bufA,
const Enlighten::BounceBuffer * bufB
)
...
Compares Returns true if the bounce buffers could be compared.
Parameters
[inout] | res | - The result of the comparison. Only written if the function succeeded. |
[in] | bufA | - The first BounceBuffer to compare. |
[in] | bufB | - The second BounceBuffer to compare. |
Anchor | ||||
---|---|---|---|---|
|
bool GEO_CALL Enlighten::CompareIncidentLightingBuffers
...
public: bool GEO_CALL CompareIncidentLightingBuffers
(
Geo::Statistics & res,
const Enlighten::IncidentLightingBuffer * bufA,
const Enlighten::IncidentLightingBuffer * bufB
)
...
Compares Returns true if the lighting buffers could be compared.
Parameters
[inout] | res | - The result of the comparison. Only written if the function succeeded. |
[in] | bufA | - The first IncidentLightingBuffer to compare. |
[in] | bufB | - The second IncidentLightingBuffer to compare. |
Anchor | ||||
---|---|---|---|---|
|
Enlighten::BounceBuffer* GEO_CALL Enlighten::CreateBounceBuffer
...
public: Enlighten::BounceBuffer *GEO_CALL CreateBounceBuffer
(
void * memory,
const Enlighten::InputWorkspace * inputWorkspace,
PrecisionHint::Value precision
)
...
Construct a BounceBuffer inside the memory provided.
Parameters
[in] | memory | A block of memory (size determined by CalcBounceBufferSize) to store the bounce buffer |
[in] | inputWorkspace | The InputWorkspace for the system. |
[in] | precision | The hint to what floating point precision to use. |
Anchor | ||||
---|---|---|---|---|
|
Enlighten::IncidentLightingBuffer* GEO_CALL Enlighten::CreateIncidentLightingBuffer
...
public: Enlighten::IncidentLightingBuffer *GEO_CALL CreateIncidentLightingBuffer
(
void * memory,
const Enlighten::InputWorkspace * inputWorkspace,
PrecisionHint::Value precision
)
...
Construct an IncidentLightingBuffer inside the memory provided.
Parameters
[in] | memory | A block of memory (size determined by CalcIncidentLightingBufferSize) to store the lighting buffer |
[in] | inputWorkspace | The InputWorkspace for the system. |
[in] | precision | The hint to what floating point precision to use. |
Anchor | ||||
---|---|---|---|---|
|
TransparencyWorkspace* GEO_CALL Enlighten::CreateTransparencyWorkspace
...
public: TransparencyWorkspace *GEO_CALL CreateTransparencyWorkspace
(
void * memory,
const InputWorkspace * inputWorkspace,
Geo::s32 numInterpolants,
Geo::s32 numLods,
PrecisionHint::Value precision
)
...
Construct an TransparencyWorkspace inside the memory provided.
Parameters
[in] | memory | A block of memory (size determined by CalcTransparencyWorkspaceSize) to store the workspace for pre-authored static destruction/transparency |
[in] | inputWorkspace | The InputWorkspace for the system. |
[in] | numInterpolants | The maximum number of interpolants to use. |
[in] | precision | The floating point precision for intermediate values. |
[in] | numLods | The number of LODs to use. |
Anchor | ||||
---|---|---|---|---|
|
TransparencyWorkspace* GEO_CALL Enlighten::CreateTransparencyWorkspace
...
public: TransparencyWorkspace *GEO_CALL CreateTransparencyWorkspace
(
void * memory,
const InputWorkspace * inputWorkspace,
Geo::s32 numInterpolants,
PrecisionHint::Value precision
)
...
Construct an TransparencyWorkspace inside the memory provided.
Parameters
[in] | memory | A block of memory (size determined by CalcTransparencyWorkspaceSize) to store the workspace for pre-authored static destruction/transparency |
[in] | inputWorkspace | The InputWorkspace for the system. |
[in] | numInterpolants | The maximum number of interpolants to use. |
[in] | precision | The floating point precision for intermediate values. |
Anchor | ||||
---|---|---|---|---|
|
bool Enlighten::DoDirectInputLighting
...
public: bool DoDirectInputLighting
(
DirectInputLightingParameters * params,
void * scratchspace,
size_t scratchspacSize,
Geo::u32 & timeUs
)
...
Do the Direct input lighting stage.
Parameters
[in] | params | A pointer to a complete DirectInputLightingParams object. |
[in] | scratchspace | A pointer to allocated scratchspace memory. This memory is only used for the duration of the call to this function. |
[in] | scratchspacSize | The size of the scratchspace memory calculated with CalcRequiredScratchSpaceMemory function. |
[out] | timeUs | Duration taken to solve the indirect input lighting phase. |
Returns
The number of light affecting the system after culling.
Anchor | ||||
---|---|---|---|---|
|
bool Enlighten::DoIndirectInputLighting
...
public: bool DoIndirectInputLighting
(
IndirectInputLightingParameters * params,
Geo::u32 & timeUs
)
...
Do the indirect input lighting stage.
Parameters
[in] | params | A pointer to a complete IndirectInputLightingParameters object. |
[out] | timeUs | Duration taken to solve the indirect input lighting phase. |
Returns
true on success
Anchor | ||||
---|---|---|---|---|
|
Geo::u32 GEO_CALL Enlighten::GetBounceBufferSize
...
public: Geo::u32GEO_CALL GetBounceBufferSize
(
const Enlighten::BounceBuffer * bounceBuffer,
PrecisionHint::Value precision
)
...
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. |
Returns
Required memory in bytes, 0xFFFFFFFF upon error.
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoGuid GEO_CALL Enlighten::GetBounceBufferSystemId
...
public: Geo::GeoGuidGEO_CALL GetBounceBufferSystemId
(
const Enlighten::BounceBuffer * bounceBuffer
)
...
Get system id from BounceBuffer.
Parameters
[in] | bounceBuffer | The BounceBuffer to query. |
Anchor | ||||
---|---|---|---|---|
|
Geo::u32 GEO_CALL Enlighten::GetIncidentLightingBufferSize
...
public: Geo::u32GEO_CALL GetIncidentLightingBufferSize
(
const Enlighten::IncidentLightingBuffer * incidentLightingBuffer,
PrecisionHint::Value precision
)
...
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. |
Returns
Required memory in bytes, 0xFFFFFFFF upon error.
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoGuid GEO_CALL Enlighten::GetIncidentLightingBufferSystemId
...
public: Geo::GeoGuidGEO_CALL GetIncidentLightingBufferSystemId
(
const Enlighten::IncidentLightingBuffer * incidentLightingBuffer
)
...
Get system id from IncidentLightingBuffer.
Parameters
[in] | incidentLightingBuffer | The IncidentLightingBuffer to query. |
Anchor | ||||
---|---|---|---|---|
|
bool GEO_CALL Enlighten::SetTransparency
...
public: bool GEO_CALL SetTransparency
(
const InputWorkspace * inputWorkspace,
TransparencyWorkspace * transparencyWorkspace,
float transparencyValue
)
...
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 |
Anchor | ||||
---|---|---|---|---|
|
void GEO_CALL Enlighten::UpdateTransparencyWorkspace
...
public: void GEO_CALL UpdateTransparencyWorkspace
(
const InputWorkspace * inputWorkspace,
TransparencyWorkspace * transparencyWorkspace,
const InterpolationInputSet * interpolationInputs,
Geo::s32 numInterpolationInputs,
bool recomputeInterpolants
)
...
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 |
Anchor | ||||
---|---|---|---|---|
|
void GEO_CALL Enlighten::UpdateTransparencyWorkspace
...
public: void GEO_CALL UpdateTransparencyWorkspace
(
const InputWorkspace * inputWorkspace,
TransparencyWorkspace * transparencyWorkspace,
Enlighten::IProbeSetManager * probeSetManager,
bool recomputeInterpolants
)
...
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 |
Anchor | ||||
---|---|---|---|---|
|
bool GEO_CALL Enlighten::VerifyBounceBufferData
...
public: bool GEO_CALL VerifyBounceBufferData
(
const Enlighten::BounceBuffer * bounceBuffer
)
...
Returns true if there are no NaN's or non-finite numbers in the specified BounceBuffer object.
Parameters
[in] | bounceBuffer | The BounceBuffer to query. |
Anchor | ||||
---|---|---|---|---|
|
bool GEO_CALL Enlighten::VerifyIncidentLightingBufferData
...
public: bool GEO_CALL VerifyIncidentLightingBufferData
(
const Enlighten::IncidentLightingBuffer * incidentLightingBuffer
)
...
Returns true if there are no NaN's or non-finite numbers in the specified InputLightingBuffer object.
Parameters
[in] | incidentLightingBuffer | The IncidentLightingBuffer to query. |