NVIDIA Falcor Real-Time Rendering Framework Beginner Guide Part 1
Published:
Falcor 6.0 and 7.0 (Falcor 8.0 instruction at the end)
I have tried to write some instructions from my side on top of the original Falcor documentation (version 6.0, 7.0, and 8.0), equivalent to Falcor’s README doc. This is a work in progress, and many things can go wrong. So, please do not take it as a reference.
For more details, please visit Falcor Home and Falcor git.
Prerequisites (Compulsory)
- Win10 v20H2 or newer
- Visual Studio 2022
- Windows 10 SDK Latest
- RTX GPU and latest driver
Developer mode enable
in Windows OS (searchFor Developers
in Windows)
Installation (Optional Libraries: works for 6.0–8.0)
- Windows 10 Graphics Tools (to run DX12 application with debug layer enabled). Two ways to install it,
- Check on the
windows
icon of your computer, then searchManage Optional Features
. Search in theInstalled features
if you have already theGraphics Tools
. If you don’t have it, add on theAdd a feature
and searchGraphics tools
. If this does not work for you go to next option. - Download an offline package as
.zip
that matches the OS
- Check on the
- NVAPI (
R470R535)- download the latest NVAPI as
.zip
- rename the folder name to
nvapi
and paste it toC:\Falcor\Source\Externals\packman
- I did not have the
packman
folder, so I created it
- I did not have the
go toC:\Falcor\Source\Falcor\Core
, openFalcorConfig.h
and change#define _ENABLE_NVAPI
0 to 1
- download the latest NVAPI as
- aftermath 2023.2.0.23219
- download, unzip, rename to
aftermath
and paste inC:\Users\local-admin\Desktop\Falcor\external\packman
- download, unzip, rename to
- OptiX 7.3
- copy Optix install folder and paste
packman\optix
- create an include folder and add the files, except the internal folder
- copy Optix install folder and paste
- MDL_SDK: download the zip file, unzip, rename
mdl-sdk
, and paste inpackman
- Microsoft DirectX 12 Agility SDK –
packman/agility-sdk
- CUDA support
(C:\Falcor\Source\Samples\CudaInterop\README.md
)
BUILDING Falcor: (CMAKE GUI is not recommended) 👎🏽
BUILDING: CMAKE CLI 👍🏽 👍🏽 👍🏽
- Open the CMD and run
cmake --preset windows-vs2022
, I had some unexpected error with VS2017, therefore VS2019 or the latest recommended// if use visual studio 2022 "windows-vs2022" - Windows VS2022 // if use visual studio code "windows-ninja-msvc" - Windows Ninja/MSVC
- visual studio: Run
setup_vs2022.bat
; visual studio code:setup.bat
- visual studio: Open
Falcor\build\windows-vs2022\Falcor.sln
; visual studio code:...
- visual studio: Build the solution (two workflows: 1) Mogwei, 2) Samples); visual studio code:
...
After Optional Library Added
- See the
CMakeLists.txt
for missing (optional) libraries- optix: see previous (4)
- aftermath: see previous (3)
- nvapi: see previous (2)
- mdl-sdk: see previous (5)
- If the Optional Libraries are appropriate:
- FALCOR_HAS_D3D12: TRUE
+ FALCOR_HAS_D3D12: TRUE
- FALCOR_HAS_VULKAN: ON
+ FALCOR_HAS_VULKAN: ON
- FALCOR_HAS_AFTERMATH: OFF
+ FALCOR_HAS_AFTERMATH: ON
- FALCOR_HAS_NVAPI: OFF
+ FALCOR_HAS_NVAPI: ON
- FALCOR_HAS_PIX: ON
+ FALCOR_HAS_PIX: ON
- FALCOR_HAS_CUDA: ON
+ FALCOR_HAS_CUDA: ON
- FALCOR_HAS_OPTIX: OFF
+ FALCOR_HAS_OPTIX: ON
- FALCOR_HAS_D3D12_AGILITY_SDK: ON
+ FALCOR_HAS_D3D12_AGILITY_SDK: ON
- FALCOR_HAS_NRD: ON
+ FALCOR_HAS_NRD: ON
- FALCOR_HAS_DLSS: ON
+ FALCOR_HAS_DLSS: ON
- FALCOR_HAS_NV_USD: ON
+ FALCOR_HAS_NV_USD: ON
- FALCOR_HAS_MDL_SDK: OFF
+ FALCOR_HAS_MDL_SDK: ON
- FALCOR_ENABLE_USD: ON
+ FALCOR_ENABLE_USD: ON
Falcor 8.0
- Falcor 8.0 was released on 19 Aug 2024 with a lot of amazing features and previous bug-fix
- While I was updating my code repo, I was facing
openvdb
related runtime error, which I have fixed with on machinevcpkg openvdb
- Additionally:
openvdb
added two more errors, in releaseImath-3_1.dll
, and in debugtbb12_debug.dll
was missing, which I resolved with on-machinevcpkg
- Additionally:
- Finally, the Falcor readme says to use
nvapi R535
(I guess they forgot to update here), did not work for me. I have tried with the latestnvapi R560
working. You can find the latest nvapi here - Although the original document still says using
OptiX 7.3
, I have tried with the latestOptiX 8.0.0
, and it is working fine. Other thanOptiX 7.3
, I have also tried withOptiX 7.5, 7.6, 7.7
, working fine as well. Further investigation may required. You may also need to fix dll missing, e.g.,zlibd1.dll
.
Old Resources (not recommended)
- I guess, after Falcor 6.0, it’s a completely new framework.
- Ray tracing gems ebook (2019)
- OlD: Chris Wyman: Falcor 3.1.0 Tutorial Series: code does not work, but documentation is good 👍🏽
- DxrTutorials
- GettingStartedWithRTXRayTracing-Github