Releases: NVIDIAGameWorks/RayTracingDenoiser
Releases · NVIDIAGameWorks/RayTracingDenoiser
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
v3.6.0
NRD v3.6.0:
HIGHLIGHTS:
- NRD: removed "SpecularLobeTrimmingParameters"
- NRD: improved NRD SDK generation script
- REBLUR: regression and bug fixes (sorry, it's an expected side effect of doing steps forward)
- REBLUR: improved IQ and performance
DETAILS:
- NRD: removed "SpecularLobeTrimmingParameters"
- NRD: improved NRD SDK generation script
- NRD: Fooplot graphs replaced with Desmos graphs
- NRD: improved compatibility with HLSL 2021 (WIP)
- NRD: clarified in comments where NRD_USE_OCT_NORMAL_ENCODING and NRD_USE_MATERIAL_ID come from
- NRD: getting rid of point-mirror samplers in the shader code
- REBLUR: changed estimation of optimal hitT for tracking
- REBLUR: added random rotation to HistoryFix pass
- REBLUR: hitT for very low roughness is not modified by HistoryFix pass (already clean)
- REBLUR: made another attempt to properly tune virtual parallax based history rejection
- REBLUR: fixed SH related bug in pre-pass (regression)
- REBLUR: improved SH denoising (pre-pass now behaves as "advanced" since direction and PDF are available)
- REBLUR: unified hitT weight between radiance and hitT
- REBLUR: unified hit distance factor
- REBLUR: improved performance
- REBLUR: fixed a rare case of out-of-bounds access, when unused half of a resource is filled with NaNs
- REBLUR: improved calculation of virtual motion based accumulation speed for specular
- REBLUR: blur radius refactoring (all relevant code gathered in one place for clarity)
- REBLUR: fixed a minor issue in debug visualization
- REBLUR: tuned blur radius "addon"
- REBLUR: code refactoring and simplification
- SIGMA: changed shader names to match overall REBLUR style (no functional changes)
- updated README & UPDATE
v3.5.0
NRD v3.5.0:
HIGHLIGHTS:
- REBLUR: important follow up bug & regression fixes
- REBLUR: fixed broken DIRECTIONAL_OCCLUSION denoiser
- REBLUR: significantly reduced memory usage of OCCLUSION & DIRECTIONAL_OCCLUSION denoisers
- REBLUR: improved internal anti-firefly suppressor
- REBLUR: more stable specular tracking
- REBLUR: improved IQ
- REBLUR: temporal stabilization is now less important for IQ (but still needed for antilag)
DETAILS:
- NRD: SH simplifications
- NRD: prepass rotator now scales blur radius by +/- 25%
- NRD: added cutoffs for non-exponential weights to minimize FP precision drifting
- NRD: added optional "NONE" mode for kernel rotation
- NRD: fixed strangely-looking code for texture clearing
- NRD: tweaked hit distance weight to be not stricter than 3%
- NRD: introduced NRD_EPS
- NRD: reduced code entropy
- REBLUR OCCLUSION and DIRECTIONAL_OCCLUSION: switched internal processing to 16-bit UNORM/SNORM instead of 16-bit FLOAT to fix darkening effects when history length is very long
- REBLUR OCCLUSION: significantly reduced memory usage
- REBLUR OCCLUSION: simplified code to be closer to non-occlusion mode
- REBLUR DIRECTIONAL_OCCLUSION: fixed! (was broken after recent changes)
- REBLUR DIRECTIONAL OCCLUSION & SH: fixed internal anti-firefly suppressor
- REBLUR SH: advanced prepass made always on since direction and PDF is available
- REBLUR: rotators now scale blur radius by +/- 25%
- REBLUR: exposed "historyFixFrameNum" and "historyFixStrideBetweenSamples" instead of "historyFixStrength"
- REBLUR: min PDF check moved to encoding phase
- REBLUR: tuned fractions
- REBLUR: fixed "darkening" bias (old regression)
- REBLUR: massaged blur radius calculation
- REBLUR: blur radius boost adjusted by roughness (regression)
- REBLUR: tuned blur radius in spatial passes if number of accumulated frames is low
- REBLUR: massaged curvature angle
- REBLUR: switched to symmetrical kernel
- REBLUR: improved virtual parallax based confidence calculation (less history drops for glossy specular)
- REBLUR: simplified checkerboard resolve & accum speeds interpolation
- REBLUR: relaxed parallax check if history length is short
- REBLUR: fixed potentially numerically unstable direction normalization (regression)
- REBLUR: fixed virtual motion based history accumulation acceleration (regression)
- REBLUR: tweaked plane distance sensitivity after history reset
- REBLUR: switched anti-firefly to 3x3 instead of 5x5
- REBLUR: anti-firefly and fast history clamping improvements
- REBLUR: fixed lost after refactoring scale in "GetSensitivityToDarkness" (regression)
- REBLUR: returned not affecting main history anti-firefly for hitT in temporal stabilization pass (regression)
- REBLUR: fixed ancient code preventing anti-lag from resetting history to 0 (was only 1 frame)
- REBLUR: improved checkerboard resolve for fast history
- REBLUR: matched surface- and virtual- based motion footprint quality calculations
- REBLUR: spatial filtering now follows specular lobe better
- REBLUR: improved behavior in disocclusions
- REBLUR: improved anti-firefly suppressor
- REBLUR: disocclusion check simplification
- REBLUR: used averaged instead of normalized previous normal for backfacing check
- REBLUR: resolved some TODOs
- REBLUR: improved code reuse
- REBLUR: refactoring
- RELAX: unification related renamings
- updated README & UPDATE
- updated MathLib
v3.4.3
NRD v3.4.3:
HIGHLIGHTS:
- bug fixes & improvements
DETAILS:
- fixed lost after refactoring scale in "GetSensitivityToDarkness" (regression)
- returned not affecting main history anti-firefly for hitT in temporal stabilization pass (regression)
- fixed ancient code preventing antilag from resetting history to 0 (was only 1 frame)
- fixed potential black outlines introduced by temporal stabilization pass
- improved checkerboard resolve for fast history
v3.4.2
NRD v3.4.2:
HIGHLIGHTS:
- bug fixes & improvements
DETAILS:
- REBLUR: fixed broken resource bindings in REBLUR_DIRECTIONAL_OCCLUSION denoiser
- REBLUR: tweaked plane distance sensitivity after history reset to minimize overblur
- REBLUR: tuned blur radius in spatial passes if number of accumulated frames is low (gives IQ and performance)
- REBLUR: switched anti-firefly to 3x3 instead of 5x5
- REBLUR: anti-firefly and fast history clamping improvements
v3.4.1
NRD v3.4.1:
HIGHLIGHTS:
- bug fixes
DETAILS:
- NRD: reduced code entropy (no functional changes)
- REBLUR: relaxed parallax check if history length is short
- REBLUR: accelerate hitT accumulation for low roughness (resolved TODO)
- REBLUR: fixed insane blur radius boost for low roughness (regression)
- REBLUR: fixed potentially numerically unstable direction normalization (regression)
- REBLUR: fixed virtual motion based history accumulation acceleration (regression)
- updated MathLib
- updated README
v3.4.0
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
v3.3.1
v3.3.0
NRD v3.3.0:
HIGHLIGHTS:
- NRD: exposed HitDistanceReconstructionMode
- REBLUR: removed residual noise level setting
- REBLUR: diffuse pre pass is on by default (as a recommended setting in most cases)
DETAILS:
- NRD: better weights standardization
- NRD: exposed internal macro to use exponential weights for non-noisy data (current behavior preserved)
- REBLUR: exposed 3x3 and 5x5 hitT reconstruction modes
- REBLUR: improved hitT reconstruction pass
- REBLUR: hitT reconstruction pass gets implicitly disabled in checkerboard mode
- REBLUR: prepass IQ and performance improvements
- REBLUR: removed "is hitT valid?" checks (assuming hitT reconstruction is always enabled in case of probabilistic sampling)
- REBLUR: checkerboard resolve IQ and performance improvements
- REBLUR: better hitT accumulation
- REBLUR: improved specular tracking
- REBLUR: improved history fix pass
- REBLUR: tweaked how accumulated frames affect antilag and error estimation
- REBLUR: tweaked / simplified error estimation
- RELAX: exposed 3x3 and 5x5 hitT reconstruction modes
- RELAX: improved hitT reconstruction pass
- RELAX: hitT reconstruction pass gets implicitly disabled in checkerboard mode
- RELAX: prepass IQ and performance improvements
- RELAX: returned back to 1.0e-4 for min PhiLuminance to fix black patches if signal is very sparse