Skip to content

Releases: NVIDIAGameWorks/RayTracingDenoiser

v4.1.1

30 Mar 16:16
Compare
Choose a tag to compare

v4.1.1:

HIGHLIGHTS:

  • minor fixes

DETAILS:

  • NRD: luminance switched to BT.709 instead of BT.601
  • NRD: README mentions email alias for feedback
  • RELAX: added missing "roughnessModified" in SMEM A-trous pass
  • polishing
  • updated dependencies

v4.1.0

21 Mar 10:39
Compare
Choose a tag to compare

v4.1.0:

HIGHLIGHTS:

  • SH denoisers: SH (spherical harmonics) resolve replaced with a higher quality & specular-compatible SG (spherical gaussian) resolve
  • SH denoisers: introduced re-jittering after denoising which is essential for upscaling techniques
  • NRD: significantly reduced shader compilation & code linkage times
  • NRD: usability improvements
  • RELAX: added SH denoisers
  • REBLUR: bug fixes

DETAILS:

  • SH denoisers: SH (spherical harmonics) resolve replaced with a higher quality & specular-compatible SG (spherical gaussian) resolve
  • SH denoisers: introduced re-jittering after denoising which is essential for upscaling techniques
  • NRD: introduced "ShaderMake"
  • NRD: usability improvement: removed "NRD_HEADER_ONLY" (added "NRD_INTERNAL" macro on the NRD side)
  • NRD: usability improvement: for internal compilation matrix packing is set to "column_major", to override possible "-Zpr" setting in the compiler command line
  • RELAX: added SH denoisers
  • RELAX: fixed regression for specular surface history weight
  • REBLUR: improved reprojection on surfaces with variadic roughness
  • REBLUR: fixed a resolution scale related bug in TS
  • REBLUR: slightly increased "lobeAngleFraction"
  • REBLUR: fixed smb-based accumulation for very high roughness
  • fixed VK validation errors after migrating to VK v1.3.239
  • fixes for Linux
  • Cmake improvements
  • updated scripts
  • updated dependencies
  • updated README & UPDATE
  • refactoring

v4.0.2

16 Jan 11:22
Compare
Choose a tag to compare

v4.0.2:

HIGHLIGHTS:

  • NRD: improved curvature estimation
  • NRD: fixed some bugs
  • REBLUR: improved specular tracking
  • REBLUR: fixed some bugs
  • RELAX: implicit curvature-related improvements

DETAILS:

  • NRD: improved curvature estimation
  • NRD: fixed wrong width of input resources in clear calls
  • NRD: fixed thin lens equation in case of concave curvature
  • NRD: simplified "ComputeParallax" to "ComputeParallaxInPixels" and adjusted related calculations
  • NRD / REBLUR: tweaked ULP thresholds
  • REBLUR: fixed potential race conditions while accessing "hitDistForTracking" (affected specular tracking)
  • REBLUR: fixed optional MV modification
  • REBLUR: fixed 1-frame delay in reaction to "max number of accumulated frames"
  • REBLUR: improved precision of curvature packing used in TS pass
  • REBLUR: improved precision of curvature calculations in case of high parallax
  • REBLUR: tuned curvature adjustment hack
  • REBLUR: slightly reduced memory usage of diffuse denoisers
  • REBLUR / SPECULAR_REFLECTION_MV: fixed wrong usage of "rect offset" in curvature calculations
  • SPECULAR_REFLECTION_MV: improved curvature calculations in case of high parallax

v4.0.1

21 Dec 07:58
Compare
Choose a tag to compare

v4.0.1:

HIGHLIGHTS:

  • improved compatibility with PS
  • follow up fixes

DETAILS:

  • improved compatibility with PS
  • fixed wrong dependency from STL in NRD.hlsli
  • added forgotten name to the list of resource names (and improved code to automatically detect such issues in the future)

v4.0.0

20 Dec 10:46
Compare
Choose a tag to compare

v4.0.0:

HIGHLIGHTS:

  • NRD: can now optionally patch IN_MV to respect specular motion (needed for TAA, DLSS or any other temporal upscaling tech)
  • NRD: more clear resource binding model with optional "register space" support
  • REBLUR/RELAX: significant improvements in specular motion tracking

DETAILS:

  • NRD: exposed optional IN_BASECOLOR_METALNESS input
  • NRD: GetScreenUv should not be used with "killBackprojection = true"
  • NRD: "isHistoryConfidenceInputsAvailable" => "isHistoryConfidenceAvailable"
  • NRD: "frustumHeight" replaced with "frustumSize", which represents the shortest side (added misc function to Common)
  • API: more clear resource binding model
  • API: added optional "register space" support (controlled in "NRD.hlsli")
  • API: fixed variable names "treeNum" => "treesNum"
  • REBLUR: better disocclusions for 0 roughness
  • REBLUR: added ability to replace surface IN_MV with specular MV if specularity is high
  • REBLUR: color clamping moved after history reconstruction
  • REBLUR: added fast history to occlusion shaders
  • REBLUR: tweaked encoding-aware weights to be less error prone
  • REBLUR: disabled "on the fly" blur radius adjustment
  • REBLUR: "minHitDist" changed to be just "min" without using intensity depend logic
  • REBLUR: footprint quality affects less virtual history amount
  • REBLUR: fixed "smb" motion bleeding in "vmb" motion for 0-roughness on flat surfaces
  • REBLUR: fixed usage of IN_DISOCCLUSION_THRESHOLD_MIX (was computed properly and not used)
  • REBLUR: added "back-facing" test for virtual motion
  • REBLUR: improved parallax based confidence for specular "vmb" motion
  • REBLUR: simplified "GetTemporalAccumulationParams"
  • REBLUR: fraction from settings is used for roughness weight in HistoryFix pass and TA (fixed blurriness)
  • REBLUR: optimizations
  • RELAX: improved specular disocclusion test
  • RELAX: fixed ortho
  • RELAX: improved prev-prev test
  • RELAX: added backface test for virtual motion based specular
  • RELAX: removed some "magic numbers"
  • RELAX: removed parallax math as much as possible
  • RELAX: removed virtual history clamping
  • RELAX: improved roughness tracking for "vmb" history (jitter friendly, tuned weights)
  • RELAX: improved normal tracking for "vmb" history (jitter friendly, tuned weights)
  • RELAX: improved hitT test for "vmb" history
  • RELAX: improved hitT accumulation
  • RELAX: improved curvature handling for normal and prev-prev normal testing
  • RELAX: default specularLobeAngleFraction set to 0.5 (was 0.33)
  • RELAX: improved specular "smb" reprojection
  • RELAX: improved roughness handling in reprojection
  • RELAX: made Prepass respect diffuse/specular lobe angle fraction
  • RELAX: changed default value of "depthThreshold" for spatial passes
  • RELAX: better naming, code refactoring
  • RELAX: optimizations
  • VALIDATION: added "history length" visualization for RELAX
  • VALIDATION: matched "accum frames" visualization logic between REBLUR and RELAX
  • VALIDATION: visualization improvements
  • NRD INTEGRATION: updated to reflect NRI and NRD changes
  • updated MathLib
  • updated README and UPDATE
  • rewritten CMake
  • improved and simplified scripts

v3.9.2

05 Dec 09:11
Compare
Choose a tag to compare

v3.9.2:

HIGHLIGHTS:

  • REBLUR: fixed potential "smb" motion bleeding in "vmb" motion for 0-roughness (led to laggy specular reprojection)

v3.9.1

17 Nov 14:53
Compare
Choose a tag to compare

v3.9.1:

HIGHLIGHTS:

  • REBLUR: less history rejections and ghosting in certain cases
  • README: various improvements

DETAILS:

  • REBLUR: specular tracking improvements
  • REBLUR: fix to skip HistoryFix if "history fix frame num" = 0
  • REBLUR: fixed regression in resolution scale support
  • SPECULAR_REFLECTION_MV: fixed regression in resolution scale support
  • VALIDATION: fixed negative viewZ visualization
  • README: added title image
  • README: added validation layer image
  • README: added "status badge"
  • README: polishing

v3.9.0

11 Nov 14:27
Compare
Choose a tag to compare

v3.9.0:

HIGHLIGHTS:

  • NRD: added debug visualization (validation) layer
  • NRD: added 2.5D MV support (2D screen space motion + delta viewZ)
  • NRD: minor fixes
  • REBLUR: improved specular tracking

DETAILS:

  • NRD: fixed double clears if several denoisers are grouped into a single NRD instance
  • NRD: reduced code entropy in denoisers using "history reset"
  • NRD: removed unnecessary "nrd::" from C++ code
  • REBLUR: fixed regression leading to using "smb" motion in cases where "vmb" motion is fully discarded, but "smb" motion is barely usable
  • REBLUR: fixed regression due to migration to new "smb" accumulation speed calculation a few releases ago
  • REBLUR: fixed bad interaction of anti-lag and partial split-screen mode
  • REBLUR: fixed inconsistent pixel stride progression in HistoryFix pass
  • REBLUR: improved specular reconstruction in HistoryFix pass
  • REBLUR: "vmb" normal confidence made jitter friendly
  • REBLUR: "prev-prev" test made jitter friendly
  • updated README and UPDATE
  • updated MathLib

v3.8.0

28 Oct 10:36
Compare
Choose a tag to compare

v3.8.0:

HIGHLIGHTS:

  • NRD: introduced optional "NRDEncoding.hlsli"
  • NRD: introduced optional per per-pixel disocclusion threshold
  • NRD: increased default disocclusion threshold
  • NRD: fixed bug leading to rounding materialID 2 to 3
  • RELAX / REBLUR: various improvements
  • REBLUR: removed settings "minConvergedStateBaseRadiusScale" and "maxAdaptiveRadiusScale"
  • REBLUR: specular tracking improvements

DETAILS:

  • NRD: introduced optional "NRDEncoding.hlsli"
  • NRD: introduced optional per per-pixel disocclusion threshold
  • NRD: increased default disocclusion threshold
  • NRD: fixed bug leading to rounding materialID 2 to 3
  • RELAX / REBLUR: fixed potential SMEM out of bounds access
  • RELAX / REBLUR: added support for IN_DISOCCLUSION_THRESHOLD_MIX
  • RELAX / REBLUR: improved disocclusion check
  • RELAX / REBLUR: improved "back faced" history rejection
  • RELAX / REBLUR: fixed previous normal fetching math for footprints touching "background" pixels
  • RELAX / REBLUR: refactoring
  • RELAX: improved math handling jitter
  • RELAX: added view vector- and roughness- based stoppers to A-trous
  • RELAX: removed ortho related hack from TA pass
  • RELAX: added materialID support to anti-firefly filter
  • REBLUR: improved SMB (surface motion based) accumulation speed estimation
  • REBLUR: tweaked anti-firefly suppressor settings
  • REBLUR: tweaked roughness weight for specular VMB (virtual motion based) tracking
  • REBLUR: fixed parallax-based specular confidence for VMB (was too aggressive at high FPS)
  • REBLUR: removed settings "minConvergedStateBaseRadiusScale" and "maxAdaptiveRadiusScale"
  • REBLUR: improved checkerboard resolve if amount of SMB is high
  • REBLUR: fixed potential over-sharpening in disoccluded regions (ancient regression)
  • REBLUR: increased aggressiveness of curvature correction
  • REBLUR: improved hitT for tracking in TS pass
  • REBLUR: fixed potential out of screen roughness check in TA pass
  • REBLUR: resolved TODOs
  • REBLUR: improved curvature estimation if parallax is high
  • REBLUR: tuned settings of virtual parallax difference based confidence to minimize potential ghosting
  • REBLUR: fixed SMB data influence on VMB in TS pass
  • REBLUR: fixed bug not allowing a lower value to be clamped to a bigger value from fast history
  • SPECULAR_REFLECTION_MV: updated curvature calculation math
  • improved docs

v3.7.0

21 Sep 13:07
Compare
Choose a tag to compare

NRD v3.7.0:

HIGHLIGHTS:

  • NRD: introduced NRD_NORMAL_ENCODING and NRD_ROUGHNESS_ENCODING parameters (controlled via CMake) to cover more encoding variants out of the box
  • NRD: introduced read-only "normalEncoding" and "roughnessEncoding" in "LibraryDesc" describing which encoding NRD has been compiled with
  • NRD: improved curvature estimation and usage for any type of supported normal encoding
  • NRD: fixed wrong curvature direction (was Y-flipped)
  • NRD: CLEAR_AND_RESTART now clears only "history" resources, including user-provided outputs
  • RELAX: fixed dynamic resolution scale related issue for specular (regression)
  • REBLUR: improved specular tracking
  • REBLUR: removed "enableAdvancedPrepass"
  • REBLUR: reduced potential chroma shifts
  • REBLUR_SH: fixed bias (increased lightness)
  • REBLUR_DIFFUSE_SPECULAR_SH: fixed wrong resource bindings if pre-pass is off
  • NRD INTEGRATION: descriptor caching is now based on native resource pointers instead of NRI pointers

DETAILS:

  • NRD: introduced NRD_NORMAL_ENCODING and NRD_ROUGHNESS_ENCODING
  • NRD: improved clears on CLEAR_AND_RESTART
  • NRD: removed shared NRD_NORMAL_ENCODING_ERROR
  • NRD: curvature error compensation made normal encoding dependent
  • NRD: fixed numerical instabilities in curvature estimation
  • NRD: fixed how thin lens equation interacts with concave surfaces
  • NRD: fixed wrong calculation of curvature direction
  • RELAX: NRD_NORMAL_ENCODING_ERROR => RELAX_NORMAL_ENCODING_ERROR (no functional changes)
  • RELAX: fixed resolution scale regression in virtual motion based reprojection for specular
  • RELAX: moving to using "ApplyThinLensEquation"
  • REBLUR: NORMAL_ULP increased from 0.0009 to 0.004 (1/255)
  • REBLUR: consistent REBLUR_NORMAL_ULP usage
  • REBLUR: removed / resolved some TODOs
  • REBLUR: prev-prev test improvements
  • REBLUR: changing luma doesn't allow energy boost
  • REBLUR: removed "enableAdvancedPrepass" (low IQ gains, adds bias in SH mode)
  • REBLUR_DIFFUSE_SPECULAR_SH: fixed wrong resource bindings if pre-pass is off
  • NRD INTEGRATION: descriptor caching is now based on native resource pointers instead of NRI pointers
  • NRD INTEGRATION: improved debug output
  • NRD INTEGRATION: NRI updated to v1.86
  • updated MathLib