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 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 (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.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 old repo from 6.0, 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 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 👍🏽