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