Versions Compared

Key

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

Implementation details of the extended input lighting API.

Classes

NameDescription
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::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::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_DIRECTIONAL_LIGHT >

Specialization to convert Light type enumeration to concrete type.

Enlighten::TypeIdToType< LIGHT_TYPE_UE4_DIRECTIONAL_LIGHT_FUNCTION >

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

NameDescription
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

NameDescription
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

NameDescription
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.


Anchor
acc39eeedbabcde23111b1d36ab245a5a
acc39eeedbabcde23111b1d36ab245a5a

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


Anchor
a3d55d723bf9282ce3009dadb29814e43
a3d55d723bf9282ce3009dadb29814e43

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


Anchor
a4ba5c681f20ca7449fe0b7c957721908
a4ba5c681f20ca7449fe0b7c957721908

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.


Anchor
ac60e200d9c95928c31061100ae58d7e4
ac60e200d9c95928c31061100ae58d7e4

size_t Enlighten::CalculateLightsCachedDataSize

...

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

...

Calculate the size of the cached lighting data.


Anchor
a7b035573ffcbee57dd251cf94bac88ed
a7b035573ffcbee57dd251cf94bac88ed

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.


Anchor
aa33a95a48d3ae44772dfbcff8e6eb2d2
aa33a95a48d3ae44772dfbcff8e6eb2d2

Geo::u32 Enlighten::DoDirectInputLightingInternal

...

public: Geo::u32 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

The number of lights that affect the system after culling.


Anchor
aa370a7fe56e0c8260df5d062f46e9d29
aa370a7fe56e0c8260df5d062f46e9d29

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


Anchor
a69cf55eae5e97238a8c5ec5d077e78d5
a69cf55eae5e97238a8c5ec5d077e78d5

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.


Anchor
a21152ed6a0d9aa32c4fa08562d16f196
a21152ed6a0d9aa32c4fa08562d16f196

void* Enlighten::GenerateCachedDataGeneric

...

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

...

Generate the CacheData for a specific light type.


Anchor
aa64b2c782ae5b8c2c37b90762f35e733
aa64b2c782ae5b8c2c37b90762f35e733

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.


Anchor
a7c90d5e8eb7a37ed1ab1bc047d1afa05
a7c90d5e8eb7a37ed1ab1bc047d1afa05

ValueType Enlighten::GetZeroValue

...

public: ValueType GetZeroValue()

...

Helper template to get the zero value of different types.


Anchor
afd5218fbac5bec9496214f52b4268789
afd5218fbac5bec9496214f52b4268789

float Enlighten::GetZeroValue< float >

...

public: float GetZeroValue< float >()

...

Helper template to get the zero value of floats.


Anchor
a1cac0214654644898edd07c480c4e014
a1cac0214654644898edd07c480c4e014

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

...

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

...

Helper template to get the zero value of v128s.


Anchor
aabb660ff6303213b80548508b1f890ed
aabb660ff6303213b80548508b1f890ed

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

...


Anchor
a09264bded1bad52e818b30061bbe2248
a09264bded1bad52e818b30061bbe2248

DynamicMaterialWorkspace::Status Enlighten::operator&

...

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

...

Bitwise AND of two dynamic material workspace statuses.


Anchor
a7f0f88d70a85ee61796aa434bde9ab52
a7f0f88d70a85ee61796aa434bde9ab52

DynamicMaterialWorkspace::Status Enlighten::operator|

...

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

...

Bitwise OR of two dynamic material workspace statuses.


Anchor
a3bb174293781ece1848bf898c9542691
a3bb174293781ece1848bf898c9542691

DynamicMaterialWorkspace::Status Enlighten::operator~

...

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

...

Bitwise NOT of a dynamic material workspace status.


Anchor
ad94f733bd491112fb2db159893f14348
ad94f733bd491112fb2db159893f14348

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

...

public: ValueType Quantise
(
    const ValueType & val
)

...

Quantise the ValueType value based on the ColourType storage.


Anchor
aca7c9c1c50c12ed87e736f1bfb73a180
aca7c9c1c50c12ed87e736f1bfb73a180

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.


Anchor
ac218e9d3a075a61fd6e9f561974c8834
ac218e9d3a075a61fd6e9f561974c8834

GEO_CONTROLLED_INLINE bool Enlighten::SelectAlbedoEmissiveTransparencyAndSurroundings

...

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

...

Selects albedo, emissive, transparency and surroundings.


Anchor
a5ab32874f84e8e78dbc0944d37e83245
a5ab32874f84e8e78dbc0944d37e83245

GEO_CONTROLLED_INLINE bool Enlighten::SelectEmissiveTransparencyAndSurroundings

...

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

...

Selects emissive, transparency and surroundings.


Anchor
ae4b7cda48131d41645b6139c6d94618d
ae4b7cda48131d41645b6139c6d94618d

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.


Anchor
a95c085d55feba59c6ec2022661b29ef6
a95c085d55feba59c6ec2022661b29ef6

GEO_CONTROLLED_INLINE bool Enlighten::SelectSurroundings

...

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

...

Selects surroundings.


Anchor
a7a7384d35b0aca533dd03ca630a1035a
a7a7384d35b0aca533dd03ca630a1035a

GEO_CONTROLLED_INLINE bool Enlighten::SelectTransparencyAndSurroundings

...

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

...

Selects transparency and surroundings.


Anchor
ab9e301d71ee749ca1ac0dff0786243fd
ab9e301d71ee749ca1ac0dff0786243fd

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.


Anchor
aed5ac461412a4cbf7f0ecb5e349b4381
aed5ac461412a4cbf7f0ecb5e349b4381

void Enlighten::VisitLights

...

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

...

Visitor function to apply the visitor functor to each light.


Anchor
a620d493a3a5ac06c08f5c1f8a45de23f
a620d493a3a5ac06c08f5c1f8a45de23f

void Enlighten::VisitSelectedLights

...

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

...

Visits the selected lights with the given visitor.


Anchor
a0418e994d39c6a4483fdf49ddbf05c7e
a0418e994d39c6a4483fdf49ddbf05c7e

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.