Releases: NVIDIAGameWorks/RayTracingDenoiser
Releases · NVIDIAGameWorks/RayTracingDenoiser
v4.1.1
v4.1.0
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
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
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
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
v3.9.1
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
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
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
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