Skip to content

Commit

Permalink
v4.0.0:
Browse files Browse the repository at this point in the history
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
  • Loading branch information
dzhdanNV committed Dec 20, 2022
1 parent fb0af66 commit 9f0de98
Show file tree
Hide file tree
Showing 67 changed files with 1,870 additions and 1,720 deletions.
18 changes: 9 additions & 9 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
Build-Windows:
runs-on: windows-latest
steps:
-
-
name : Checkout
uses: actions/checkout@v3
with:
Expand All @@ -17,32 +17,32 @@ jobs:
uses: crazy-max/ghaction-chocolatey@v1
with:
args: install windows-sdk-10.0 cmake -y
-
-
name: Install Vulkan
run: |
$ver = (Invoke-WebRequest -Uri "https://vulkan.lunarg.com/sdk/latest.json" | ConvertFrom-Json).windows
echo Vulkan SDK version $ver
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -Uri "https://sdk.lunarg.com/sdk/download/$ver/windows/VulkanSDK-$ver-Installer.exe" -OutFile VulkanSDK.exe
echo Downloaded
.\VulkanSDK.exe --root C:\VulkanSDK --accept-licenses --default-answer --confirm-command install
-
.\VulkanSDK.exe --root C:\VulkanSDK --accept-licenses --default-answer --confirm-command install
-
name: Deploy NRD SDK
run: |
$Env:VULKAN_SDK = "C:/VulkanSDK/"
$Env:Path += ";C:/VulkanSDK/Bin"
.\1-Deploy.bat --no-pause
.\1-Deploy.bat
-
name: Build NRD SDK
run: |
$Env:VULKAN_SDK = "C:/VulkanSDK/"
$Env:Path += ";C:/VulkanSDK/Bin"
.\2-Build.bat --no-pause --debug-build
-
.\2-Build.bat
-
name: Prepare NRD SDK
run: |
&'.\3-Prepare NRD SDK.bat' --no-pause --shaders
-
&'.\3-Prepare NRD SDK.bat' --shaders
-
name: Upload NRD SDK as artefact
uses: actions/upload-artifact@v3
with:
Expand Down
25 changes: 0 additions & 25 deletions 1-Deploy.bat
Original file line number Diff line number Diff line change
@@ -1,34 +1,9 @@
@echo off

set "use_pause=y"

:PARSE
if "%~1"=="" goto :MAIN

if /i "%~1"=="-h" goto :HELP
if /i "%~1"=="--help" goto :HELP

if /i "%~1"=="--no-pause" set "use_pause="

shift
goto :PARSE

:MAIN

git submodule update --init --recursive
if %errorlevel% neq 0 exit /b %errorlevel%

mkdir "_Compiler"

cd "_Compiler"
cmake .. -A x64
if %errorlevel% neq 0 exit /b %errorlevel%
cd ..

if defined use_pause pause
exit

:HELP
echo. -h, --help show help message
echo. --no-pause skip pause in the end of script
exit
2 changes: 1 addition & 1 deletion 1-Deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ git submodule update --init --recursive
mkdir -p "_Compiler"

cd "_Compiler"
cmake ..
cmake .. -A x64
cd ..
51 changes: 0 additions & 51 deletions 2-Build.bat
Original file line number Diff line number Diff line change
@@ -1,57 +1,6 @@
@echo off

set "use_pause=y"
set "debug_build="
set "no_debug_build="

:PARSE
if "%~1"=="" goto :MAIN

if /i "%~1"=="-h" goto :HELP
if /i "%~1"=="--help" goto :HELP

if /i "%~1"=="--no-pause" set "use_pause="

if /i "%~1"=="--debug-build" set "debug_build=y"
if /i "%~1"=="--no-debug-build" set "no_debug_build=y"

shift
goto :PARSE

:MAIN
mkdir "_Compiler"

cd "_Compiler"
del CMakeCache.txt
cmake -DCMAKE_BUILD_TYPE=Release .. -A x64
if %errorlevel% neq 0 goto :END
cmake --build . --config Release
if %errorlevel% neq 0 goto :END
cd ..

echo.
if defined debug_build goto :BUILD_DEBUG
if defined no_debug_build goto :END
set /P M=Do you want to build DEBUG configuration? [y/n]
if /I "%M%" neq "y" goto :END

:BUILD_DEBUG

cd "_Compiler"
del CMakeCache.txt
cmake -DCMAKE_BUILD_TYPE=Debug .. -A x64
if %errorlevel% neq 0 goto :END
cmake --build . --config Debug
if %errorlevel% neq 0 goto :END
cd ..

:END
if defined use_pause pause
exit /b %errorlevel%

:HELP
echo. -h, --help show help message
echo. --no-pause skip pause in the end of script
echo. --debug-build build NRD SDK in Debug configuration
echo. --no-debug-build don't build NRD SDK in Debug configuration
exit
4 changes: 2 additions & 2 deletions 2-Build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
mkdir -p "_Compiler"

cd "_Compiler"
rm CMakeCache.txt
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake ..
cmake --build . --config Release
cmake --build . --config Debug
cd ..
5 changes: 0 additions & 5 deletions 3-Prepare NRD SDK.bat
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
@echo off

set NRD_DIR=.
set "use_pause=y"
set "copy_shaders="
set "no_copy_shaders="
set "copy_integration="
Expand All @@ -13,8 +12,6 @@ if "%~1"=="" goto :MAIN
if /i "%~1"=="-h" goto :HELP
if /i "%~1"=="--help" goto :HELP

if /i "%~1"=="--no-pause" set "use_pause="

if /i "%~1"=="--shaders" set "copy_shaders=y"
if /i "%~1"=="--no-shaders" set "no_copy_shaders=y"

Expand Down Expand Up @@ -78,13 +75,11 @@ cd ..
:END

cd ..
if defined use_pause pause
exit /b %errorlevel%

:HELP

echo. -h, --help show help message
echo. --no-pause skip pause at the end of the script
echo. --shaders copy shaders for a white-box integration
echo. --no-shaders do not copy shaders for a white-box integration
echo. --integration copy NRD integration layer
Expand Down
2 changes: 2 additions & 0 deletions 4-Clean.bat
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
@echo off

if exist "build" rd /q /s "build"

if exist "_Build" rd /q /s "_Build"
if exist "_Compiler" rd /q /s "_Compiler"
if exist "_NRD_SDK" rd /q /s "_NRD_SDK"
2 changes: 2 additions & 0 deletions 4-Clean.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/bin/sh

rm -rf "build"

rm -rf "_Build"
rm -rf "_Compiler"
rm -rf "_NRD_SDK"
Loading

0 comments on commit 9f0de98

Please sign in to comment.