Interaktive Erzeugung fraktaler Landschaften auf Parallelrechnern

Einleitung

Im Verlauf der letzten Jahre hat die Computergraphik in der Datenverarbeitung einen immer bedeutenderen Stellenwert eingenommen. So ist sie bei der Arbeit in Berufen mit technischer Ausrichtung, wie z.B. bei der Erstellung von Bau- und Konstruktionsplänen oder der Simulation physikalischer Vorgänge nicht mehr wegzudenken. Einen erheblichen Aufschwung haben computergraphische Darstellungen aber vor allem in der graphischen Kunst, insbesondere bei der Erstellung von Filmen und Computerspielen erreicht. Hier werden mit dem Einsatz der Computergraphik bei der Erzeugung und Animation von Film- bzw. Spielobjekten große Erfolge erzielt.

Den meisten computergraphisch erzeugten Objekten haftet jedoch das Problem an, daß sie künstlich und damit unecht wirken. Eine Alternative bieten Fraktale. Aufgrund der ihnen innewohnenden Selbstähnlichkeit sind sie in der Lage, natürliche Objekte wie z.B. Berge, Bäume oder Wolken naturgetreu zu modellieren.

Da beim Einsatz der Computergraphik sehr komplexe Algorithmen zur Berechnung einer natürlich beleuchteten dreidimensionalen Szene verwendet werden, treten recht lange Laufzeiten auf. Bislang mußten daher teure Groß- bzw. Spezialrechner eingesetzt oder eine längere Rechenzeit in Kauf genommen werden.

Im Rahmen der hier vorliegenden Arbeit wird ein Computergraphikprogramm zur Erzeugung fraktaler Landschaften auf Parallelrechnern entwickelt. Die Komplexität der computergraphischen Algorithmen und die Unabhängigkeit der einzelnen Programmteile voneinander versprechen eine effiziente Parallelisierung und somit ein gutes Laufzeitverhalten. Als Basis der parallelen Programmierung dienen die einzelnen sequentiellen Programmteile, die gleichzeitig auf verschiedenen Prozessoren ablaufen und Daten untereinander austauschen. Vor dem Start des Programms können die Größe der Topologie und der zu verwendende Parallelrechner vom Benutzer ausgewählt werden.

Die Landschaften werden von fraktalen Bergen und beliebig vielen fraktalen Pflanzen gebildet, die vom Benutzer manipuliert werden können. Der Anwender besitzt die Möglichkeit, die Szene frei zu konfigurieren. Außerdem kann er den fokussierten Punkt, den Standpunkt des Betrachters, den darzustellenden Szenenausschnitt und die Position einer Lichtquelle festlegen.

Zur Eingabe und Veränderung der Daten durch den Benutzer wird eine interaktive Oberfläche entwickelt. Mit Hilfe dieser Oberfläche werden außerdem das sequentielle sowie das parallele Programm gestartet und das berechnete Bild in einem Fenster dargestellt.

Mit der Erzeugung fraktaler Berge und fraktaler Pflanzen befaßt sich das folgende Kapitel. Es umfaßt eine Einführung in das Thema Fraktale und durch Skizzen erläuterte Darstellungen der verwendeten Algorithmen. Da die fraktalen Pflanzen mit Hilfe von Lindenmayer-Systemen und einer Turtle-Graphik generiert werden, enthält dieses Kapitel ebenfalls einige allgemeine Anmerkungen zu diesen Themengebieten.

Das Kapitel 3 geht auf die Abbildung der dreidimensionalen Szene auf einen zweidimensionalen Bildschirm ein. Es werden die algorithmischen Grundlagen für die Darstellung einer 3D-Szene aus beliebigen Blickwinkeln vorgestellt und die verschiedenen Techniken zur Unterdrückung von Rückflächen, zum Abschneiden nicht sichtbarer Objektteile und zum Schattieren von Flächen erläutert.

Im Mittelpunkt des 4. Kapitels steht die Parallelisierung des in Kapitel 2 und 3 entwickelten sequentiellen Programms. Hier wird nach einer einleitenden Darstellung der verwendeten parallelen Hard- und Software die parallele Version des Programms dargestellt, die unter der Laufzeitumgebung Parix entwickelt wird. Das parallele Programm ist auf Topologien mit 4, 16, 32 und 64 Prozessoren lauffähig. Um die Effizienz der Parallelisierung zu ermitteln, werden die Meßergebnisse auf diesen Topologien mit dem Laufzeitverhalten des sequentiellen Programms verglichen.

Die Funktionsweise der interaktiven Oberfläche zur Bedienung des Programms erläutert Kapitel 5. Darin wird zu Beginn eine Darstellung des X Window Systems und des OSF/Motif-Widget-Sets vorgenommen, unter denen die Oberfläche implementiert wurde, und anschließend auf die Handhabung derselben eingegangen.

Eine Zusammenfassung sowie ein Ausblick auf mögliche Erweiterungen des Programms schliessen die Arbeit ab. Der darauf folgende Anhang enthält die Grammatik der verwendeten Lindenmayer-Systeme, eine Installationsanweisung des Programms, ein Beispiel für die Beschreibung einer fraktalen Szene sowie eine Aufzählung aller Programmquellen.