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