June 14, 2018

RayTracer


Navigation

What would you like to see?



My hand-written C ++ Raytracer

Background:

As part of my Studies at the University of the Saarland, I developed a Raytracer in C++ by hand. Using modern physically based rendering techniques.

At the end of this Computer Graphics lecture, I participated in a rendering competition for which I developed this Ray-marched black hole effect.


Feature-set

Cameras

  • Orthographic & perspective cameras

Geometry

  • Mathematical Surfaces
  • .fbx Mesh import

Texturing

  • Texture Mapping
    • Spherical Mapping
    • Cube Mapping
    • UV Mapping via .fbx data
  • Procedural Textures

Lights

  • Point Lights
  • Directional Lights
  • Area Lights
  • Emissive Materials

Physically Based Shaders / Materials

  • Lambertian
  • Blinn-Phong Specular
  • Reflective Metallic
  • Refractive Glass

Quality & Performance

  • GPU Instancing
  • Anti-Aliasing
  • Anisotropic Filtering
  • Bilinear Filtering
  • Depth-of-Field
  • Normal Maps

Final Render competition

Features:

  • Physically based curvature of light rays
  • Light absorbing photo-sphere
  • Ray-marching allows even higher precision at the cost of performance

Top