Skip to content
/ odin Public

Odin is a path tracer that is written using the Vulkan API and compute shaders

License

Notifications You must be signed in to change notification settings

tstullich/odin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Odin - A Vulkan-based Path Tracer

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.

Features

  • 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

Installation

Dependencies

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.

Building

  1. Clone the repository - git clone --recursive https://github.com/tstullich/odin.git
  2. 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.

Future Work

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

About

Odin is a path tracer that is written using the Vulkan API and compute shaders

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages