Preview Build

Software Raytracer

Monte-Carlo-Pfad-Tracing in C

CComputer GraphicsMultithreading
Jahr: 2024|Dauer: 8 Monate|Status: Abgeschlossen

Das Projekt

Dieser Raytracer berechnet Licht. Nicht approximiert, nicht geschätzt – simuliert. Jeder Pixel ist das Ergebnis von Millionen Lichtstrahlen, die durch eine Szene bouncen, sich brechen und absorbieren.

Geschrieben in C von Grund auf. Keine Grafik-Bibliotheken, keine Hardware-Beschleunigung. Nur Mathematik, Speicher und so viele CPU-Kerne, wie das System hergibt.

Das Projekt war eine Reise in die Computergrafik: von Vektor-Mathematik über Bounding Volume Hierarchies bis hin zur Farbwissenschaft von ACES-Tonemapping.

Raytracer Render Output

Technische Umsetzung

Monte-Carlo-Pfad-Tracing

Rekursive Lichtstrahl-Simulation mit Russian Roulette-Terminierung. Diffuse, spiegelnde und transparente Materialien.

BVH-Beschleunigung

Bounding Volume Hierarchy mit SAH-Heuristik für schnelle Ray-Schnitt-Tests. Rendert komplexe Szenen in Sekunden statt Stunden.

Multithreading

Thread-Pool mit Work-Stealing-Scheduling. Nahezu lineare Skalierung mit Kernanzahl.

1M+

Strahlen pro Pixel

8

CPU-Kerne genutzt

0

Externe Bibliotheken

<2s

Rendern komplexer Szene

Galerie

Raytracer Render Output
Cornell Box Render
Metallic Scene Render