Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device. Atlassian cookies and tracking notice, (opens new window)

Enlighten API 3.10 Documentation
Results will update as you type.
  • Modules
    • module Enlighten
      • module Precompute
      • module Runtime
        • module Albedo Handling
        • module Core Runtime System
        • module Debugging Utilities
        • module High Level Runtime
        • module Input Lighting
          • module Emissive Environments
          • module Extended Input Lighting
          • module Implementation
            • module Customer Lights
          • module Projected Points
          • module Rectangle Lights
        • module Interpolation
        • module Monitoring functionality
        • module Transparency
        • module Utilities
    • module Infrastructure (GeoBase)
    • module Infrastructure (GeoCore)
  • Namespaces
  • Notes
    Calendars

You‘re viewing this with anonymous access, so some content might be blocked.
/
module Implementation

    This is the documentation for Enlighten.

    module Implementation

    Nov 21, 2019

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

    , multiple selections available,
    {"serverDuration": 13, "requestCorrelationId": "d103a5c56d124e5a8e0d622cb3c4f0f2"}