Real-Time Rendering Framework
See the code
Falcor is a real-time rendering framework supporting DirectX 12 and Vulkan. It aims to improve productivity of research and prototype projects.
Features include:
Optional:
Optional Features, in the window that opens click Add a feature and select Graphics Tools.Falcor uses the CMake build system. Additional information on how to use Falcor with CMake is available in the CMake development documentation page.
If you are working with Visual Studio 2022, you can set up a native Visual Studio solution by running setup_vs2022.bat after cloning this repository. The solution files are written to build/windows-vs2022 and the binary output is located in build/windows-vs2022/bin.
If you are working with Visual Studio Code, run setup.bat after cloning this repository. This will setup a VS Code workspace in the .vscode folder with sensible defaults (only if .vscode does not exist yet). When opening the project folder in VS Code, it will prompt to install recommended extensions. We recommend you do, but at least make sure that CMake Tools is installed. To build Falcor, you can select the configure preset by executing the CMake: Select Configure Preset action (Ctrl+Shift+P). Choose the Windows Ninja/MSVC preset. Then simply hit Build (or press F7) to build the project. The binary output is located in build/windows-ninja-msvc/bin.
Warning: Do not start VS Code from Git Bash, it will modify the PATH environment variable to an incompatible format, leading to issues with CMake.
Falcor has experimental support for Ubuntu 22.04. To build Falcor on Linux, run setup.sh after cloning this repository. You also need to install some system library headers using:
sudo apt install xorg-dev libgtk-3-dev
You can use the same instructions for building Falcor as described in the Visual Studio Code section above, simply choose the Linux/GCC preset.
Falcor uses CMake Presets stored in CMakePresets.json to provide a set of commonly used build configurations. You can get the full list of available configure presets running cmake --list-presets:
$ cmake --list-presets
Available configure presets:
"windows-vs2022" - Windows VS2022
"windows-ninja-msvc" - Windows Ninja/MSVC
"linux-clang" - Linux Ninja/Clang
"linux-gcc" - Linux Ninja/GCC
Use cmake --preset <preset name> to generate the build tree for a given preset. The build tree is written to the build/<preset name> folder and the binary output files are in build/<preset name>/bin.
An existing build tree can be compiled using cmake --build build/<preset name>.
For more information on how to use Falcor as a Python module see Falcor In Python.
Falcor uses the Microsoft DirectX 12 Agility SDK to get access to the latest DirectX 12 features. Applications can enable the Agility SDK by putting FALCOR_EXPORT_D3D12_AGILITY_SDK in the main .cpp file. Mogwai, FalcorTest and RenderGraphEditor have the Agility SDK enabled by default.
To enable NSight Aftermath support, head over to https://developer.nvidia.com/nsight-aftermath and download the latest version of Aftermath (this build is tested against version 2023.1).
Extract the content of the zip file into external/packman/aftermath.
To enable CUDA support, download and install CUDA 11.6.2 or later and reconfigure the build.
See the CudaInterop sample application located in Source/Samples/CudaInterop for an example of how to use CUDA.
If you want to use Falcor's OptiX functionality (specifically the OptixDenoiser render pass) download the OptiX SDK (Falcor is currently tested against OptiX version 8.0) After running the installer, link or copy the OptiX SDK folder into external/packman/optix (i.e., file external/packman/optix/include/optix.h should exist).
Note: You also need CUDA installed to compile the OptixDenoiser render pass, see above for details.
Falcor ships with the following NVIDIA RTX SDKs:
Note that these SDKs are not under the same license as Falcor, see LICENSE.md for details.
If you use Falcor in a research project leading to a publication, please cite the project. The BibTeX entry is
@Misc{Kallweit22,
author = {Simon Kallweit and Petrik Clarberg and Craig Kolb and Tom{'a}{\v s} Davidovi{\v c} and Kai-Hwa Yao and Theresa Foley and Yong He and Lifan Wu and Lucy Chen and Tomas Akenine-M{\"o}ller and Chris Wyman and Cyril Crassin and Nir Benty},
title = {The {Falcor} Rendering Framework},
year = {2022},
month = {8},
url = {https://github.com/NVIDIAGameWorks/Falcor},
note = {\url{https://github.com/NVIDIAGameWorks/Falcor}}
}
786 followers · starred Apr 2018
78 followers · starred Aug 2022
106 followers · starred Aug 2018
19 followers · starred Mar 2021
Real-Time Rendering Framework
See the code
Falcor is a real-time rendering framework supporting DirectX 12 and Vulkan. It aims to improve productivity of research and prototype projects.
Features include:
Optional:
Optional Features, in the window that opens click Add a feature and select Graphics Tools.Falcor uses the CMake build system. Additional information on how to use Falcor with CMake is available in the CMake development documentation page.
If you are working with Visual Studio 2022, you can set up a native Visual Studio solution by running setup_vs2022.bat after cloning this repository. The solution files are written to build/windows-vs2022 and the binary output is located in build/windows-vs2022/bin.
If you are working with Visual Studio Code, run setup.bat after cloning this repository. This will setup a VS Code workspace in the .vscode folder with sensible defaults (only if .vscode does not exist yet). When opening the project folder in VS Code, it will prompt to install recommended extensions. We recommend you do, but at least make sure that CMake Tools is installed. To build Falcor, you can select the configure preset by executing the CMake: Select Configure Preset action (Ctrl+Shift+P). Choose the Windows Ninja/MSVC preset. Then simply hit Build (or press F7) to build the project. The binary output is located in build/windows-ninja-msvc/bin.
Warning: Do not start VS Code from Git Bash, it will modify the PATH environment variable to an incompatible format, leading to issues with CMake.
Falcor has experimental support for Ubuntu 22.04. To build Falcor on Linux, run setup.sh after cloning this repository. You also need to install some system library headers using:
sudo apt install xorg-dev libgtk-3-dev
You can use the same instructions for building Falcor as described in the Visual Studio Code section above, simply choose the Linux/GCC preset.
Falcor uses CMake Presets stored in CMakePresets.json to provide a set of commonly used build configurations. You can get the full list of available configure presets running cmake --list-presets:
$ cmake --list-presets
Available configure presets:
"windows-vs2022" - Windows VS2022
"windows-ninja-msvc" - Windows Ninja/MSVC
"linux-clang" - Linux Ninja/Clang
"linux-gcc" - Linux Ninja/GCC
Use cmake --preset <preset name> to generate the build tree for a given preset. The build tree is written to the build/<preset name> folder and the binary output files are in build/<preset name>/bin.
An existing build tree can be compiled using cmake --build build/<preset name>.
For more information on how to use Falcor as a Python module see Falcor In Python.
Falcor uses the Microsoft DirectX 12 Agility SDK to get access to the latest DirectX 12 features. Applications can enable the Agility SDK by putting FALCOR_EXPORT_D3D12_AGILITY_SDK in the main .cpp file. Mogwai, FalcorTest and RenderGraphEditor have the Agility SDK enabled by default.
To enable NSight Aftermath support, head over to https://developer.nvidia.com/nsight-aftermath and download the latest version of Aftermath (this build is tested against version 2023.1).
Extract the content of the zip file into external/packman/aftermath.
To enable CUDA support, download and install CUDA 11.6.2 or later and reconfigure the build.
See the CudaInterop sample application located in Source/Samples/CudaInterop for an example of how to use CUDA.
If you want to use Falcor's OptiX functionality (specifically the OptixDenoiser render pass) download the OptiX SDK (Falcor is currently tested against OptiX version 8.0) After running the installer, link or copy the OptiX SDK folder into external/packman/optix (i.e., file external/packman/optix/include/optix.h should exist).
Note: You also need CUDA installed to compile the OptixDenoiser render pass, see above for details.
Falcor ships with the following NVIDIA RTX SDKs:
Note that these SDKs are not under the same license as Falcor, see LICENSE.md for details.
If you use Falcor in a research project leading to a publication, please cite the project. The BibTeX entry is
@Misc{Kallweit22,
author = {Simon Kallweit and Petrik Clarberg and Craig Kolb and Tom{'a}{\v s} Davidovi{\v c} and Kai-Hwa Yao and Theresa Foley and Yong He and Lifan Wu and Lucy Chen and Tomas Akenine-M{\"o}ller and Chris Wyman and Cyril Crassin and Nir Benty},
title = {The {Falcor} Rendering Framework},
year = {2022},
month = {8},
url = {https://github.com/NVIDIAGameWorks/Falcor},
note = {\url{https://github.com/NVIDIAGameWorks/Falcor}}
}
786 followers · starred Apr 2018
78 followers · starred Aug 2022
106 followers · starred Aug 2018
19 followers · starred Mar 2021