Skip to content

Commit 168655c

Browse files
committed
NRD v3.4.0:
HIGHLIGHTS: - NRD: anisotropic curvature estimation - REBLUR/RELAX: improved specular reprojection on curved surfaces - REBLUR: added fast history - REBLUR: introduced denoisers working in spherical harmonic (SH) space - REBLUR: reduced memory usage - REBLUR: temporal stabilization pass can be turned off eliminating associated overhead - REBLUR: specular tracking improvements - REBLUR: better history reconstruction in disoccluded regions - RELAX: improved performance - RELAX: improved anti-firefly filtering - RELAX: improved history confidence usage DETAILS: - NRD: anisotropic curvature estimation - NRD: exposed helper "GetMethodString" - NRD: gDebug is now available in Common.hlsli - NRD: updated README and UPDATE - REBLUR: added SH denoisers - REBLUR: switched to YCoCg - REBLUR: added fast history - REBLUR: rewritten HistoryFix (no mips anymore) - REBLUR: reduced memory usage - REBLUR: improved error compensation and reduced bias - REBLUR: fix for checkerboard resolve in advanced prepass mode - REBLUR: removed virtual history amount correction which is not needed anymore - REBLUR: reduced bias in pre-pass - REBLUR: fixed laggy specular reprojection on bumpy surfaces - REBLUR: specular confidence doesn't affect hit distance weight - REBLUR: specular prepass setting should not affect diffuse only denoiser (and vice versa) - REBLUR: improved reprojection on curved surfaces - REBLUR: simplified temporal stabilization params - REBLUR: fixed wrong output in DIFFUSE_DIRECTIONAL_OCCLUSION - REBLUR: simplified roughness weight in temporal accumulation pass - REBLUR: removed gFramerateScale based acceleration - REBLUR: tuned "GetSpecAccumSpeed" (consistent parallax usage) - REBLUR: tuned prepass parameters - REBLUR: fixed & optimized hitT for specular tracking - REBLUR: fixed (corrected) curvature if its sign is oscillating - REBLUR: fixed (returned) virtual motion based normal weight in temporal accumulation - REBLUR: added prev-prev test for roughness - REBLUR: improved firefly suppression - REBLUR: removed clamping to noisy input for specular - REBLUR: dropped unnecessary output for sky pixels - REBLUR: tweaked surface based motion accumulation - REBLUR: hitT check for virtual motion in temporal accumulation replaced with parallax check - REBLUR: improved prev-prev test - REBLUR: prev-prev test checks surface similarity - REBLUR: performance optimizations - REBLUR: tweaked hit distance weight - REBLUR: fixed regressions - REBLUR: improved virtual motion roughness confidence in temporal accumulation - REBLUR: maximized code reuse - REBLUR: refactoring - RELAX: removed geometry weights in firefly filter - RELAX: switched from disocclusion threshold to spatial filtering threshold in disocclusion fix - RELAX: added prev-prev test for roughness - RELAX: improved confidence buffers handling - RELAX: performance optimizations - NRD integration: now computes memory usage
1 parent 956e6af commit 168655c

File tree

238 files changed

+8123
-4558
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

238 files changed

+8123
-4558
lines changed

External/MathLib

Include/NRD.h

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,15 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.
1111
/*
1212
CREDITS:
1313
Developed by:
14-
Library, REBLUR and SIGMA denoisers:
15-
Dmitry Zhdan ([email protected])
16-
17-
ReLAX denoiser:
18-
Tim Cheblokov ([email protected])
19-
Pawel Kozlowski ([email protected])
14+
Dmitry Zhdan ([email protected])
15+
Tim Cheblokov ([email protected])
2016
2117
Special thanks:
22-
Evgeny Makarov (NVIDIA) - denoising ideas
23-
Ivan Fedorov (NVIDIA) - interface
24-
Ivan Povarov (NVIDIA) - QA, integrations and feedback
25-
Oles Shyshkovtsov (4A GAMES) - initial idea of recurrent blurring
18+
Pawel Kozlowski (NVIDIA)
19+
Evgeny Makarov (NVIDIA)
20+
Ivan Fedorov (NVIDIA)
21+
Ivan Povarov (NVIDIA)
22+
Oles Shyshkovtsov (4A GAMES) for initial idea of recurrent blurring
2623
*/
2724

2825
#pragma once
@@ -31,9 +28,9 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.
3128
#include <cstddef>
3229

3330
#define NRD_VERSION_MAJOR 3
34-
#define NRD_VERSION_MINOR 3
35-
#define NRD_VERSION_BUILD 1
36-
#define NRD_VERSION_DATE "16 June 2022"
31+
#define NRD_VERSION_MINOR 4
32+
#define NRD_VERSION_BUILD 0
33+
#define NRD_VERSION_DATE "14 July 2022"
3734

3835
#if defined(_MSC_VER)
3936
#define NRD_CALL __fastcall
@@ -62,5 +59,8 @@ namespace nrd
6259
NRD_API Result NRD_CALL SetMethodSettings(Denoiser& denoiser, Method method, const void* methodSettings);
6360
NRD_API Result NRD_CALL GetComputeDispatches(Denoiser& denoiser, const CommonSettings& commonSettings, const DispatchDesc*& dispatchDescs, uint32_t& dispatchDescNum);
6461
NRD_API void NRD_CALL DestroyDenoiser(Denoiser& denoiser);
62+
63+
// Helpers
6564
NRD_API const char* GetResourceTypeString(ResourceType resourceType);
65+
NRD_API const char* GetMethodString(Method method);
6666
}

Include/NRDDescs.h

Lines changed: 62 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.
1111
#pragma once
1212

1313
#define NRD_DESCS_VERSION_MAJOR 3
14-
#define NRD_DESCS_VERSION_MINOR 3
14+
#define NRD_DESCS_VERSION_MINOR 4
1515

1616
static_assert (NRD_VERSION_MAJOR == NRD_DESCS_VERSION_MAJOR && NRD_VERSION_MINOR == NRD_DESCS_VERSION_MINOR, "Please, update all NRD SDK files");
1717

@@ -44,6 +44,11 @@ namespace nrd
4444
// OUTPUTS - OUT_DIFF_HITDIST
4545
REBLUR_DIFFUSE_OCCLUSION,
4646

47+
// INPUTS - IN_MV, IN_NORMAL_ROUGHNESS, IN_VIEWZ, IN_DIFF_SH0, IN_DIFF_SH1
48+
// OPTIONAL INPUTS - IN_DIFF_CONFIDENCE
49+
// OUTPUTS - OUT_DIFF_SH0, OUT_DIFF_SH1
50+
REBLUR_DIFFUSE_SH,
51+
4752
// INPUTS - IN_MV, IN_NORMAL_ROUGHNESS, IN_VIEWZ, IN_SPEC_RADIANCE_HITDIST,
4853
// OPTIONAL INPUTS - IN_SPEC_DIRECTION_PDF, IN_SPEC_CONFIDENCE
4954
// OUTPUTS - OUT_SPEC_RADIANCE_HITDIST
@@ -53,6 +58,11 @@ namespace nrd
5358
// OUTPUTS - OUT_SPEC_HITDIST
5459
REBLUR_SPECULAR_OCCLUSION,
5560

61+
// INPUTS - IN_MV, IN_NORMAL_ROUGHNESS, IN_VIEWZ, IN_SPEC_SH0, IN_SPEC_SH1
62+
// OPTIONAL INPUTS - IN_SPEC_CONFIDENCE
63+
// OUTPUTS - OUT_SPEC_SH0, OUT_SPEC_SH1
64+
REBLUR_SPECULAR_SH,
65+
5666
// INPUTS - IN_MV, IN_NORMAL_ROUGHNESS, IN_VIEWZ, IN_DIFF_RADIANCE_HITDIST, IN_SPEC_RADIANCE_HITDIST,
5767
// OPTIONAL INPUTS - IN_DIFF_DIRECTION_PDF, IN_SPEC_DIRECTION_PDF, IN_DIFF_CONFIDENCE, IN_SPEC_CONFIDENCE
5868
// OUTPUTS - OUT_DIFF_RADIANCE_HITDIST, OUT_SPEC_RADIANCE_HITDIST
@@ -62,6 +72,11 @@ namespace nrd
6272
// OUTPUTS - OUT_DIFF_HITDIST, OUT_SPEC_HITDIST
6373
REBLUR_DIFFUSE_SPECULAR_OCCLUSION,
6474

75+
// INPUTS - IN_MV, IN_NORMAL_ROUGHNESS, IN_VIEWZ, IN_DIFF_SH0, IN_DIFF_SH1, IN_SPEC_SH0, IN_SPEC_SH1
76+
// OPTIONAL INPUTS - IN_DIFF_CONFIDENCE, IN_SPEC_CONFIDENCE
77+
// OUTPUTS - OUT_DIFF_SH0, OUT_DIFF_SH1, OUT_SPEC_SH0, OUT_SPEC_SH1
78+
REBLUR_DIFFUSE_SPECULAR_SH,
79+
6580
// INPUTS - IN_MV, IN_NORMAL_ROUGHNESS, IN_VIEWZ, IN_DIFF_DIRECTION_HITDIST,
6681
// OPTIONAL INPUTS - IN_DIFF_DIRECTION_PDF, IN_DIFF_CONFIDENCE
6782
// OUTPUTS - OUT_DIFF_DIRECTION_HITDIST
@@ -122,53 +137,64 @@ namespace nrd
122137
enum class ResourceType : uint32_t
123138
{
124139
//=============================================================================================================================
125-
// INPUTS
140+
// COMMON INPUTS
126141
//=============================================================================================================================
127142

128143
// 3D world space motion (RGBA16f+) or 2D screen space motion (RG16f+), MVs must be non-jittered, MV = previous - current
129144
IN_MV,
130145

131-
// Data must match encoding / decoding in "NRD_FrontEnd_PackNormalAndRoughness" / "NRD_FrontEnd_UnpackNormalAndRoughness" (RGBA8+ or R10G10B10A2+)
146+
// Data must match encoding in "NRD_FrontEnd_PackNormalAndRoughness" and "NRD_FrontEnd_UnpackNormalAndRoughness" (RGBA8+)
132147
IN_NORMAL_ROUGHNESS,
133148

134149
// Linear view depth for primary rays (R16f+)
135150
IN_VIEWZ,
136151

137-
// RELAX: Data must be packed using "RELAX_FrontEnd_PackRadianceAndHitDist"
138-
// REBLUR: Data must be packed using "REBLUR_FrontEnd_PackRadianceAndHitDist" (and "REBLUR_FrontEnd_GetNormHitDist" for hit distance) (RGBA16f+)
139-
// Noisy and weighted sum of hit distances along a path (using NRD_GetCorrectedHitDist), excluding primary hit distance.
140-
// REBLUR works with normalized hit distances. It's recommended to use REBLUR_FrontEnd_GetNormHitDist for hit distance normalization.
141-
// Normalization parameters should be passed into NRD as HitDistanceParameters for diffuse and specular separately for internal
142-
// hit distance denormalization.
152+
//=============================================================================================================================
153+
// INPUTS
154+
//=============================================================================================================================
155+
156+
// Noisy radiance and hit distance (RGBA16f+)
157+
// REBLUR: use "REBLUR_FrontEnd_PackRadianceAndNormHitDist" for encoding
158+
// RELAX: use "RELAX_FrontEnd_PackRadianceAndHitDist" for encoding
143159
IN_DIFF_RADIANCE_HITDIST,
144160
IN_SPEC_RADIANCE_HITDIST,
145161

146-
// REBLUR: Data must be packed using "REBLUR_FrontEnd_GetNormHitDist" (R8+)
162+
// Noisy hit distance (R8+)
163+
// REBLUR: use "REBLUR_FrontEnd_GetNormHitDist" for encoding
147164
IN_DIFF_HITDIST,
148165
IN_SPEC_HITDIST,
149166

150-
// REBLUR: Data must be packed using "REBLUR_FrontEnd_PackDirectionAndHitDist" (RGBA8+)
167+
// Noisy bent normal and normalized hit distance (RGBA8+)
168+
// REBLUR: use "REBLUR_FrontEnd_PackDirectionAndNormHitDist" for encoding
151169
IN_DIFF_DIRECTION_HITDIST,
152170

153-
// (Optional) Data must be packed using "NRD_FrontEnd_PackDirectionAndPdf" (RGBA8+)
154-
// These inputs are needed only if PrePassMode::ADVANCED is used. The data can be averaged or weighted in case of many RPP. Encoding / decoding
155-
// can be changed in "NRD_FrontEnd_PackDirectionAndPdf" and "NRD_FrontEnd_UnpackDirectionAndPdf" functions.
171+
// Noisy SH data (2x RGBA16f+)
172+
// REBLUR: use "REBLUR_FrontEnd_PackSh" for encoding
173+
IN_DIFF_SH0,
174+
IN_DIFF_SH1,
175+
IN_SPEC_SH0,
176+
IN_SPEC_SH1,
177+
178+
// (Optional) Ray direction and sample PDF (RGBA8+)
179+
// These inputs are needed only for PrePassMode::ADVANCED
180+
// REBLUR: use "NRD_FrontEnd_PackDirectionAndPdf" for encoding
156181
IN_DIFF_DIRECTION_PDF,
157182
IN_SPEC_DIRECTION_PDF,
158183

159184
// (Optional) User-provided history confidence in range 0-1, i.e. antilag (R8+)
160-
// Used only if "CommonSettings::isHistoryConfidenceInputsAvailable = true".
185+
// Used only if "CommonSettings::isHistoryConfidenceInputsAvailable = true"
161186
IN_DIFF_CONFIDENCE,
162187
IN_SPEC_CONFIDENCE,
163188

164-
// SIGMA: Data must be packed using "SIGMA_FrontEnd_PackShadow" (3/5-args) (RG16+/RGBA8+)
189+
// Noisy shadow data and optional translucency (RG16f+ and RGBA8+ for optional translucency)
190+
// SIGMA: use "SIGMA_FrontEnd_PackShadow" for encoding
165191
IN_SHADOWDATA,
166192
IN_SHADOW_TRANSLUCENCY,
167193

168-
// Any signal
194+
// Noisy signal (R8+)
169195
IN_RADIANCE,
170196

171-
// Primary and secondary world space positions
197+
// Primary and secondary world space positions (RGBA16f+)
172198
IN_DELTA_PRIMARY_POS,
173199
IN_DELTA_SECONDARY_POS,
174200

@@ -178,37 +204,38 @@ namespace nrd
178204

179205
// IMPORTANT: These textures can potentially be used as history buffers!
180206

181-
// REBLUR: Data must be unpacked using "REBLUR_BackEnd_UnpackRadianceAndHitDist"
182-
// .xyz - radiance, .w - normalized hit distance (RGBA16f+)
183-
// RELAX: Data must be unpacked using "RELAX_BackEnd_UnpackRadianceAndHitDist"
184-
// .xyz - radiance (R11G11B10f+)
207+
// Denoised radiance and hit distance
208+
// REBLUR: use "REBLUR_BackEnd_UnpackRadianceAndNormHitDist" for decoding (RGBA16f+)
209+
// RELAX: use "RELAX_BackEnd_UnpackRadiance" for decoding (R11G11B10f+)
185210
OUT_DIFF_RADIANCE_HITDIST,
186211
OUT_SPEC_RADIANCE_HITDIST,
187212

188-
// .x - normalized hit distance (R8+)
213+
// Denoised SH data
214+
// REBLUR: use "REBLUR_BackEnd_UnpackSh" for decoding (2x RGBA16f+)
215+
OUT_DIFF_SH0,
216+
OUT_DIFF_SH1,
217+
OUT_SPEC_SH0,
218+
OUT_SPEC_SH1,
219+
220+
// Denoised normalized hit distance (R8+)
189221
OUT_DIFF_HITDIST,
190222
OUT_SPEC_HITDIST,
191223

192-
// .xyz - direction, .w - normalized hit distance (RGBA8+)
224+
// Denoised bent normal and normalized hit distance (RGBA8+)
225+
// REBLUR: use "REBLUR_BackEnd_UnpackDirectionAndNormHitDist" for decoding
193226
OUT_DIFF_DIRECTION_HITDIST,
194227

195-
// SIGMA: Data must be unpacked using "SIGMA_BackEnd_UnpackShadow"
196-
// .x - shadow, .yzw - translucency (RGBA8+)
197-
// .x - shadow (R8+)
198-
// Usage:
199-
// shadowData = SIGMA_BackEnd_UnpackShadow( shadowData );
200-
// float3 finalShadowCommon = lerp( shadowData.yzw, 1.0, shadowData.x ); // or
201-
// float3 finalShadowExotic = shadowData.yzw * shadowData.x; // or
202-
// float3 finalShadowMoreExotic = shadowData.yzw;
228+
// Denoised shadow and optional transcluceny (R8+ or RGBA8+)
229+
// SIGMA: use "SIGMA_BackEnd_UnpackShadow" for decoding
203230
OUT_SHADOW_TRANSLUCENCY,
204231

205-
// .xyz - accumulated signal
232+
// Denoised signal
206233
OUT_RADIANCE,
207234

208-
// .xy - 2D screen space virtual motion (RG16f+), MV = previous - current
235+
// 2D screen space specular motion (RG16f+), MV = previous - current
209236
OUT_REFLECTION_MV,
210237

211-
// .xy - 2D screen space motion (RG16f+), MV = previous - current
238+
// 2D screen space refraction motion (RG16f+), MV = previous - current
212239
OUT_DELTA_MV,
213240

214241
//=============================================================================================================================

Include/NRDSettings.h

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.
1111
#pragma once
1212

1313
#define NRD_SETTINGS_VERSION_MAJOR 3
14-
#define NRD_SETTINGS_VERSION_MINOR 3
14+
#define NRD_SETTINGS_VERSION_MINOR 4
1515

1616
static_assert (NRD_VERSION_MAJOR == NRD_SETTINGS_VERSION_MAJOR && NRD_VERSION_MINOR == NRD_SETTINGS_VERSION_MINOR, "Please, update all NRD SDK files");
1717

@@ -109,7 +109,7 @@ namespace nrd
109109
// (units) > 0 - use TLAS or tracing range (max value = NRD_FP16_MAX / NRD_FP16_VIEWZ_SCALE - 1 = 524031)
110110
float denoisingRange = 500000.0f;
111111

112-
// (normalized %)
112+
// (normalized %) - if relative distance difference is greater than threshold, history gets reset (0.25-1.5% works well)
113113
float disocclusionThreshold = 0.005f;
114114

115115
// [0; 1] - enables "noisy input / denoised output" comparison
@@ -191,7 +191,7 @@ namespace nrd
191191
float sensitivityToDarkness = 0.0f; // IMPORTANT: 0 is a bad default
192192

193193
// Ideally, must be enabled, but since "sensitivityToDarkness" requires fine tuning from the app side it is disabled by default
194-
bool enable = false;
194+
bool enable = false; // IMPORTANT: doesn't affect "occlusion" denoisers
195195
};
196196

197197
struct AntilagHitDistanceSettings
@@ -220,7 +220,10 @@ namespace nrd
220220
AntilagHitDistanceSettings antilagHitDistanceSettings = {};
221221

222222
// [0; REBLUR_MAX_HISTORY_FRAME_NUM] - maximum number of linearly accumulated frames (= FPS * "time of accumulation")
223-
uint32_t maxAccumulatedFrameNum = 31;
223+
uint32_t maxAccumulatedFrameNum = 30;
224+
225+
// [0; REBLUR_MAX_HISTORY_FRAME_NUM] - maximum number of linearly accumulated frames in fast history
226+
uint32_t maxFastAccumulatedFrameNum = 6;
224227

225228
// (pixels) - pre-accumulation spatial reuse pass blur radius (0 = disabled, must be used in case of probabilistic sampling)
226229
float diffusePrepassBlurRadius = 30.0f;
@@ -253,9 +256,6 @@ namespace nrd
253256
// (normalized %) - represents maximum allowed deviation from local tangent plane
254257
float planeDistanceSensitivity = 0.005f;
255258

256-
// (normalized %) - adds a portion of input to the output of spatial passes
257-
float inputMix = 0.0f;
258-
259259
// If not OFF and used for DIFFUSE_SPECULAR, defines diffuse orientation, specular orientation is the opposite
260260
CheckerboardMode checkerboardMode = CheckerboardMode::OFF;
261261

@@ -301,12 +301,12 @@ namespace nrd
301301
float specularPrepassBlurRadius = 50.0f;
302302

303303
// [0; RELAX_MAX_HISTORY_FRAME_NUM] - maximum number of linearly accumulated frames ( = FPS * "time of accumulation")
304-
uint32_t diffuseMaxAccumulatedFrameNum = 31;
305-
uint32_t specularMaxAccumulatedFrameNum = 31;
304+
uint32_t diffuseMaxAccumulatedFrameNum = 30;
305+
uint32_t specularMaxAccumulatedFrameNum = 30;
306306

307307
// [0; RELAX_MAX_HISTORY_FRAME_NUM] - maximum number of linearly accumulated frames in fast history
308-
uint32_t diffuseMaxFastAccumulatedFrameNum = 8;
309-
uint32_t specularMaxFastAccumulatedFrameNum = 8;
308+
uint32_t diffuseMaxFastAccumulatedFrameNum = 6;
309+
uint32_t specularMaxFastAccumulatedFrameNum = 6;
310310

311311
// A-trous edge stopping Luminance sensitivity
312312
float diffusePhiLuminance = 2.0f;
@@ -350,6 +350,11 @@ namespace nrd
350350
// (normalized %) - A-trous edge stopping depth threshold
351351
float depthThreshold = 0.01f;
352352

353+
// Confidence inputs can affect spatial blurs, relaxing some weights in areas with low confidence
354+
float confidenceDrivenRelaxationMultiplier = 0.0f;
355+
float confidenceDrivenLuminanceEdgeStoppingRelaxation = 0.0f;
356+
float confidenceDrivenNormalEdgeStoppingRelaxation = 0.0f;
357+
353358
// How much we relax roughness based rejection in areas where specular reprojection is low
354359
float luminanceEdgeStoppingRelaxation = 0.5f;
355360
float normalEdgeStoppingRelaxation = 0.3f;
@@ -384,8 +389,8 @@ namespace nrd
384389
{
385390
float prepassBlurRadius = 0.0f;
386391

387-
uint32_t diffuseMaxAccumulatedFrameNum = 31;
388-
uint32_t diffuseMaxFastAccumulatedFrameNum = 8;
392+
uint32_t diffuseMaxAccumulatedFrameNum = 30;
393+
uint32_t diffuseMaxFastAccumulatedFrameNum = 6;
389394

390395
float diffusePhiLuminance = 2.0f;
391396
float diffuseLobeAngleFraction = 0.5f;
@@ -401,6 +406,10 @@ namespace nrd
401406
float minLuminanceWeight = 0.0f;
402407
float depthThreshold = 0.01f;
403408

409+
float confidenceDrivenRelaxationMultiplier = 0.0f;
410+
float confidenceDrivenLuminanceEdgeStoppingRelaxation = 0.0f;
411+
float confidenceDrivenNormalEdgeStoppingRelaxation = 0.0f;
412+
404413
CheckerboardMode checkerboardMode = CheckerboardMode::OFF;
405414
HitDistanceReconstructionMode hitDistanceReconstructionMode = HitDistanceReconstructionMode::OFF;
406415

@@ -415,8 +424,8 @@ namespace nrd
415424
{
416425
float prepassBlurRadius = 50.0f;
417426

418-
uint32_t specularMaxAccumulatedFrameNum = 31;
419-
uint32_t specularMaxFastAccumulatedFrameNum = 8;
427+
uint32_t specularMaxAccumulatedFrameNum = 30;
428+
uint32_t specularMaxFastAccumulatedFrameNum = 6;
420429

421430
float specularPhiLuminance = 1.0f;
422431
float diffuseLobeAngleFraction = 0.5f;
@@ -437,6 +446,10 @@ namespace nrd
437446
float minLuminanceWeight = 0.0f;
438447
float depthThreshold = 0.01f;
439448

449+
float confidenceDrivenRelaxationMultiplier = 0.0f;
450+
float confidenceDrivenLuminanceEdgeStoppingRelaxation = 0.0f;
451+
float confidenceDrivenNormalEdgeStoppingRelaxation = 0.0f;
452+
440453
float luminanceEdgeStoppingRelaxation = 0.5f;
441454
float normalEdgeStoppingRelaxation = 0.3f;
442455
float roughnessEdgeStoppingRelaxation = 0.3f;
@@ -456,7 +469,7 @@ namespace nrd
456469
struct ReferenceSettings
457470
{
458471
// (>= 0) - maximum number of linearly accumulated frames ( = FPS * "time of accumulation")
459-
uint32_t maxAccumulatedFrameNum = 3600;
472+
uint32_t maxAccumulatedFrameNum = 1024;
460473
};
461474

462475
// SPECULAR_REFLECTION_MV

0 commit comments

Comments
 (0)