Tool zur Berechnung und Darstellung der Fraktale

Zur Berechnung / Darstellung der Fraktale verwende ich die Software Vision of Chaos von Softology [1] - genauer: einen recht kleinen Teil dieser Software, die verschiedenste Aspekte und Berechnungsmethoden von Chaos unter einem Dach vereint und dem Anwender ein großes Feld für eigene Experimente und Darstellungsarten erschließt.

Unter Rootfinding Fractals sind in der Software bereits einige komplexe Polynome, fünf Iterationsverfahren sowie einige Möglichkeiten der "künstlerischen Aufbereitung / Verfremdung" der Fraktale implementiert. Letzteres steht auf meiner Seite wohl nicht im Focus.

 

Der Clou aber ist der, dass der Author Jason Rampe auch einen OpenGL Shader nebst einigen Beispielen zur Verfügung stellt. Hierdurch hat man die Möglichkeit, eigene Polynome und weitere Iterationsverfahren in OpenGL SL [2], [3] zu programmieren, wovon ich bei der Thematik Basins of Attraction Gebrauch gemacht habe.

 

Insbesondere konnte ich so auch die Erzeugung von Fraktalen mit trigonometrischen und Exponentialfunktionen implementieren - dabei allerdings mit dem Wermutstropfen, dass die Iterationen für diese Funktionstypen in OpenGL SL nur in Single Precision ausgeführt werden und die entstehenden Bilder beim Hineinzoomen schnell pixelig werden.

 

Die Berechnung der Fraktale erfolgt durch die GPU (!) auf der Grafikkarte und ist daher im Vergleich zu CPU-basierten Berechnungen extrem schnell.

Für das rechts abgebildete und häufig zitierte "Newton-Fraktal", das sich als Lösung der Gleichung z³ - 1 = 0 ergibt (s. Basins of Attraction z^3-1=0), ergeben sich bei gleichem Bereich B und gleicher Iterationstiefe für meine derzeit verwendete sehr schnelle Hardware (s. Diverse Themen / Tools) folgende Rechenzeiten :

 

Standard-Berechnung (CPU):  21.1   Sekunden für 1024 x 1024 Pixel

OpenGL Shader (GPU):             0.26 Sekunden für 1024 x 1024 Pixel

 

und somit eine ca. 80-fach schnellere Berechnung bei Anwendung des Shaders. Dies ermöglicht auch zeitliche Animationen (s. z.B. King-Verfahren unter Basins of Attraction z^3-1=0).

 

Die Nullstellen der im Programm bereits implementierten Beispielfunktionen finden Sie unter Beispiele komplexer Funktionen mit Nullstellen.

Basins of Attraction z^3-1=0 Newton-Verfahren