Files
UnrealEngine/Engine/Shaders/Private/Lumen/LumenFloatQuantization.ush
2025-05-18 13:04:45 +08:00

30 lines
893 B
HLSL

// 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);
}