Skip to content

LogicEu/tracy

Repository files navigation

tracy

minimal path tracer in C

alt text

About

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.

Submodules

  • 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

Third Party Dependencies

The main dependencies are common image format libraries needed by imgtool.

The runtime version of tracy depends on OpenGL libraries aswell:

Try it

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.scx

Compile

Both 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

About

minimal path tracer in C

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors