minimal path tracer in C
Tracy is a simple path tracer that runs entirely in the CPU. It uses a mixture between ray tracing and path tracing to render 3D scenes. Some of the features tracy supports are:
- Materials (Lambertian, Emissive, Dielectric, Metalic)
- Sphere, Box and Triangle Intersections
- Loading of 3D Models (.obj)
- Sparse Voxel Octree for Model Rendering Acceleration
- Multithreading
- Realtime Rendering
- Custom Scene Description File Format
Tracy has two verions; the cli version works only from the command line and has no graphical user interface. Useful to perfom long and detailed renders. The runtime version is interactive and uses OpenGL to render the traced texture in real time.
- utopia Collection of data structures in C
- fract 2D and 3D math for graphics and games
- photon Shapes and intersection algorithms
- mass 3D model loader library
- imgtool Save and load images easily
- spxe Simple pixel engine and renderer
The main dependencies are common image format libraries needed by imgtool.
The runtime version of tracy depends on OpenGL libraries aswell:
If you have all third party dependencies installed on your system you can easily try tracy with the following commands:
git clone --recursive https://github.com/LogicEu/tracy.git
cd tracy
make all -j # or ./build.sh all
./tracy scenes/scene.scxBoth build script currently work on Linux an MacOS.
- Runtime
make -j # or ./build.sh rt- Command Line Interface
make cli -j # or ./build.sh cli