Versions Compared

Key

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

struct Enlighten::UE4::UE4InputLight::CachedData

    └>Enlighten::InputLightBase

Cached data for a UE4InputLight.

Functions

NameDescription
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

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


Anchor
a1bd13c9747abdb228bea886f6c6e3b49
a1bd13c9747abdb228bea886f6c6e3b49

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

...

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

...

Constructor.


Anchor
a8c141f069d3b871bbe1903146fb8808d
a8c141f069d3b871bbe1903146fb8808d

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.


Anchor
a373ad87ac1c6e6c4fecf08379b868512
a373ad87ac1c6e6c4fecf08379b868512

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

...

public: GEO_CONTROLLED_INLINEGeo::v128 GetCosCullAngle() const

...

Accessors.


Anchor
a544a9bdca28d641d0e8e7782764d4a59
a544a9bdca28d641d0e8e7782764d4a59

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

...

public: GEO_CONTROLLED_INLINEGeo::v128 GetCosOuterCone() const

...

Accessors.


Anchor
a1601de6840d9c2a7fd872d4d07b22b4c
a1601de6840d9c2a7fd872d4d07b22b4c

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

...

public: GEO_CONTROLLED_INLINEGeo::v128 GetIntensity() const

...

Accessors.


Anchor
aaee9a81f6ecd6da7a0b08dffcf92c6f8
aaee9a81f6ecd6da7a0b08dffcf92c6f8

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

...

public: GEO_CONTROLLED_INLINEGeo::v128 GetInvCosConeDifference() const

...

Accessors.


Anchor
addc4c3ea34d4d9acd0f817e26327e851
addc4c3ea34d4d9acd0f817e26327e851

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

...

public: GEO_CONTROLLED_INLINEGeo::v128 GetNegativeSinCullAngle() const

...

Accessors.


Anchor
a3727b234b738d43fa9c654d7c1be0072
a3727b234b738d43fa9c654d7c1be0072

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

...

public: GEO_CONTROLLED_INLINEGeo::v128 GetSqrRadius() const

...

Accessors.


Anchor
aab39860cf792efc96769af26d5aafe2d
aab39860cf792efc96769af26d5aafe2d

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

...

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

...

Hash the light data.


Anchor
a8f8299daadfb542d3d6821951b936188
a8f8299daadfb542d3d6821951b936188

Enlighten::InputLightBase::InputLightBase

...

protected: InputLightBase
(
    eLightType lightType,
    bool hasChanged
)

...

Constructor.


Anchor
a1e800e092db44a3676d766c6b1317085
a1e800e092db44a3676d766c6b1317085

Enlighten::InputLightBase::InputLightBase

...

protected: InputLightBase
(
    eLightType lightType
)

...

Constructor.


Anchor
abd8bc1ce5796aeb2703f655a179d474e
abd8bc1ce5796aeb2703f655a179d474e

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.


Anchor
a82402ac9d410df76cfd207f20d81c283
a82402ac9d410df76cfd207f20d81c283

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.


Anchor
a9446e7bd9f3c1148d34c66698f6d8ddb
a9446e7bd9f3c1148d34c66698f6d8ddb

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.


Anchor
a848e2c53e8e56fdad96c375e4edce76a
a848e2c53e8e56fdad96c375e4edce76a

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.


Anchor
af7f7f0640d9d2dd90041dd9c2c03a381
af7f7f0640d9d2dd90041dd9c2c03a381

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.


Anchor
a4f11d51bdbc2b0a6e7cb1e09c0a7e649
a4f11d51bdbc2b0a6e7cb1e09c0a7e649

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.