Hobby project that implements real-time path tracing for various backends.
The project can be built via CMake. Dependencies are included in the repository as submodules. Make sure they are correctly checked out. If you have not cloned the repository yet run:
git clone --recursive [email protected]:DBauer15/FaRT.git
Alternatively, on a local copy run:
git submodules update --init --recursive
To build the application run:
cmake -B build -D[RENDERER] .
cmake --build build -j
Where [RENDERER]
is one of the supported rendering backends (see below).
FaRT supports various rendering backends which can be built by setting corresponding CMake flags. Currently, only a single backend is supported at a time. To build a backend, pass the approriate flag.
OpenGL (Windows, Linux)
cmake -B build -DBUILD_OPENGL_RENDERER=ON
Metal (Apple)
cmake -B build -DBUILD_METAL_RENDERER=ON
The app can be started by calling the compiled binary with the desired scene as an argument.
cd build
./fart [SCENE_FILE]
Where [SCENE_FILE]
is a 3D file of any of the supported formats (see "Supported 3D Formats" for details).
The renderer implements two camera models - a first-person camera (default) and a simple arcball camera model. The camera can be controlled via mouse inputs. Camera modes can be switched by pressing C.
c
- Switch to arcball cameraLMB
- Rotate the cameraw
,a
,s
,d
- Move the camera forward/left/backward/righte
,q
- Move camera up/downSPACE
- Movement boost
c
- Switch to first-person cameraLMB
- Rotate the cameraRMB
- Zoom in/outMMB
- Pan the view
Here is an ever evolving list of supported file format.
- Wavefront OBJ
- PBRTv3 Format
- Autodesk FBX
- Stanford PLY
- GL Transmission Format glTF
- Pixar Universal Scene Descriptor USD