{"id":13629680,"url":"https://github.com/NVIDIAGameWorks/Falcor","last_synced_at":"2025-04-17T09:35:54.221Z","repository":{"id":39965695,"uuid":"98350667","full_name":"NVIDIAGameWorks/Falcor","owner":"NVIDIAGameWorks","description":"Real-Time Rendering Framework","archived":false,"fork":false,"pushed_at":"2024-08-19T08:07:39.000Z","size":28502,"stargazers_count":2603,"open_issues_count":40,"forks_count":472,"subscribers_count":129,"default_branch":"master","last_synced_at":"2024-08-19T09:28:15.606Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://developer.nvidia.com/falcor","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NVIDIAGameWorks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-25T21:15:23.000Z","updated_at":"2024-08-19T09:28:20.677Z","dependencies_parsed_at":"2024-01-08T18:51:39.543Z","dependency_job_id":"9536f2a5-bc09-49fa-ba46-ab50ab70bff2","html_url":"https://github.com/NVIDIAGameWorks/Falcor","commit_stats":{"total_commits":1075,"total_committers":22,"mean_commits":48.86363636363637,"dds":0.5655813953488372,"last_synced_commit":"8526e89f0db9fb7a2704c4a6c00efa038e0c9d78"},"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIAGameWorks%2FFalcor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIAGameWorks%2FFalcor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIAGameWorks%2FFalcor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIAGameWorks%2FFalcor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NVIDIAGameWorks","download_url":"https://codeload.github.com/NVIDIAGameWorks/Falcor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223751378,"owners_count":17196627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T22:01:16.406Z","updated_at":"2024-11-08T20:31:47.189Z","avatar_url":"https://github.com/NVIDIAGameWorks.png","language":"C++","funding_links":[],"categories":["C++","Libraries","Digital Content Creation Software (DCCs)","Engines","Software Reference"],"sub_categories":["3D realtime engines","Render Engines"],"readme":"![](docs/images/teaser.png)\n\n# Falcor\n\nFalcor is a real-time rendering framework supporting DirectX 12 and Vulkan. It aims to improve productivity of research and prototype projects.\n\nFeatures include:\n* Abstracting many common graphics operations, such as shader compilation, model loading, and scene rendering\n* Raytracing support\n* Python scripting support\n* Render graph system to build modular renderers\n* Common rendering techniques such post-processing effects\n* Unbiased path tracer\n* Integration of various RTX SDKs such as DLSS, RTXDI and NRD\n\n## Prerequisites\n- Windows 10 version 20H2 (October 2020 Update) or newer, OS build revision .789 or newer\n- Visual Studio 2022\n- [Windows 10 SDK (10.0.19041.0) for Windows 10, version 2004](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/)\n- A GPU which supports DirectX Raytracing, such as the NVIDIA Titan V or GeForce RTX\n- NVIDIA driver 466.11 or newer\n\nOptional:\n- Windows 10 Graphics Tools. To run DirectX 12 applications with the debug layer enabled, you must install this. There are two ways to install it:\n    - Click the Windows button and type `Optional Features`, in the window that opens click `Add a feature` and select `Graphics Tools`.\n    - Download an offline package from [here](https://docs.microsoft.com/en-us/windows-hardware/test/hlk/windows-hardware-lab-kit#supplemental-content-for-graphics-media-and-mean-time-between-failures-mtbf-tests). Choose a ZIP file that matches the OS version you are using (not the SDK version used for building Falcor). The ZIP includes a document which explains how to install the graphics tools.\n- NVAPI, CUDA, OptiX (see below)\n\n## Building Falcor\nFalcor uses the [CMake](https://cmake.org) build system. Additional information on how to use Falcor with CMake is available in the [CMake](docs/development/cmake.md) development documetation page.\n\n### Visual Studio\nIf you are working with Visual Studio 2022, you can setup 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`.\n\n### Visual Studio Code\nIf 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`.\n\nWarning: Do not start VS Code from _Git Bash_, it will modify the `PATH` environment variable to an incompatible format, leading to issues with CMake.\n\n### Linux\nFalcor 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:\n\n```\nsudo apt install xorg-dev libgtk-3-dev\n```\n\nYou can use the same instructions for building Falcor as described in the _Visual Studio Code_ section above, simply choose the _Linux/GCC_ preset.\n\n### Configure Presets\nFalcor uses _CMake Presets_ store 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`:\n\n```\n$ cmake --list-presets\nAvailable configure presets:\n\n  \"windows-vs2022\"           - Windows VS2022\n  \"windows-ninja-msvc\"       - Windows Ninja/MSVC\n  \"linux-clang\"              - Linux Ninja/Clang\n  \"linux-gcc\"                - Linux Ninja/GCC\n```\n\nUse `cmake --preset \u003cpreset name\u003e` to generate the build tree for a given preset. The build tree is written to the `build/\u003cpreset name\u003e` folder and the binary output files are in `build/\u003cpreset name\u003e/bin`.\n\nAn existing build tree can be compiled using `cmake --build build/\u003cpreset name\u003e`.\n\n## Falcor In Python\nFor more information on how to use Falcor as a Python module see [Falcor In Python](docs/falcor-in-python.md).\n\n## Microsoft DirectX 12 Agility SDK\nFalcor uses the [Microsoft DirectX 12 Agility SDK](https://devblogs.microsoft.com/directx/directx12agility/) 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.\n\n## NVAPI\nTo enable NVAPI support, head over to https://developer.nvidia.com/nvapi and download the latest version of NVAPI (this build is tested against version R535).\nExtract the content of the zip file into `external/packman/` and rename `R535-developer` to `nvapi`.\n\n## NSight Aftermath\nTo 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).\nExtract the content of the zip file into `external/packman/aftermath`.\n\n## CUDA\nTo enable CUDA support, download and install [CUDA 11.6.2](https://developer.nvidia.com/cuda-11-6-2-download-archive) or later and reconfigure the build.\n\nSee the `CudaInterop` sample application located in `Source/Samples/CudaInterop` for an example of how to use CUDA.\n\n## OptiX\nIf you want to use Falcor's OptiX functionality (specifically the `OptixDenoiser` render pass) download the [OptiX SDK](https://developer.nvidia.com/designworks/optix/download) (Falcor is currently tested against OptiX version 7.3) 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).\n\nNote: You also need CUDA installed to compile the `OptixDenoiser` render pass, see above for details.\n\n## NVIDIA RTX SDKs\nFalcor ships with the following NVIDIA RTX SDKs:\n\n- DLSS (https://github.com/NVIDIA/DLSS)\n- RTXDI (https://github.com/NVIDIAGameWorks/RTXDI)\n- NRD (https://github.com/NVIDIAGameWorks/RayTracingDenoiser)\n\nNote that these SDKs are not under the same license as Falcor, see [LICENSE.md](LICENSE.md) for details.\n\n## Resources\n- [Falcor](https://github.com/NVIDIAGameWorks/Falcor): Falcor's GitHub page.\n- [Documentation](./docs/index.md): Additional information and tutorials.\n    - [Getting Started](./docs/getting-started.md)\n    - [Render Graph Tutorials](./docs/tutorials/index.md)\n- [Rendering Resources](https://benedikt-bitterli.me/resources) A collection of scenes loadable in Falcor (pbrt-v4 format).\n- [ORCA](https://developer.nvidia.com/orca): A collection of scenes and assets optimized for Falcor.\n- [Slang](https://github.com/shader-slang/slang): Falcor's shading language and compiler.\n\n## Citation\nIf you use Falcor in a research project leading to a publication, please cite the project.\nThe BibTex entry is\n\n```bibtex\n@Misc{Kallweit22,\n   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},\n   title =       {The {Falcor} Rendering Framework},\n   year =        {2022},\n   month =       {8},\n   url =         {https://github.com/NVIDIAGameWorks/Falcor},\n   note =        {\\url{https://github.com/NVIDIAGameWorks/Falcor}}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNVIDIAGameWorks%2FFalcor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNVIDIAGameWorks%2FFalcor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNVIDIAGameWorks%2FFalcor/lists"}