This is the documentation for Enlighten.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Implementation details of the extended input lighting API.

Classes

Name Description
Enlighten::A8CpuTextureSampler

A8 texture sampler.

Enlighten::AllFilter

Return all light types.

Enlighten::BoxSpotlight

BoxSpotlight class used by extended input lighting.

Enlighten::BoxSpotlight::CachedData

Cached data for box spotlight.

Enlighten::CachedLightSelector

Selects the Cached type for the input light.

Enlighten::CachedLightSelector::Select

Selects the Cached type for the input light.

Enlighten::CachedLightWriter

Cached Lights writer.

Enlighten::CanQuickShade

By default, light types do not support quickshade.

Enlighten::CanQuickShade< LIGHT_TYPE_DIRECTIONAL_LIGHT >

Specialization to enable QuickShade on this light type.

Enlighten::ClusterMaterialComponent

Enlighten internal class for per material dynamic updates.

Enlighten::ClusterMaterials

Enlighten internal implementation for cluster albedo materials.

Enlighten::ClusterMaterials::ClusterMaterialCount

Number of dusters and a material index which is assigned to them.

Enlighten::ClusterProbeBounceSampleData

Precompute data block detailing a buffer of ClusterProbeBounceSamples (internal).

Enlighten::ClusterProbeSample

Cluster probe bounce sample (internal).

Enlighten::ClusterProbeTransparencySampleData

Precompute data block detailing probe transparency sample data (internal).

Enlighten::ConstLightValueIterator

Const LightValue iterator. This contains the logic for iterating over LightValue64 or LightValue128 arrays.

Enlighten::CountLightSizeVisitor

Count light size.

Enlighten::CpuTextureSamplerBase

CPU texture sampler base class.

Enlighten::CullCluster

A class used to apply cluster-light level culling.

Enlighten::CullClusterGroup

A class used to apply clustergroup-light level culling.

Enlighten::CullingIterator

Struct to iterate over the lights of a particular type, applying the culling operation.

Enlighten::CullingIterator< LIGHT_TYPE_INVALID, Culler >

Terminator for CullingIterator.

Enlighten::CullSystem

A class used to apply system-light level culling.

Enlighten::DefaultGeometryTransparencySampler

The default transparency sampler.

Enlighten::DirectionalLight

DirectionalLight class used by extended input lighting.

Enlighten::DirectionalLight::CachedData

Cached data for DirectionalLight.

Enlighten::DynamicMaterialWorkspace

Enlighten object used for dynamic material updates at runtime.

Enlighten::ExcludeQuickShadeFilter

Return all types except quick shade lights.

Enlighten::Fp16CpuTextureSampler

FP16 texture sampler.

Enlighten::FrustumLight

FrustumLight class used by extended input lighting.

Enlighten::FrustumLight::CachedData

Cached data for FrustumLight.

Enlighten::HashLightVisitor

Hash lights functor.

Enlighten::IncidentLightingBuffer

A buffer containing the incident lighting for a system's input sample points (internal).

Enlighten::IndirectInputLightingInternalParameters

A class containing the parameters to be used as input to the internal indirect input lighting stage.

Enlighten::InputLightingBuffer

A single frame of the InputWorkspace lighting (internal).

Enlighten::InputWorkspaceDebugIterator

This class is used to iterate through the duster samples in order to get a InputWorkspaceDebugPoint.

Enlighten::InputWorkspaceDynamicInternal

Runtime data about the quad approximations to clusters used for radiosity computations for dynamic systems (internal).

Enlighten::InputWorkspaceInternal

Runtime data about the dusters (internal).

Enlighten::InternalLightFalloffTable

The light table stores the falloff model of a light.

Enlighten::LightSelector

Selects the input light type.

Enlighten::LightSelector::Select

Selects the input light type.

Enlighten::LightTypeInfo

A class which represents a group of a particular type of lights.

Enlighten::LightValue64

Convenience value type for a half precision lighting value.

Enlighten::LightValueIterator

LightValue iterator. This contains the logic for iterating over LightValue64 or LightValue128 arrays.

Enlighten::LrbCpuTextureSampler

LRB texture sampler.

Enlighten::MaterialAlbedoSampler

Albedo sampler read the cluster albedo after all the quads have been sampled.

Enlighten::MaterialEmissiveSampler

Emissive sampler reads the emissive for the cluster.

Enlighten::MaterialGuids

Storage of mappings between "old" u64 material IDs and "new" instance, mesh and material GUIDs.

Enlighten::MaterialGuids::GeometryInfo

Stored data for a geometry.

Enlighten::MaterialGuids::InstanceInfo

Stored data for an instance.

Enlighten::MaterialGuids::MaterialGuidMapping

Stored data for a material-guid mapping.

Enlighten::MaterialGuids::MeshInfo

Stored data for a mesh.

Enlighten::MaterialSampler

Material sampler reads albedo, emissive and transparency for the cluster.

Enlighten::MaterialTransparencySampler

Transparency sampler reads the transparency for the cluster.

Enlighten::NullGeometryTransparencySampler

A transparency sampler which samples the transparency as opaque.

Enlighten::NullMaterialEmissiveSampler

An emissive material sampler which returns black.

Enlighten::NullMaterialTransparencySampler

A transparency sampler which samples the transparency as opaque.

Enlighten::NullSampler

A base implementation for a sampler that does nothing.

Enlighten::NullSurroundingsSampler

Surroundings sampler that always returns zero.

Enlighten::PackedDusterPoint

This class contains the positions and normals of 4 duster points (internal).

Enlighten::PixelCoord

Enlighten internal class for storing a pixel index within an albedo or emissive texture.

Enlighten::PointLight

PointLight class used by extended input lighting.

Enlighten::PointLight::CachedData

Cached data for point light.

Enlighten::PrecisionHint

Enumeration for the precision hint. The hint is used depending on whether the option is supported on the platform.

Enlighten::ProbeBounceWorkspace

Workspace used for probe bounce (internal).

Enlighten::QuadIterator

Quad iterator class applies the samplers to a set of quads for a given cluster.

Enlighten::QuadShader

The QuadShader class is responsible for unpacking the quad positions and normal during the constructor call and then later it will then iterate through a given set of lights shading the extracted quad.

Enlighten::QuickFlatClusterShader

The QuickFlatClusterShader class is responsible for unpacking a single normal during the constructor call and then later it will then iterate through a given set of lights shading the extracted normal.

Enlighten::QuickQuadShader

The QuickQuadShader class is responsible for unpacking four quad normals during the constructor call and then later it will then iterate through a given set of lights shading the extracted normals.

Enlighten::QuickShadeOnlyFilter

Return only quick shade light types.

Enlighten::R11G11B10CpuTextureSampler

R11G11B10 texture sampler.

Enlighten::R9G9B9E5CpuTextureSampler

R9G9B9E5 texture sampler.

Enlighten::RadiosityInputTree

Compressed description of the input cluster tree.

Enlighten::RectangleLight

RectangleLight class used by extended input lighting.

Enlighten::RectangleLight::CachedData

Cached data for rectangle light.

Enlighten::RgbaCpuTextureSampler

RGBA texture sampler.

Enlighten::RgbmCpuTextureSampler

RGBM texture sampler.

Enlighten::SelectAll

Selector which selects all lights.

Enlighten::SelectCulled

Selector which selects culled lights.

Enlighten::SelectUnculled

Selector which selects unculled lights.

Enlighten::ShadeFourSamplesOperator

Visitor operator used to shade four samples for each light type.

Enlighten::ShadeQuadOperator

Visitor operator used to shade the quad for each light type.

Enlighten::SortedLights

A class used to produce a sorted, culled list of lights.

Enlighten::SortedLightsOperator

Sorted lights operator interface.

Enlighten::SortedLightsVisibilityIdxWriter

Sorted lights visibility index writer.

Enlighten::SortedLightsVisitor

Visitor construct to apply each operator to the relevant light types.

Enlighten::SortedLightsVisitor< LIGHT_TYPE_INVALID, Op, LightTypeFilter >

Terminator condition for light visitor.

Enlighten::Spotlight

Spotlight class used by extended input lighting.

Enlighten::Spotlight::CachedData

Cached data for spotlights.

Enlighten::TransformedBounds

A struct used to apply a transform to a bounding box.

Enlighten::TransparencySurroundingsSampler

Surroundings sampler for transparency.

Enlighten::TransparencyWorkspace

Workspace used for authored destruction of lightmapped geometry (internal).

Enlighten::TypeIdToType

Convert from type enum to concrete type Put this above the light type includes so the specialisations can go in the same file.

Enlighten::TypeIdToType< LIGHT_TYPE_BOXSPOT_LIGHT >

Specialization to convert Light type enumeration to concrete type.

Enlighten::TypeIdToType< LIGHT_TYPE_DIRECTIONAL_LIGHT >

Specialization to convert Light type enumeration to concrete type.

Enlighten::TypeIdToType< LIGHT_TYPE_FRUSTUM_LIGHT >

Specialization to convert Light type enumeration to concrete type.

Enlighten::TypeIdToType< LIGHT_TYPE_POINT_LIGHT >

Specialization to convert Light type enumeration to concrete type.

Enlighten::TypeIdToType< LIGHT_TYPE_RECTANGLE_LIGHT >

Specialization to convert Light type enumeration to concrete type.

Enlighten::TypeIdToType< LIGHT_TYPE_SPOT_LIGHT >

Specialization to convert Light type enumeration to concrete type.

Enlighten::TypeIdToType< LIGHT_TYPE_UE4_ISFALLOFF >

Specialization to convert Light type enumeration to concrete type.

Enlighten::TypeIdToType< LIGHT_TYPE_UE4_RECTLIGHT >

Specialization to convert Light type enumeration to concrete type.

Enlighten::TypeIdToType< LIGHT_TYPE_UE4_UNREALFALLOFF >

Specialization to convert Light type enumeration to concrete type.

Enlighten::VisibilityBuffer

Encapsulation of light visibility information.

Enlighten::VisitLightsGeneric

Visit the lights of a particular type. Do this recursively.

Enlighten::VisitLightsGeneric< TypeSelector, Visitor, LIGHT_TYPE_INVALID >

Visitor terminator.

Enlighten::VisitSelectedLightsGeneric

Visitor for selected lights.

Enlighten::VisitSelectedLightsGeneric< TypeSelector, Visitor, LightSelector, LIGHT_TYPE_INVALID >

Visitor for selected lights.

Variables

Name Description
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::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);.

Typedefs

Name Description
Geo::v128 LightValue128

Convenience value type for a full precision lighting value.

ClusterMaterialComponent< AlbedoBuffer::ColourType > MaterialAlbedoComponent

Material component for albedo.

ClusterMaterialComponent< EmissiveBuffer::ColourType > MaterialEmissiveComponent

Material component for emissive.

ClusterMaterialComponent< TransparencyBuffer::ColourType > MaterialTransparencyComponent

Material component for transparency.

Functions

Name Description
CalcLightTableMem(Geo::u32)

Calculate the maximum memory required to hold the lights table.

CalcRequiredScratchSpaceMemoryInternal(InputLightBase **, Geo::u32, Geo::s32)

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

CalculateCoordLinearShiftedByHalfPixel(float, float, Geo::s32, Geo::s32, Geo::s32 &, Geo::s32 &, float &, float &)

Shift by half pixel is needed so that the interpolation code (SampleBilinear) interpolates between correct pixels.

CalculateLightsCachedDataSize(InputLightBase **, Geo::u32)

Calculate the size of the cached lighting data.

CreateSortedLights(InputLightBase **, void **, Geo::s32, void *, size_t, Geo::u32 &)

Create the buffer of lights sorted by type.

DoDirectInputLightingInternal(DirectInputLightingParameters *, void *, size_t, TransformOp)

Do the internal direct input lighting stage.

DoIndirectInputLightingInternal(IndirectInputLightingInternalParameters< MaterialSamplerType, InputLightingSurroundingsType, GeometryTransparencySamplerType > *)

Do the internal indirect input lighting stage.

GenerateCachedData(SortedLights *, InputLightBase *, void **)

Go through all the sorted lights generating the CachedData for each. Also modifies sortedLights to point to the cached data.

GenerateCachedDataGeneric(SortedLights *, InputLightBase *, void **)

Generate the CacheData for a specific light type.

GenerateCachedDataGeneric< LIGHT_TYPE_INVALID >(SortedLights *, InputLightBase *, void **)

Specialisation for invalid light types - does nothing.

GetZeroValue()

Helper template to get the zero value of different types.

GetZeroValue< float >()

Helper template to get the zero value of floats.

GetZeroValue< Geo::v128 >()

Helper template to get the zero value of v128s.

LightFalloffFunction(const InternalLightFalloffTable &, const Geo::v128 &, const Geo::v128 &)


common light falloff function used by spot and point lights, computes four lights at a time


operator&(DynamicMaterialWorkspace::Status, DynamicMaterialWorkspace::Status)

Bitwise AND of two dynamic material workspace statuses.

operator|(DynamicMaterialWorkspace::Status, DynamicMaterialWorkspace::Status)

Bitwise OR of two dynamic material workspace statuses.

operator~(DynamicMaterialWorkspace::Status)

Bitwise NOT of a dynamic material workspace status.

Quantise(const ValueType &)

Quantise the ValueType value based on the ColourType storage.

SampleBilinear(const tIrradianceTexture *, float, float)

Samples the given texture at the given co-ordinates, using bilinear filtering.

SelectAlbedoEmissiveTransparencyAndSurroundings(const IndirectInputLightingParameters *, const InputWorkspaceInternal *)

Selects albedo, emissive, transparency and surroundings.

SelectEmissiveTransparencyAndSurroundings(const IndirectInputLightingParameters *, const InputWorkspaceInternal *)

Selects emissive, transparency and surroundings.

SelectSamplersAndDoIndirectInputLighting(const IndirectInputLightingParameters *, const InputWorkspaceInternal *)

Selects samplers and does indirect input lighting.

SelectSurroundings(const IndirectInputLightingParameters *, const InputWorkspaceInternal *)

Selects surroundings.

SelectTransparencyAndSurroundings(const IndirectInputLightingParameters *, const InputWorkspaceInternal *)

Selects transparency and surroundings.

SortedLights(SortedLights *, const Culler &)

Construct from another SortedLights while applying culling.

VisitLights(SortedLights *, Visitor &)

Visitor function to apply the visitor functor to each light.

VisitSelectedLights(const SortedLights *, Visitor &, LightSelector &, SortedLightsOperator *)

Visits the selected lights with the given visitor.

WriteSortedLightsToMem(SortedLights *, void *)

Write the sorted lights to memory.


Geo::u32 Enlighten::CalcLightTableMem


public: Geo::u32 CalcLightTableMem
(
    Geo::u32 numLights
)


Calculate the maximum memory required to hold the lights table.

Parameters
[in] numLights

Number of lights in the world


size_t Enlighten::CalcRequiredScratchSpaceMemoryInternal


public: size_t CalcRequiredScratchSpaceMemoryInternal
(
    InputLightBase ** lights,
    Geo::u32 numLights,
    Geo::s32 numLevelsOfCulling
)


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.

[in] numLevelsOfCulling

each level of culling requires an additional copy of the SortedLights structure.

Returns

Required memory in bytes


GEO_CONTROLLED_INLINE void Enlighten::CalculateCoordLinearShiftedByHalfPixel


public: GEO_CONTROLLED_INLINE void CalculateCoordLinearShiftedByHalfPixel
(
    float u,
    float v,
    Geo::s32 width,
    Geo::s32 height,
    Geo::s32 & xi,
    Geo::s32 & yi,
    float & fracX,
    float & fracY
)


Shift by half pixel is needed so that the interpolation code (SampleBilinear) interpolates between correct pixels.


size_t Enlighten::CalculateLightsCachedDataSize


public: size_t CalculateLightsCachedDataSize
(
    InputLightBase ** lights,
    Geo::u32 numLights
)


Calculate the size of the cached lighting data.


SortedLights* Enlighten::CreateSortedLights


public: SortedLights * CreateSortedLights
(
    InputLightBase ** lights,
    void ** visibilityPointers,
    Geo::s32 numTotalLights,
    void * bankScratchspace,
    size_t bankScratchspaceSize,
    Geo::u32 & requiredLightsBufferSize
)


Create the buffer of lights sorted by type.

Lights banks are controlled through the visibilityPointers parameter.

Parameters
[in] lights

An unsorted array of pointers to lights

[in] visibilityPointers

An unsorted array of pointers to visbility buffers. The pointers must correspond to their respective lights in the lights array.

[in] numTotalLights

The number of entries in the lights and visibilityPointers arrays.

[in] bankScratchspace

A pointer to memory where the SortedLights buffer will be constructed.

[in] bankScratchspaceSize

The size of the bankScratchspace memory. (Reserved for future use)

[out] requiredLightsBufferSize

The size of the buffer required to hold the CachedData objects for the given array of lights.


bool Enlighten::DoDirectInputLightingInternal


public: bool DoDirectInputLightingInternal
(
    DirectInputLightingParameters * params,
    void * scratchspace,
    size_t scratchspaceSize,
    TransformOp transform
)


Do the internal direct input lighting stage.

Called from DoDirectInputLighting() function.

Parameters
[in] params

A pointer to a complete DirectInputLightingParameters object.

[in] scratchspace

A pointer to allocated scratchspace memory.

[in] scratchspaceSize

The size of the scratchspace memory calculated with CalcRequiredScratchSpaceMemory function.

[in] transform

An internal transformation operand.

Returns

true on success


bool Enlighten::DoIndirectInputLightingInternal


public: bool DoIndirectInputLightingInternal
(
    IndirectInputLightingInternalParameters< MaterialSamplerType, InputLightingSurroundingsType, GeometryTransparencySamplerType > * params
)


Do the internal indirect input lighting stage.

Called from DoIndirectInputLighting() function.

Parameters
[in] params

A pointer to a complete IndirectInputLightingParameters object.

Returns

true on success


void* Enlighten::GenerateCachedData


public: void * GenerateCachedData
(
    SortedLights * sortedLights,
    InputLightBase * cachedLightMemory,
    void ** unsortedVisibilityPointers
)


Go through all the sorted lights generating the CachedData for each. Also modifies sortedLights to point to the cached data.


void* Enlighten::GenerateCachedDataGeneric


public: void * GenerateCachedDataGeneric
(
    SortedLights * sortedLights,
    InputLightBase * cachedLightMemory,
    void ** unsortedVisibilityPointers
)


Generate the CacheData for a specific light type.


void* Enlighten::GenerateCachedDataGeneric< LIGHT_TYPE_INVALID >


public: void * GenerateCachedDataGeneric< LIGHT_TYPE_INVALID >
(
    SortedLights * sortedLights,
    InputLightBase * cachedLightMemory,
    void ** unsortedVisibilityPointers
)


Specialisation for invalid light types - does nothing.


ValueType Enlighten::GetZeroValue


public: ValueType GetZeroValue()


Helper template to get the zero value of different types.


float Enlighten::GetZeroValue< float >


public: float GetZeroValue< float >()


Helper template to get the zero value of floats.


Geo::v128 Enlighten::GetZeroValue< Geo::v128 >


public: Geo::v128 GetZeroValue< Geo::v128 >()


Helper template to get the zero value of v128s.


Geo::v128 Enlighten::LightFalloffFunction


public: Geo::v128 LightFalloffFunction
(
    const InternalLightFalloffTable & light,
    const Geo::v128 & lightRadius,
    const Geo::v128 & lightDistances
)



common light falloff function used by spot and point lights, computes four lights at a time



DynamicMaterialWorkspace::Status Enlighten::operator&


public: DynamicMaterialWorkspace::Status operator&
(
    DynamicMaterialWorkspace::Status a,
    DynamicMaterialWorkspace::Status b
)


Bitwise AND of two dynamic material workspace statuses.


DynamicMaterialWorkspace::Status Enlighten::operator|


public: DynamicMaterialWorkspace::Status operator|
(
    DynamicMaterialWorkspace::Status a,
    DynamicMaterialWorkspace::Status b
)


Bitwise OR of two dynamic material workspace statuses.


DynamicMaterialWorkspace::Status Enlighten::operator~


public: DynamicMaterialWorkspace::Status operator~
(
    DynamicMaterialWorkspace::Status a
)


Bitwise NOT of a dynamic material workspace status.


Enlighten::ClusterMaterialComponent< ColourType >::ValueType Enlighten::ClusterMaterialComponent< ColourType >::Quantise


public: ValueType Quantise
(
    const ValueType & val
)


Quantise the ValueType value based on the ColourType storage.


GEO_CONTROLLED_INLINE Geo::v128 Enlighten::SampleBilinear


public: GEO_CONTROLLED_INLINEGeo::v128 SampleBilinear
(
    const tIrradianceTexture * texture,
    float u,
    float v
)


Samples the given texture at the given co-ordinates, using bilinear filtering.


GEO_CONTROLLED_INLINE bool Enlighten::SelectAlbedoEmissiveTransparencyAndSurroundings


public: GEO_CONTROLLED_INLINE bool SelectAlbedoEmissiveTransparencyAndSurroundings
(
    const IndirectInputLightingParameters * params,
    const InputWorkspaceInternal * inputWorkspace
)


Selects albedo, emissive, transparency and surroundings.


GEO_CONTROLLED_INLINE bool Enlighten::SelectEmissiveTransparencyAndSurroundings


public: GEO_CONTROLLED_INLINE bool SelectEmissiveTransparencyAndSurroundings
(
    const IndirectInputLightingParameters * params,
    const InputWorkspaceInternal * inputWorkspace
)


Selects emissive, transparency and surroundings.


GEO_CONTROLLED_INLINE bool Enlighten::SelectSamplersAndDoIndirectInputLighting


public: GEO_CONTROLLED_INLINE bool SelectSamplersAndDoIndirectInputLighting
(
    const IndirectInputLightingParameters * params,
    const InputWorkspaceInternal * inputWorkspace
)


Selects samplers and does indirect input lighting.


GEO_CONTROLLED_INLINE bool Enlighten::SelectSurroundings


public: GEO_CONTROLLED_INLINE bool SelectSurroundings
(
    const IndirectInputLightingParameters * params,
    const InputWorkspaceInternal * inputWorkspace
)


Selects surroundings.


GEO_CONTROLLED_INLINE bool Enlighten::SelectTransparencyAndSurroundings


public: GEO_CONTROLLED_INLINE bool SelectTransparencyAndSurroundings
(
    const IndirectInputLightingParameters * params,
    const InputWorkspaceInternal * inputWorkspace
)


Selects transparency and surroundings.


GEO_CONTROLLED_INLINE Enlighten::SortedLights::SortedLights


public: SortedLights
(
    SortedLights * sourceLights,
    const Culler & culler
)


Construct from another SortedLights while applying culling.

Construct a SortedLights object from another SortedLights object while applying culling.


void Enlighten::VisitLights


public: void VisitLights
(
    SortedLights * sortedLights,
    Visitor & visitor
)


Visitor function to apply the visitor functor to each light.


void Enlighten::VisitSelectedLights


public: void VisitSelectedLights
(
    const SortedLights * sortedLights,
    Visitor & visitor,
    LightSelector & lightSelector,
    SortedLightsOperator * optionalSortedLightsOperator
)


Visits the selected lights with the given visitor.


void Enlighten::WriteSortedLightsToMem


public: void WriteSortedLightsToMem
(
    SortedLights * sortedLights,
    void * destMem
)


Write the sorted lights to memory.

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.

  • No labels