Versions Compared

Key

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

The extended input lighting api.

Classes

NameDescription
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

NameDescription
AddDusterValuesToInputWorkspace(const InputWorkspace *, Enlighten::IncidentLightingBuffer *, const Geo::v128 *)

Adds light values laid out in a duster block to an Enlighten input workspace.

ApplyVolumeTransparency(const InputWorkspace *, TransparencyWorkspace *, const SphereVolume &)

Mark the quads transparency value using a sphere volume.

ApplyVolumeTransparency(const InputWorkspace *, TransparencyWorkspace *, const BoxVolume &)

Mark the quads transparency value using a box volume.

CalcBounceBufferSize(const Enlighten::InputWorkspace *, PrecisionHint::Value)

Tells you the amount of memory required to hold bounce lighting for a given system.

CalcIncidentLightingBufferSize(const Enlighten::InputWorkspace *, PrecisionHint::Value)

Tells you the amount of memory required to hold incident lighting for a given system.

CalcRequiredScratchSpaceMemory(InputLightBase **, Geo::u32)

Calculate how much scratchspace memory will be required by the DoDirectInputLighting() function given the lights to be shaded.

CalcTransparencyWorkspaceSize(const InputWorkspace *, Geo::s32, PrecisionHint::Value)

Tells you the amount of memory required for the transparency workspace for a given system.

CalcTransparencyWorkspaceSize(const InputWorkspace *, Geo::s32, Geo::s32, PrecisionHint::Value)

Tells you the amount of memory required for the transparency workspace for a given system.

CompareBounceBuffers(Geo::Statistics &, const Enlighten::BounceBuffer *, const Enlighten::BounceBuffer *)

Compares Returns true if the bounce buffers could be compared.

CompareIncidentLightingBuffers(Geo::Statistics &, const Enlighten::IncidentLightingBuffer *, const Enlighten::IncidentLightingBuffer *)

Compares Returns true if the lighting buffers could be compared.

CreateBounceBuffer(void *, const Enlighten::InputWorkspace *, PrecisionHint::Value)

Construct a BounceBuffer inside the memory provided.

CreateIncidentLightingBuffer(void *, const Enlighten::InputWorkspace *, PrecisionHint::Value)

Construct an IncidentLightingBuffer inside the memory provided.

CreateTransparencyWorkspace(void *, const InputWorkspace *, Geo::s32, Geo::s32, PrecisionHint::Value)

Construct an TransparencyWorkspace inside the memory provided.

CreateTransparencyWorkspace(void *, const InputWorkspace *, Geo::s32, PrecisionHint::Value)

Construct an TransparencyWorkspace inside the memory provided.

DoDirectInputLighting(DirectInputLightingParameters *, void *, size_t, Geo::u32 &)

Do the Direct input lighting stage.

DoIndirectInputLighting(IndirectInputLightingParameters *, Geo::u32 &)

Do the indirect input lighting stage.

GetBounceBufferSize(const Enlighten::BounceBuffer *, PrecisionHint::Value)

Returns the size of the specified BounceBuffer object.

GetBounceBufferSystemId(const Enlighten::BounceBuffer *)

Get system id from BounceBuffer.

GetIncidentLightingBufferSize(const Enlighten::IncidentLightingBuffer *, PrecisionHint::Value)

Returns the size of the specified IncidentLightingBuffer object.

GetIncidentLightingBufferSystemId(const Enlighten::IncidentLightingBuffer *)

Get system id from IncidentLightingBuffer.

SetTransparency(const InputWorkspace *, TransparencyWorkspace *, float)

Set all transparency values of transparencyWorkspace to the given value.

UpdateTransparencyWorkspace(const InputWorkspace *, TransparencyWorkspace *, const InterpolationInputSet *, Geo::s32, bool)

Update the transparency workspace with values calculated from interpolated probes.

UpdateTransparencyWorkspace(const InputWorkspace *, TransparencyWorkspace *, Enlighten::IProbeSetManager *, bool)

Update the transparency workspace with values calculated from interpolated probes.

VerifyBounceBufferData(const Enlighten::BounceBuffer *)

Returns true if there are no NaN's or non-finite numbers in the specified BounceBuffer object.

VerifyIncidentLightingBufferData(const Enlighten::IncidentLightingBuffer *)

Returns true if there are no NaN's or non-finite numbers in the specified InputLightingBuffer object.


Anchor
a599d4922d402bfcb54186c4c6d8d9304
a599d4922d402bfcb54186c4c6d8d9304

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
a1c756617d4030618162bde5010a34537
a1c756617d4030618162bde5010a34537

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
a1b1610bdc8c8ccdfa91996436367bf39
a1b1610bdc8c8ccdfa91996436367bf39

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
a16fc15077287bc15d36bcc0042ee4d7f
a16fc15077287bc15d36bcc0042ee4d7f

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
a0ea9902395dd8bccd88eba85462d07f5
a0ea9902395dd8bccd88eba85462d07f5

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
ae3bc7174e645f58b3fd991c1d84e3277
ae3bc7174e645f58b3fd991c1d84e3277

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
a39b31e642405f3cfb04f2e5516d8d099
a39b31e642405f3cfb04f2e5516d8d099

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
a4212cfc6503280d82724cfd515395806
a4212cfc6503280d82724cfd515395806

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
ae97b0279000e65f8157b630165327fa1
ae97b0279000e65f8157b630165327fa1

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
a94b6283bafc28b2b21c3109633964b33
a94b6283bafc28b2b21c3109633964b33

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
a91276b6a381599916e001f045ea18800
a91276b6a381599916e001f045ea18800

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
aee3265a7235a2f98d2c62e0c6193c9e5
aee3265a7235a2f98d2c62e0c6193c9e5

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
a04d3fdabf70d1705326dacb553df803c
a04d3fdabf70d1705326dacb553df803c

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
a0e9cdac8a4e26cce4f70ff45da308370
a0e9cdac8a4e26cce4f70ff45da308370

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
a15b68709304057b847f66bf8f4a17f8a
a15b68709304057b847f66bf8f4a17f8a

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
a452efd2fa73e30d597a3310ca3f06c70
a452efd2fa73e30d597a3310ca3f06c70

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
ab767eaa8dc2937459ffee320a951a9dc
ab767eaa8dc2937459ffee320a951a9dc

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
ae9ae7ac4d8d53bffe33abeec3dc5c370
ae9ae7ac4d8d53bffe33abeec3dc5c370

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
a36d15255d063fff3f12014ecda77fb20
a36d15255d063fff3f12014ecda77fb20

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
a03b343cf544d23a8b0a6ea200376dd6e
a03b343cf544d23a8b0a6ea200376dd6e

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
a02083a9c62ede1595476b02a2b3d4416
a02083a9c62ede1595476b02a2b3d4416

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
a1eac1330db90ce25a50d01ff077618d1
a1eac1330db90ce25a50d01ff077618d1

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
a0094839d8b82ec2c95fc5285bedf7009
a0094839d8b82ec2c95fc5285bedf7009

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
a9e3f120ddff419b49c50e6383f961308
a9e3f120ddff419b49c50e6383f961308

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
a514ed033aa8189a9bb96713f72bbed40
a514ed033aa8189a9bb96713f72bbed40

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.