Skip to content

Releases: NVIDIAGameWorks/RayTracingDenoiser

v4.11.2

14 Nov 03:26
Compare
Choose a tag to compare

HIGHLIGHTS:

  • NRD: improved robustness
  • REBLUR: improvements

DETAILS:

  • NRD: clarified importance and valid usage of CommonSettings::frameIndex
  • NRD: added more debug checks for user provided CommonSettings
  • NRD: SetCommonSettings returns INVALID_ARGUMENT if validation of user provided settings fails. It happens only at the end of the function. The return code is informational and doesn't affect function body. In debug builds a failed check invokes assert with a description of the problem
  • REBLUR: HistoryFix-ed data should not sneak into fast history for low roughness specular (test 115)
  • REBLUR: roughness based confidence should affect "vmb" max accumulated frames (actually it's a NOP due to fallback to "smb" logic)
  • Integration: logging goes into files instead of stdout
  • Integration: added frameIndex validation

v4.11.1

11 Nov 08:41
Compare
Choose a tag to compare

HIGHLIGHTS:

  • improvements

DETAILS:

  • REBLUR: cleaner specular disocclusions (tests 65, 66)
  • REBLUR: reduced fluffiness and boily look (tests 216, 205)
  • REBLUR: reduced overall specular "fatty look" bias, observed under glancing angles (tests 12, 186)
  • REBLUR: tweaked antilag default settings (to be more on the safe side, no changes in the logic)
  • REBLUR: more flexible cameraAttachedReflectionMaterialID support, allowing relative camera motion
  • RELAX: hooked up CommonSettings::cameraAttachedReflectionMaterialID

v4.11.0

05 Nov 04:50
Compare
Choose a tag to compare

HIGHLIGHTS:

  • NRD: added GetMaxAccumulatedFrameNum helper, emphasizing the importance of time-based accumulation, also added DEFAULT_ACCUMULATION_TIME constants for all denoisers
  • NRD: added cameraAttachedReflectionMaterialID to CommonSettings (currently used by REBLUR only), helping to deal with mirror reflections of objects attached to the camera. It's a suboptimal solution, future releases will address this problem better
  • REBLUR/SIGMA: stabilizationStrength replaced with maxStabilizedFrameNum for consistency with other accumulation related settings and GetMaxAccumulatedFrameNum helper. The progression 0, 1, 2, 3... 9 is more understandable than 1.00, 0.50, 0.33, 0.25... 0.10
  • improvements and bug fixes

BREAKING CHANGES:

  • settings related (please, read UPDATE.md)
  • NRD_FrontEnd_UnpackNormalAndRoughness returns materialID in the same range, as it was passed to NRD_FrontEnd_PackNormalAndRoughness

DETAILS:

  • NRD: added GetMaxAccumulatedFrameNum helper to the main header
  • NRD: added cameraAttachedReflectionMaterialID to CommonSettings (currently used by REBLUR only, WIP longer term)
  • NRD: NRD_FrontEnd_UnpackNormalAndRoughness returns materialID in the same range, it was passed to NRD_FrontEnd_PackNormalAndRoughness
  • NRD: improved code reuse between REBLUR and RELAX, reduced divergence
  • NRD: improved per frame rotators (better noise properties)
  • NRD: interface polishing (no functional changes)
  • RELAX: added clamping to user provided "max accumulated frame num" values
  • RELAX: reduced memory usage of DIFFUSE denoiser (had a dummy allocation)
  • RELAX: diff-spec lobe fraction replaced with one shared fraction (simplified settings)
  • RELAX: partial refactoring to match overall NRD style
  • REBLUR/RELAX: hot/cold branch sorting
  • REBLUR/RELAX: improved parallax computations, affecting many aspects of specular tracking
  • REBLUR/RELAX: improved curvature computations
  • REBLUR/RELAX: added forgotten initialization of gStrandThickness constant (oops!)
  • REBLUR: minor performance opts
  • REBLUR: fixed minor regressions related to migration to stochastic bilinear filter for RGBA1010102 oct-packed normals (since prev data repacking is gone)
  • REBLUR: stochastic bilinear gets replaced with native bilinear if normals are interpolate-able
  • REBLUR: slightly decreased hit distance sensitivity in case of 0 roughness
  • REBLUR: slightly reduced lobeAngleFraction default value to squeeze more normal details (using the old default is OK)
  • REBLUR: lobeHalfAngle uses code from GetNormalWeightParam (reduced code entropy)
  • REBLUR: adjusted virtual parallax based confidence to be a bit more aggressive
  • REBLUR: improved screen space sampling (now used in more shaders without IQ loss, improves perf, WIP)
  • REBLUR: GetGeometryWeightParams should not become more strict if history is long (the rest is handled by normal weights)
  • REBLUR: minimized deprecated GetBilateralWeight usage
  • REBLUR: relaxed maximum value of slope scaling for disocclusion threshold
  • REBLUR: improved antilag (which didn't do much last year), also made almost FPS independent, tuned to "not hurt"
  • REBLUR: finally fixed ancient and ugly issue leading to "bright lighting crawling", caused by unbiased (bright) fast history selectively accelerating the biased (fireflies suppressed) main history
  • REBLUR/SIGMA: "stabilization strength" settings replaced with "max stabilized frame num"
  • SIGMA: removed unnecessary checks in spatial filters
  • SIGMA: "closest viewZ" replaced with "longest MV" logic in the temporal stabilization pass
  • SIGMA: history copying decoupled into a separate pass
  • SIGMA: added disocclusion tracking to get rid of ghosting
  • SIGMA: fixed ugly white outlines (suboptimal weighting scheme between dense and sparse passes)
  • SIGMA: tuned defaults settings
  • SIGMA: introduced screen space sampling to better respect low-discrepancy based per frame rotators
  • updated docs
  • updated dependencies
  • refactoring

v4.10.0

09 Oct 05:10
Compare
Choose a tag to compare

HIGHLIGHTS:

  • SIGMA: notable IQ improvements (less flickering in motion, better responsiveness)
  • REBLUR / RELAX: improvements and bug fixes
  • NRD integration: API changes, dictated by new optional features

BREAKING CHANGES:

  • no changes in NRD \O/
  • Integration: read UPDATE.md

DETAILS:

  • NRD: deleted unnecessary curvature flattening if delta between normals is close to normal ULP
  • REBLUR: eliminated repacking for normal-roughness
  • REBLUR: improved specular tracking
  • REBLUR: improved "vmb" specular tracking on moving objects
  • REBLUR: fixed and improved logic for ReblurSettings::responsiveAccumulationRoughnessThreshold
  • RELAX: fixed lots of places without UnpackViewZ
  • RELAX: made ViewZ FP16 compatible
  • SIGMA: improved penumbra size weighting scheme
  • SIGMA: TS - fixed rare potential 1 pixel leaks
  • SIGMA: TS - proper early out in regions with hard shadows
  • SIGMA: TS - less flickering in motion
  • Integration: added a few checks to increase robustness
  • Integration: the constructor replaced with an initialization struct
  • Integration: exposed demoteFloat32to16 option
  • Integration: exposed promoteFloat16to32 option
  • Integration: removed the need to pass format (modern NRI allows to query it)
  • Integration: refactoring, rotating around replacing Nrd prefix with nrd:: namespace
  • updated docs

v4.9.4

20 Sep 08:44
Compare
Choose a tag to compare

HIGHLIGHTS:

  • Cmake: minor improvements
  • updated deps

v4.9.3

06 Sep 05:49
Compare
Choose a tag to compare

HIGHLIGHTS:

  • bug fixes and improvements

DETAILS:

  • REBLUR: fixed potential edge smoothing
  • updated docs
  • updated deps

v4.9.2

23 Aug 06:03
Compare
Choose a tag to compare

HIGHLIGHTS:

  • improvements and bug fixes

BREAKING CHANGE:

  • MemoryAllocatorInterface renamed to AllocationCallbacks

DETAILS:

  • NRD: fixed NRD_STATIC_LIBRARY
  • REBLUR: improved MV patching (if enabled)
  • updated docs

v4.9.1

14 Aug 05:11
Compare
Choose a tag to compare

HIGHLIGHTS:

  • improvements and bug fixes

DETAILS:

  • NRD: improved per-frame random rotations offer better distribution of samples across frames (barely visible in OCCLUSION and SIGMA)
  • REFERENCE: split-screen and resolution scaling related bug fixes

v4.9.0fix

05 Aug 15:59
Compare
Choose a tag to compare

HIGHLIGHTS:

  • GCC: fixed compilation
  • updated GitHub workflow

v4.9.0

01 Aug 08:23
Compare
Choose a tag to compare

HIGHLIGHTS:

  • NRD: exposed CommonSettings::strandMaterialID and CommonSettings::strandThickness to improve denoising on hair and grass
  • REBLUR: improved IQ without stabilization pass
  • REBLUR: improved behavior in disocclusions and in case of a short history
  • REBLUR: improved specular tracking
  • REBLUR: exposed new settings hitDistanceStabilizationStrength and fireflySuppressorMinRelativeScale
  • improvements and bug fixes

BREAKING CHANGES:

  • REBLUR: changed usage of maxBlurRadius and its default value, old values should be multiplied by 2

DETAILS:

  • NRD: improved comments in main headers, added missing info
  • NRD: added optional NRD_FrontEnd_TrimHitDistance to NRD.hlsli
  • NRD: added NRD_GetNormalizedStrandThickness helper to NRD.hlsli
  • NRD: exposed CommonSettings::strandMaterialID and CommonSettings::strandThickness
  • NRD: exposed NRD_USE_HISTORY_CONFIDENCE, NRD_USE_DISOCCLUSION_THRESHOLD_MIX and NRD_USE_BASECOLOR_METALNESS macro switches allowing to disable almost dead and rarely used code
  • SIGMA: fixed very rare 2 pixel wide bleeding (introduced by Temporal Stabilization pass under special conditions)
  • RELAX: fixed disocclusion threshold scaling
  • RELAX: added missing "rect origin" offsets to IN_DIFF_CONFIDENCE, IN_SPEC_CONFIDENCE and IN_DISOCCLUSION_THRESHOLD_MIX inputs
  • REBLUR / RELAX: slope scale should not make disocclusion threshold > 1
  • REBLUR / RELAX: hooked up strandMaterialID and updated disocclusion threshold logic
  • REBLUR: exposed ReblurSettings::hitDistanceStabilizationStrength allowing to control AO/SO responsiveness in the temporal stabilization pass and to reach parity with OCCLUSION denoisers if set to "0"
  • REBLUR: exposed ReblurSettings::fireflySuppressorMinRelativeScale (was previously a macro)
  • REBLUR: relaxed temporal stabilization pass on strandMaterialID
  • REBLUR: improved specular tracking by optimizing "smb" based accumulation
  • REBLUR: improved firefly suppressor (making REBLUR more usable without stabilization)
  • REBLUR: improved validation (highlights hitT outside of [0; 1] range)
  • REBLUR: removed error estimation used for blur radius correction (barely affected image since ~v4 release)
  • REBLUR: reduced ghosting on variadic roughness (more roughness details)
  • REBLUR: implemented linear progression of blur radius (much cleaner disocclusions)
  • REBLUR_OCCLUSION: disabled firefly suppression for hit distances (could lead to bias in disocclusions)
  • REBLUR_OCCLUSION: anti-firefly is disabled in DIRECTIONAL_OCCLUSION too
  • REBLUR_OCCLUSION: minor fast history improvements
  • updated MathLib
  • updated docs
  • polishing