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

Orthographic 
Perspective
Geometry
- Mathematical Surfaces
- .fbx Mesh import

Mathematical surface 
Imported .fbx mesh
Texturing
- Texture Mapping
- Spherical Mapping
- Cube Mapping
- UV Mapping via .fbx data
- Procedural Textures

Cube & Sphere Mapping 
UV Mapping 
Procedural Textures
Lights
- Point Lights
- Directional Lights
- Area Lights
- Emissive Materials

Point & Area Lights 
Point & Directional Lights
Physically Based Shaders / Materials
- Lambertian
- Blinn-Phong Specular
- Reflective Metallic
- Refractive Glass

Reflective Metallic 
Lambertian 
Refractive Glass
Quality & Performance
- GPU Instancing
- Anti-Aliasing
- Anisotropic Filtering
- Bilinear Filtering
- Depth-of-Field
- Normal Maps

GPU Instancing 
Normal map 
Bilinear Filtering 
Depth-of-Field & Anti-Aliasing
Final Render competition


An “inverted” black hole 

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