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

19 lines
655 B
HLSL

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
// high frequency dither pattern appearing almost random without banding steps
//note: from "NEXT GENERATION POST PROCESSING IN CALL OF DUTY: ADVANCED WARFARE"
// http://advances.realtimerendering.com/s2014/index.html
// Epic extended by FrameId
// ~7 ALU operations (2 frac, 3 mad, 2 *)
// @return 0..1
float InterleavedGradientNoise( float2 uv, float FrameId )
{
// magic values are found by experimentation
uv += FrameId * (float2(47, 17) * 0.695f);
const float3 magic = float3( 0.06711056f, 0.00583715f, 52.9829189f );
return frac(magic.z * frac(dot(uv, magic.xy)));
}