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 Version History

« Previous Version 2 Current »

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.

  • No labels