Real-time path traced voxel engine
Video demo: https://youtu.be/6ehg5h1aBRI (somewhat outdated)
Make sure to clone with --recurse-submodules to gather all required dependencies.
Then, you should be able to just open the folder with Visual Studio 2022 and have it automatically recognize the CMake project.
Or, you can:
- Install CMake if you don't have it already
- Run
setup.bat - Load
build/Biomeinator.slnwith Visual Studio 2022 - Right-click "Biomeinator" in the Solution Explorer and set as default startup project
- Build and run
For voxel terrain, run with the command line argument --voxelMode. Otherwise, you can open glTF scenes with Ctrl + O. Some example scenes are available in test_scenes/.
Use WASD to move horizontally, Q and E to move vertically, and the mouse to rotate. Additional controls include:
- Hold C to zoom
- Press Z to toggle the cursor for accessing the settings menu
- Press F2 to take a screenshot (which is then stored in
Documents/biomeinator/screenshots/) - Press H to toggle GUI visibility
- Press P to pause and unpause world animation (day/night cycle, water waves)
- Hold [ or ] to run world animation backwards or forwards at 50x speed
Significant parts of this codebase were written using AI coding tools (e.g., the physically-based sky). Not all of it was manually reviewed. What can I say? I'm a lazy guy sometimes. I tend to concentrate my manual effort on areas I care about the most, like terrain generation and volume scattering. Please keep this in mind if you look into the code.
This project uses various third-party libraries:
- tinygltf - MIT
- json - MIT
- stb - MIT
- cxxopts - MIT
- Dear ImGui - MIT
- ImPlot - MIT
- DirectXShaderCompiler - University of Illinois Open Source
- DirectX-Headers - MIT
- Agility SDK - Microsoft Software License
- Minimal AgX implementation - MIT
- Khronos PBR Neutral tonemapper - Apache-2.0
- NVAPI - MIT
- Streamline - MIT (DLSS binaries are under the NVIDIA RTX SDKs License)
- NRC - NVIDIA RTX SDKs License
- GLM - MIT
- FastNoiseLite - MIT
- FastNoise2 - MIT
- GPUSorting - MIT
- LZ4 - BSD 2-Clause
Third-party license text files are available in their respective folders in external/. Licenses without specific folders are in external/_licenses.
Reference documentation vendored under reference/ (not compiled into the project):
- DirectX-Specs - docs under CC BY 4.0, code samples under MIT
Block textures come from:
- Good Vibes by Acaitart
- 16px Seamless MC Texture Hyperpack by Reactorcore
This project is not sponsored by, endorsed by, or affiliated with NVIDIA Corporation.
