// Copyright Epic Games, Inc. All Rights Reserved. /*============================================================================= LumenFloatQuantization.ush: Utility that quantizes floats for writing to render targets =============================================================================*/ #pragma once #include "../Quantization.ush" // 2^(-NumMantissaBits) float3 TargetFormatQuantizationError; float3 QuantizeForFloatRenderTarget(float3 Color, float E, const float3 QuantizationError) { return QuantizeFloatColor(Color, QuantizationError, E); } float3 QuantizeForFloatRenderTarget(float3 Color, float E) { return QuantizeForFloatRenderTarget(Color, E, TargetFormatQuantizationError); } float3 QuantizeForFloatRenderTarget(float3 Color, int3 P) { uint2 Random = Rand3DPCG16(P).xy; float E = Hammersley16(0, 1, Random).x; return QuantizeForFloatRenderTarget(Color, E); }