This is the documentation for Enlighten.
Half-precision input lighting
To save memory, it's possible to use half-precision InputLightingBuffer
and IncidentLightingBuffer
objects, which store lighting with 16-bit float precision. This may have a performance impact, depending on platform, so it's important to consider your individual integration requirements. Xbox One, PS4 and Neon can do the conversion for minimal cost, but there is a more significant cost for SSE2 platforms.
The following function definitions specify the input lighting precision hint.
Geo::u32 GEO_CALL CalcIncidentLightingBufferSize(const Enlighten::InputWorkspace* inputWorkspace, PrecisionHint::Value precision = PrecisionHint::DEFAULT_PRECISION); Geo::u32 GEO_CALL GetIncidentLightingBufferSize(const Enlighten::IncidentLightingBuffer* incidentLightingBuffer, PrecisionHint::Value precision = PrecisionHint::DEFAULT_PRECISION); Enlighten::IncidentLightingBuffer* GEO_CALL CreateIncidentLightingBuffer(void* memory, const Enlighten::InputWorkspace* inputWorkspace, PrecisionHint::Value precision=PrecisionHint::DEFAULT_PRECISION); Geo::u32 GEO_CALL CalcInputLightingBufferSize(const InputWorkspace* inputWorkspace, PrecisionHint::Value precisionHint = PrecisionHint::DEFAULT_PRECISION); InputLightingBuffer* GEO_CALL CreateInputLightingBuffer(void* memory, const InputWorkspace* inputWorkspace, PrecisionHint::Value precisionHint = PrecisionHint::DEFAULT_PRECISION); Geo::u32 GEO_CALL CalcEnvironmentInputLightingBufferSize(Geo::s32 environmentResolution, PrecisionHint::Value precisionHint = PrecisionHint::DEFAULT_PRECISION); InputLightingBuffer* GEO_CALL CreateEnvironmentInputLightingBuffer(void* memory, Geo::s32 environmentResolution, PrecisionHint::Value precisionHint = PrecisionHint::DEFAULT_PRECISION);