Skip to content

Releases: NVIDIAGameWorks/RayTracingDenoiser

v3.4.2

18 Aug 12:50
Compare
Choose a tag to compare

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

17 Aug 08:47
Compare
Choose a tag to compare

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

15 Aug 15:52
Compare
Choose a tag to compare

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

16 Jun 13:30
Compare
Choose a tag to compare

NRD v3.3.1:

  • REBLUR: fixed regression in checkerboard resolve
  • REBLUR: fixed specular fallback to surface-based motion if virtual-based motion confidence is low
  • README: fixed outdated info

v3.3.0

15 Jun 09:20
Compare
Choose a tag to compare

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

v3.2.3

27 May 14:56
Compare
Choose a tag to compare

NRD v3.2.3:

HIGHLIGHTS:

  • RELAX / REBLUR: added probabilistic sampling support
  • RELAX / REBLUR: improved performance by ~13% (REBLUR) and ~17% (RELAX)
  • RELAX / REBLUR: specular tracking improvements
  • RELAX / REBLUR: better ortho projection support
  • RELAX / REBLUR: less blurry & leaky pre-pass
  • NRD: exposed optional "prev world" to "world" matrix to simplify use of "virtual space" normals
  • NRD: LibraryDesc exposes supported material bits and normal encoding
  • NRD: exposed "convenient" function to convert "ResourceType" to string
  • NRD: improved compatibility with POSIX-compliant systems

DETAILS:

  • NRD: default disocclusion threshold reduced to 0.5%
  • NRD: maximized code reuse
  • NRD: optimized matrix usage
  • NRD: clarified "denoising range" limits
  • NRD: exposed optional world-prev to world transform for normals
  • NRD: fixed script for NRD SDK generation
  • NRD: improved compatibility with POSIX-compliant systems
  • NRD: fixed and improved curvature calculations
  • NRD: fixed and improved parallax calculations
  • NRD: fixed bug in SMEM preloader not affecting current use cases
  • NRD: added API function to convert "ResourceType" to string
  • NRD: LibraryDesc exposes supported material bits and normal encoding
  • NRD: GitHub automation support
  • NRD: updated MathLib
  • NRD: updated and improved docs
  • RELAX: added hit distance reconstruction pass
  • RELAX: more stability and less biasing in specular, especially on surfaces with low roughness
  • RELAX: better specular reprojection for low-mid roughness
  • RELAX: decreased surface motion based reprojection weight for specular for ortho case
  • RELAX: minHitT3x3 and minHitT5x5 calculation bug fix
  • RELAX: set specular variance boost to 0 by default
  • RELAX: improved per-pass in case of contact reflections
  • RELAX: clamping of specular based on virtual motion doe not depend on surface roughness anymore
  • RELAX: clamping strength significantly decreased
  • RELAX: reflection HitT check now affects fast history length
  • RELAX: switched to single channel history length for all denoisers
  • RELAX: removed diffuseHistoryRejectionNormalThreshold
  • RELAX: moved to BicubicFilterNoCornersWithFallbackToBilinearFilterWithCustomWeights in temporal accumulation shader
  • RELAX: bicubic is used everywhere
  • RELAX: memory usage optimization
  • RELAX: decreased influence of back-back normal weight in reprojection
  • RELAX: improved curvature handling in specular
  • RELAX: added separate diffuse and specular minLuminanceWeight
  • RELAX: tiny bugfix in Atrous
  • RELAX: various performance optimizations
  • RELAX: max history length increased to 255
  • RELAX: refactoring, bug fixes & code cleanup
  • REBLUR: added hit distance reconstruction pass
  • REBLUR: better code unification between "common" and "occlusion-only" denoisers
  • REBLUR: better ortho projection support
  • REBLUR: disocclusion threshold doesn't depend on NoV (led to rare problems on edges)
  • REBLUR: removed internal sanitization (was OFF all the time)
  • REBLUR: improved per-pass in case of contact reflections
  • REBLUR: refactored CatRom functions
  • REBLUR: improved advanced pre-pass
  • REBLUR: virtual hitT accumulated similarly to radiance
  • REBLUR: increased blur radius in HistoryFix pass
  • REBLUR: 4x4 disocclusion test simplified to 12 taps
  • REBLUR: improved disocclusion check (now works better in ortho mode)
  • REBLUR: footprint quality affects history based on accumulated frames
  • REBLUR: hit distance based specular confidence uses not accelerated hitT
  • REBLUR: temporal stabilization improvements
  • REBLUR: footprint stretching test now works in ortho mode
  • REBLUR: removed error recalculation in spatial passes
  • REBLUR: improved surface based disocclusion test for virtual motion
  • REBLUR: tuned radius boost
  • REBLUR: less aggressive TS after disocclusion
  • REBLUR: simplified backface-normal test
  • REBLUR: better "no spatial" support
  • REBLUR: exposed diff / spec pre-pass blur radius
  • REBLUR: more stable specular reprojection
  • REBLUR: fixed insane pre-pass blur radius
  • REBLUR: improved specular reprojection on high FPS
  • REBLUR: improved hit distance based specular confidence calculations
  • REBLUR: fixed "miscommunication" between some parameters
  • REBLUR: simplified fade calculations for anisotropic kernel
  • REBLUR: reworked HistoryFix - now uses 1 mip instead of 4
  • REBLUR: getting rid of Nflat (almost)
  • REBLUR: made anti-firefly roughness-independent
  • REBLUR: tuned default hit distance antilag settings
  • REBLUR: tuned interpolation of accumulation speeds
  • REBLUR: auto disocclusion threshold correction
  • REBLUR: tweaked virtual history amount in temporal stabilization
  • REBLUR: fixed re-packing issue when input normals are more precise than internal ones
  • REBLUR: removed clamping for virtual history
  • REBLUR: removed color compression (real exposure is needed)
  • REBLUR: polished debug visualization
  • REBLUR: various performance optimizations
  • REBLUR: refactoring, bug fixes & code cleanup
  • CMAKE: fixed shader compilation if WinSDK is older than 22000
  • CMAKE: exposed NRD_STATIC_CPP_RUNTIME for Linux

v3.1.0

25 Mar 13:16
Compare
Choose a tag to compare

v3.1.0:

  • NRD: refactoring of Reflection & Delta MV methods
  • NRD: reduced code entropy in .resources files
  • NRD: added ability to control normal encoding via Cmake
  • NRD: fixes for SLANG
  • REBLUR: improved error compensation in areas with low specular reprojection confidence
  • REBLUR: moved anti-firefly filter to work better with signals with high energy fireflies
  • REBLUR: removed IsInScreen2x2
  • REBLUR: introduced always-active firefly suppressor
  • REBLUR: improved roughness weight in temporal reprojection
  • REBLUR: disabled specular-related code for diffuse-only denoisers
  • REBLUR: reference mode doesn't change parameters under the hood
  • REFLECTION_MV: fixed number of constants
  • NRD INTEGRATION: added mode without descriptors caching
  • CMAKE: refactoring
  • updated UPDATE.md

v3.0.0

21 Mar 15:05
Compare
Choose a tag to compare

v3.0.0:

HIGHLIGHTS:

  • RELAX / REBLUR: improved compatibility with path tracing
  • RELAX / REBLUR: improved IQ and performance
  • RELAX / REBLUR: reworked settings, exposed new settings
  • REBLUR: exposed performance mode
  • NRD: improved compatibility with PS5, UE and LINUX

NRD:

  • NRD: improved modularization of denoisers
  • NRD: shared more code between denoisers
  • NRD: introduced SPECULAR_REFLECTION_MV method
  • NRD: introduced DELTA_OPTIMIZATION_MV method
  • NRD: improved checkerboard resolve if pre-pass is on
  • NRD: minimized values in NRD_ENCODING_ERRORS
  • NRD: limiting PDF to sane values, improved packing
  • NRD: shaders moved into per-denoiser sub-folders
  • NRD: simplified normal encoding variants to UNORM and OCT
  • NRD: added UPDATE.md simplifying understanding of changes in the API and settings
  • NRD: introduced NRD_HEADER_ONLY for NRD.hlsli
  • NRD: added missing prefixes for COMPILER macro in NRD.hlsli
  • NRD: clarified "roughness" in NRD.hlsli
  • NRD: added include guards into NRD.hlsli
  • NRD: updated .gitignore

REBLUR:

  • REBLUR: added performance mode with real-time switch
  • REBLUR: added REBLUR_RESPONSIVE_ACCUMULATION_ROUGHNESS_THRESHOLD knob
  • REBLUR: added footprint stretching test
  • REBLUR: exposed "ReblurSettings::inputMix"
  • REBLUR: exposed "ReblurSettings::minConvergedStateBaseRadiusScale"
  • REBLUR: exposed "ReblurSettings::responsiveAccumulationRoughnessThreshold"
  • REBLUR: fixed specular reprojection issues for low roughness
  • REBLUR: fixed imprecision problems affecting weights in temporal accumulation
  • REBLUR: fixed curvature in ortho mode
  • REBLUR: improved performance
  • REBLUR: improved compatibility with path tracing
  • REBLUR: improved "materialID" support
  • REBLUR: improved prev-prev normal test for specular reprojection
  • REBLUR: improved curvature angle estimation
  • REBLUR: improved error estimation
  • REBLUR: improved precision of internal normals
  • REBLUR: improved behavior in disocclusions
  • REBLUR: improved error compensation if specular confidence is low
  • REBLUR: reduced mip number to 4
  • REBLUR: squeezed more normal and shadow details
  • REBLUR: virtual parallax taken into account
  • REBLUR: compressed hit distances used for hit distance confidence
  • REBLUR: removed normal weight for virtual motion (prev-prev does the same)
  • REBLUR: allowed small blur for low roughness if accumulation doesn't go well
  • REBLUR: reprojection improvements
  • REBLUR: tuned hitT weight & virtual history acceleration
  • REBLUR: standardized settings
  • REBLUR: simplified debug
  • REBLUR: refactoring, standardization, simplification and unification

RELAX:

  • RELAX: added footprint stretching test
  • RELAX: shader modularization
  • RELAX: fixed quarter resolution
  • RELAX: fixed variance calculation in A-trous shaders
  • RELAX: fixed potentially problematic function overloading for "Get*WorldPos"
  • RELAX: improved performance
  • RELAX: improved compatibility with path tracing
  • RELAX: improved "materialID" support
  • RELAX: improved prev-prev normal test for specular reprojection
  • RELAX: improved "skip reprojection" logic
  • RELAX: improved handling of normal imprecision in reprojection
  • RELAX: removed spatial variance estimation pass
  • RELAX: combined spatial variance estimation and Atrous_shmem
  • RELAX: implemented specular reprojection for surfaces with negative surface curvature
  • RELAX: refactoring
  • RELAX: minor luminance weights fixes & updates
  • RELAX: refactoring, standardization, simplification and unification

OTHER:

  • REFERENCE: introduced dedicated input / output slots
  • LINUX: updated SDK generation script
  • NRD INTEGRATION: updated and fixed
  • CMAKE: create shader output directory during deployment
  • MATHLIB: updated
  • README: updated

v2.12.2

11 Feb 16:18
Compare
Choose a tag to compare

v2.12.2:

  • REBLUR: fixed accidentally applied RCRS filter in temporal stabilization pass in reference accumulation mode
  • REBLUR: fixed reprojected footprint stretching which was especially visible in reference accumulation mode
  • LINUX: fixed warnings
  • fixed / improved batch scripts
  • added bash scripts
  • updated CMake
  • updated README

v2.12.1

09 Feb 13:28
Compare
Choose a tag to compare

NRD v2.12.1:

  • CMAKE: updated min version to 3.15 to unblock CMAKE_MSVC_RUNTIME_LIBRARY
  • CMAKE: properly exposed some parameters
  • NRD: returned back ability to define NRD_CS_MAIN externally
  • NRD: fixed back slashes
  • NRD: fixed unused variable in timer