NVIDIA Falcor Real-Time Rendering Framework Beginner Guide Part 1
Published:
Works for NVidia Falcor 8.0, 7.0, and 6.0
Tried to write some instructions from my side on top of the original NVidia Falcor documentation (v6.0, 7.0, and 8.0), as the original Falcor’s documentation often found old and many things has changed since. This post is equivalent to Falcor’s README doc.
This is a work-in-progress, and sometimes, 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 enablein Windows OS (searchFor Developersin 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
windowsicon of your computer, then searchManage Optional Features. Search in theInstalled featuresif you have already theGraphics Tools. If you don’t have it, add on theAdd a featureand searchGraphics tools. If this does not work for you go to next option. - Download an offline package as
.zipthat matches the OS
- Check on the
- NVAPI (
R470R535)- download the latest NVAPI as
.zip - rename the folder name to
nvapiand paste it toC:\Falcor\Source\Externals\packman- I did not have the
packmanfolder, so I created it
- I did not have the
go toC:\Falcor\Source\Falcor\Core, openFalcorConfig.hand change#define _ENABLE_NVAPI0 to 1
- download the latest NVAPI as
- aftermath 2023.2.0.23219
- download, unzip, rename to
aftermathand 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 (auto detect from environment PATH)
BUILDING Falcor: CMAKE GUI: not recommended
BUILDING: CMAKE CLI 👍🏽 👍🏽 👍🏽
- Either try this: open the CMD and run
cmake --preset windows-vs2022, (may have some unexpected error with VS2017, therefore VS2019 or the latest is recommended)
// if use visual studio 2022
"windows-vs2022" - Windows VS2022
// if use visual studio code
"windows-ninja-msvc" - Windows Ninja/MSVC
- Or, run
setup_vs2022.bat. If using visual studio code, thensetup.bat - visual studio: Open
Falcor\build\windows-vs2022\Falcor.sln - visual studio: Build the solution. Currently, there are two workflows:
- Mogwei (recommended for prototyping)
- Sample Application
Optional Libraries
- See the
CMakeLists.txtfor 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 old repo from 6.0, I was facing
openvdbrelated runtime error, which I have fixed with on machinevcpkg openvdb- Additionally:
openvdbadded two more errors, in releaseImath-3_1.dll, and in debugtbb12_debug.dllwas 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 R560working. 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 have a feeling that after Falcor 6.0, Falcor is 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 👍🏽
