Interaktives Rendern von 3D Fraktalen in WebGL

Tobias Bayer und Sebastian Kalkhoff, Seminararbeit

Im Rahmen des Seminars Themen der Computergrafik (WS11/12) wurde eine WebGL Applikation zum Rendern von 3D-Fraktalen entwickelt.

Es wird dem Nutzer ermöglicht, sich frei im Raum um verschiedene Fraktale bei interaktiven Bildraten zu bewegen. Neben dem Mandelbulb beinhaltet die Applikation noch das Julia Set sowie die Mandelbox.
Ermöglicht wird die flüssige Darstellung durch die parallele Berechnung der Fraktaloberflächen auf der GPU in GLSL (OpenGL Shading Language).
Hierbei wird die Oberfläche per Raymarching mit einer Approximation der Fraktaloberfläche abgetastet. Unsere Applikation führt diese Berechnungen im Fragment Shader pro Pixel durch.

Zur Verbesserung der Bildqualität wird die Oberfläche im Subpixelbereich abgetastet (Supersampling). Die Reaktionszeit wird vermindert durch das aufteilen des Rechenaufwandes anhand eines eigens entwickelten Verfahrens: Ein volles Bild wird auf mehrere Subbilder aufgeteilt (Undersampling) und später wieder zusammengefügt. So müssen pro Bild weniger Pixel abgetastet werden, wodurch die Bildqualität bei der Kamerabewegung abnimmt (Verpixelung), zudem aber auch die Reaktionszeit deutlich sinkt und die Bildrate steigt.

Anhand der Oberflächengegebenheiten wird das jeweilige Fraktal anschließend noch beleuchtet (Phong-Modell). Neben der freien Kamerasteuerung werden dem Nutzer noch verschiedene Möglichkeiten zur Änderung verschiedener Parameter des Fraktals und der Kamera geboten. Unter anderem ist es möglich die Form des Fraktals anhand des “Scale”-Parameters zu ändern, sowie die Geometrie entlang einer Ebene durchzuschneiden. Die Kamera bietet zusätzlich noch Optionen zur Änderung des Blickfeldes sowie zur Belichtung und Tiefenunschärfe.

Interaktives Rendern von 3D Fraktalen in WebGL (PDF)