30 lines
893 B
HLSL
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);
|
|
}
|