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 »

struct Enlighten::Spotlight::CachedData

    └>Enlighten::InputLightBase

Cached data for spotlights.

Variables

Name Description
Geo::v128 m_BoundsMax

Axis aligned bounding box.

Geo::v128 m_BoundsMin

Axis aligned bounding box.

Geo::v128 m_Colour

RGB intensity of the light (linear space).

Geo::v128 m_CosLightAngle

Cos (light angle)

Geo::v128 m_CutoffSquared

Cutoff * cutoff.

Geo::v128 m_Direction

World space direction of light.

Geo::v128 m_DirectionScale

Direction scale.

Enlighten::InternalLightFalloffTable m_Falloff

Falloff table.

bool m_HasChanged

Whether the light has changed since it was last given to the extended direct lighting api.

Geo::u32 m_HasVisibilityData

Has visibility data?

const eLightType m_LightType

Type of input light corresponding to an eLightType enum value.

Geo::v128 m_NegativeCosAngleScaledPlusOne

-Cos(scaled light angle) + 1

Geo::v128 m_NegativeSinLightAngle

-Sin(light angle)

Geo::u32 m_Padding

Unused padding.

Geo::u64 m_Padding

Unused (this class is usually extended by one that starts with multiple v128s)

Geo::v128 m_Position

World space position of light.

Geo::v128 m_Radius

Radius.

Geo::v128 m_SpotlightTable[33]

Spotlight table.

const Geo::u8 * m_VisibilityData

Visibility data.

Geo::u64 m_VisibilityData64

Visibility data.

Functions


Enlighten::Spotlight::CachedData::CachedData


public: CachedData
(
    Spotlight & spotlight,
    const void * perDusterVisibility
)


Constructor.


void Enlighten::Spotlight::CachedData::Hash


public: void Hash
(
    Helpers::Hasher & hash,
    Geo::u32 clusterVisSize,
    Geo::u32 quadVisSize
)


Hash the light data.


Enlighten::InputLightBase::InputLightBase


protected: InputLightBase
(
    eLightType lightType
)


Constructor.


Enlighten::InputLightBase::InputLightBase


protected: InputLightBase
(
    eLightType lightType,
    bool hasChanged
)


Constructor.


GEO_CONTROLLED_INLINE bool Enlighten::Spotlight::CachedData::IsIntersectingCluster


public: GEO_CONTROLLED_INLINE bool IsIntersectingCluster
(
    const Geo::v128 & bbMin,
    const Geo::v128 & bbMax,
    const Geo::v128 & minNormalFlipped,
    const Geo::v128 & maxNormalFlipped
) const


Complex light V normalBoundingBox intersection test.


GEO_CONTROLLED_INLINE bool Enlighten::Spotlight::CachedData::IsIntersectingClusterGroup


public: GEO_CONTROLLED_INLINE bool IsIntersectingClusterGroup
(
    const Geo::v128 & bbMin,
    const Geo::v128 & bbMax,
    const Geo::v128 & minNormalFlipped,
    const Geo::v128 & maxNormalFlipped
) const


Light v ClusterGroup Bounding box intersection test.


GEO_CONTROLLED_INLINE bool Enlighten::Spotlight::CachedData::IsIntersectingSystem


public: GEO_CONTROLLED_INLINE bool IsIntersectingSystem
(
    const Geo::v128 & bbMin,
    const Geo::v128 & bbMax
) const


Simple Light V system BoundingBox intersection test.


GEO_CONTROLLED_INLINE void Enlighten::Spotlight::CachedData::ShadeFourSamples


public: GEO_CONTROLLED_INLINE void ShadeFourSamples
(
    const Geo::v128 & positionsX,
    const Geo::v128 & positionsY,
    const Geo::v128 & positionsZ,
    const Geo::v128 & normalsX,
    const Geo::v128 & normalsY,
    const Geo::v128 & normalsZ,
    Geo::u32 sampleIdx,
    Geo::v128 & colourOut0,
    Geo::v128 & colourOut1,
    Geo::v128 & colourOut2,
    Geo::v128 & colourOut3
) const


Shades the given samples.


GEO_CONTROLLED_INLINE Geo::v128 Enlighten::Spotlight::CachedData::ShadeQuad


public: GEO_CONTROLLED_INLINEGeo::v128 ShadeQuad
(
    const Geo::v128 & positionsX,
    const Geo::v128 & positionsY,
    const Geo::v128 & positionsZ,
    const Geo::v128 & normalsX,
    const Geo::v128 & normalsY,
    const Geo::v128 & normalsZ,
    Geo::u32 clusterIdx,
    Geo::u32 quadIdx
) const


Calculate the average light colour for the samples.


GEO_CONTROLLED_INLINE Geo::v128 Enlighten::Spotlight::CachedData::ShadeQuadIntensities


public: GEO_CONTROLLED_INLINEGeo::v128 ShadeQuadIntensities
(
    const Geo::v128 & positionsX,
    const Geo::v128 & positionsY,
    const Geo::v128 & positionsZ,
    const Geo::v128 & normalsX,
    const Geo::v128 & normalsY,
    const Geo::v128 & normalsZ,
    const Geo::v128 & visibility
) const


Shades the given quad.

  • No labels