This is the documentation for Enlighten.
class Enlighten FrustumLight CachedData
class Enlighten::FrustumLight::CachedData
  └>Enlighten::InputLightBase
Cached data for FrustumLight.
Variables
Name | Description |
---|---|
Geo::v128 m_BoundsMax | Bounds max. |
Geo::v128 m_BoundsMin | Bounds min. |
Geo::v128 m_Colour | RGB intensity of the light (linear space). |
Geo::v128 m_CutoffSquared | Cutoff * cutoff. |
Geo::v128 m_Direction | Direction. |
Enlighten::InternalLightFalloffTable m_FalloffTable | 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_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::Matrix m_ViewProjTransposed | Transpose of view-projection matrix. |
Functions
Enlighten::FrustumLight::CachedData::CachedData
public: CachedData
(
  const FrustumLight & frustumLight,
  const void * perDusterVisibility
)
Constructor.
void Enlighten::FrustumLight::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::FrustumLight::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::FrustumLight::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::FrustumLight::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::FrustumLight::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::FrustumLight::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
Shades the given quad.
GEO_CONTROLLED_INLINE Geo::v128 Enlighten::FrustumLight::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 quads.