This is the documentation for Enlighten.

struct Enlighten UE4 UE4InputLight CachedData

struct Enlighten::UE4::UE4InputLight::CachedData

    └>Enlighten::InputLightBase

Cached data for a UE4InputLight.

Functions

Name Description
CachedData(UE4InputLight &, const void *)

Constructor.

DistanceFilter(float)

Return true if this light affects a system at the specified distance from the viewer.

GetCosCullAngle()

Accessors.

GetCosOuterCone()

Accessors.

GetIntensity()

Accessors.

GetInvCosConeDifference()

Accessors.

GetNegativeSinCullAngle()

Accessors.

GetSqrRadius()

Accessors.

Hash(Helpers::Hasher &, Geo::u32, Geo::u32)

Hash the light data.

InputLightBase(eLightType, bool)

Constructor.

InputLightBase(eLightType)

Constructor.

IsIntersectingCluster(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &)

Complex light V normalBoundingBox intersection test.

IsIntersectingClusterGroup(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &)

Light v ClusterGroup Bounding box intersection test.

IsIntersectingSystem(const Geo::v128 &, const Geo::v128 &)

Simple Light V system BoundingBox intersection test.

ShadeFourSamples(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, Geo::u32, Geo::v128 &, Geo::v128 &, Geo::v128 &, Geo::v128 &)

Shades the given samples.

ShadeQuad(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, Geo::u32, Geo::u32)

Shades the given quad.

ShadeQuadIntensities(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &)

Believe it or not, making this function force-inline is actually a huge perf win.

Variables

Name Description
bool bFullSphere

Full sphere?

bool bLineLight

True if this light has line-based falloff instead of point.

Geo::v128 BoundsMax

Axis aligned bounding box.

Geo::v128 BoundsMin

Axis aligned bounding box.

bool bSpotlight

Is this a spotlight?

Geo::v128 CosOuterCone_InvCosConeDiff_CosCullAngle_NegSinCullAngle

Pack four floats into a single v128 to avoid bloat.

Geo::v128 Direction

World space direction of the light.

Geo::u32 HasVisibility

Has visibility?

const float * IESProfileTable

IES profile table.

Geo::v128 Intensity_SqrRadius

RGB intensity of the light, plus square-radius packed into the w component.

Geo::v128 LightPos

World space position of light.

bool m_HasChanged

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

const eLightType m_LightType

Type of input light corresponding to an eLightType enum value.

Geo::u64 m_Padding

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

RadialFalloffModelType::CachedData RadialFalloffModel

Cached data for radial falloff model.

const Geo::u8 * VisibilityData

Visibility data.

Geo::s64 VisibilityDataU64

Visibility data.


Enlighten::UE4::UE4InputLight< RadialFalloffModelType >::CachedData::CachedData


public: CachedData
(
    UE4InputLight & light,
    const void * perDusterVisibility
)


Constructor.


GEO_CONTROLLED_INLINE bool Enlighten::InputLightBase::DistanceFilter


public: GEO_CONTROLLED_INLINE bool DistanceFilter
(
    float viewDistance
) const


Return true if this light affects a system at the specified distance from the viewer.


GEO_CONTROLLED_INLINE Geo::v128 Enlighten::UE4::UE4InputLight< RadialFalloffModelType >::CachedData::GetCosCullAngle


public: GEO_CONTROLLED_INLINEGeo::v128 GetCosCullAngle() const


Accessors.


GEO_CONTROLLED_INLINE Geo::v128 Enlighten::UE4::UE4InputLight< RadialFalloffModelType >::CachedData::GetCosOuterCone


public: GEO_CONTROLLED_INLINEGeo::v128 GetCosOuterCone() const


Accessors.


GEO_CONTROLLED_INLINE Geo::v128 Enlighten::UE4::UE4InputLight< RadialFalloffModelType >::CachedData::GetIntensity


public: GEO_CONTROLLED_INLINEGeo::v128 GetIntensity() const


Accessors.


GEO_CONTROLLED_INLINE Geo::v128 Enlighten::UE4::UE4InputLight< RadialFalloffModelType >::CachedData::GetInvCosConeDifference


public: GEO_CONTROLLED_INLINEGeo::v128 GetInvCosConeDifference() const


Accessors.


GEO_CONTROLLED_INLINE Geo::v128 Enlighten::UE4::UE4InputLight< RadialFalloffModelType >::CachedData::GetNegativeSinCullAngle


public: GEO_CONTROLLED_INLINEGeo::v128 GetNegativeSinCullAngle() const


Accessors.


GEO_CONTROLLED_INLINE Geo::v128 Enlighten::UE4::UE4InputLight< RadialFalloffModelType >::CachedData::GetSqrRadius


public: GEO_CONTROLLED_INLINEGeo::v128 GetSqrRadius() const


Accessors.


void Enlighten::UE4::UE4InputLight< RadialFalloffModelType >::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,
    bool hasChanged
)


Constructor.


Enlighten::InputLightBase::InputLightBase


protected: InputLightBase
(
    eLightType lightType
)


Constructor.


GEO_CONTROLLED_INLINE bool Enlighten::UE4::UE4InputLight< RadialFalloffModelType >::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::UE4::UE4InputLight< RadialFalloffModelType >::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::UE4::UE4InputLight< RadialFalloffModelType >::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::UE4::UE4InputLight< RadialFalloffModelType >::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::UE4::UE4InputLight< RadialFalloffModelType >::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::UE4::UE4InputLight< RadialFalloffModelType >::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


Believe it or not, making this function force-inline is actually a huge perf win.