Skip to content

qwikdraw/raytan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Raytan

Advanced Raytracer in C++

About

Raytan is a fast raytracer written in C++ with a focus on practical effects. It supports spheres, cones, cylinders, elipsoids, planes, cubes and sheets. It also supports compound shapes that result from addition and subtraction of two shapes.
This is implemented using a distance field algorithm.
The color, material properties (diffuse, reflection, refraction, refractive index) and normals can all be mapped to textures, to allow the creation of realistic 3D sprites that can seamlessly mesh into a scene.

Raytan has a Qt GUI that gives you control over ambient, shadow softness, light samples, recursion level and antialiasing. The GUI allows for the application of various post effects such as cartoon, tint + saturation, motion blur, and edge detection.

Screenshots

gui animation gif post-processing gif sprite in scene

Dependencies

  • lodepng
  • glm
  • Qt 5.1

Building

Requires

  • clang
  • Qt's moc
  • make
  • pkg-config

Instructions

Install dependencies, on macOS with brew you can do this with make deps

make

Authors

  • Logan Kaser
  • Theo Walton
  • Brendan Pierce