Odin is a path tracer that is written using the Vulkan API and compute shaders. Odin has been tested on an NVIDIA Geforce GTX 970 and Intel Integrated graphics GPUs.
- Support for diffuse, caustic, and dielectric materials
- Tracing of geometry serialized in the OBJ file format
- A basic Bounding Volume Hierarchy using axis-aligned bounding boxes
Make sure you have CMake, the Vulkan API, and Boost's boost::program_options
installed on your system.
It is also important to have a compiler that supports c++17 to be able to compile Odin.
- Clone the repository -
git clone --recursive https://github.com/tstullich/odin.git
- Create a build directory and build
cd odin
mkdir build
cd build
cmake ..
make install
Odin should then be installed in the bin
directory. Type odin --help
for more information.
Below is a list of planned features and improvements for Odin
- Rewrite BVH construction and traversal logic to use an SAH k-d tree
- Implement Multiple Importance Sampling
- Improve the compute and graphics pipelines to do batched rendering
- Update the camera model to use a view matrix
- Expand material support
- Add a GUI for tuning scene parameters at runtime (Dear Imgui)
- Move Vulkan header to use Vulkan-Hpp