Skip to content

v4.11.0

Choose a tag to compare

@dzhdanNV dzhdanNV released this 05 Nov 04:50
· 378 commits to master since this release

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