Raytracer

Meine bisher gerenderten Werke sind in einer Gallerie zu finden. Das Programm ist von mir in C++ in Win32 entwickelt worden. Wenn ich Änderungen im Bild haben will, muß ich das Programm neu kompilieren. Die Rechenzeiten für die Bilder betrugen bis zu 5 Stunden.
Ich will das Programm noch um ein globales Beleuchtungsmodell erweitern (besser als Radiosity). Radiosity behandelt die rein diffusen Reflektionen, während Raytracing nur exakte Spiegelungen richtig darstellen kann. Das globales Beleuchtungsmodell soll aber auch weiche Reflektionen korrekt berechnen können.
Mit dem klassischen klassischen Monte-Carlo bin ich diesem Ziel etwas nähergekommen. Die hohen Rechenzeiten und Rauschen im Bild konnte ich dann durch eine Abwandlung des klassischen Verfahrens in den Griff bekommen. Eine bessere Version davon ist bereits in Arbeit. Mit einem adaptiven Algorithmus möchte ich an den unwichtigen Stellen Zeit einsparen und an wichtigen Stellen Zeit gewinnen.
Ein weiteres mittelfristiges Ziel ist es als Eingabedatei das RIB (Renderman) Format zu benutzen.

Klassisches Raytracing, einen Lichtquelle, Softshadows, Bild wurde herunterskaliert auf 50%

Normalerweise würde man hier weitere Lichtquellen verwenden und die Hintergrundhelligkeit erhöhen. Das wäre zwar nicht realistischer, würde aber ein ansprechenderes Ergebnis liefern.

Globales Beleuchtungsmodell (Monte-Carlo Abwandlung), Bild wurde herunterskaliert auf 50%

Links an der Wand ist die Spiegelung der gelben Kugel zu erkennen. Die matten Kugeln werden vom umgebenden Raum stark aufgehellt. Ebenso erhalten die Schatten indirektes Licht, denn kein direktes Licht erreicht den Kernschatten. Die hintere Wand erhellt den einen Teil des Schatten der gelben Kugel.



Die Abwandlung des Monte-Carlo Verfahrens besteht derzeit aus einem nachträglichen Filtern der diffusen Pixel mit deren Nachbarn in Abhänigkeit von Position und Normalen. Einen ähnlichen Algorithmus fand ich bei folgendem sehr interessanten Projekt.. Das Filtern wird hier noch von Farbgrenzen beeinflußt. Da nicht nur die diffusen Farbanteile gefiltert werden, muß der Filter sehr klein sein, um die Bilder nicht zu sehr zu verwaschen. Darunter leidet die Rechenzeit und/oder die Qualität der Bilder. In dem Projekt geht es um ein möglichst generelles Beleuchtungsmodell (spektrale Lichtbrechung, Caustics).