next up previous contents
Next: Beispiel eines Daten-Files Up: Technische Details Previous: Minimierung des Rechenaufwands für

Beschreibungssprache für Objekte
und Filmsequenzen

Zur Beschreibung der Geometrie und anderer Parameter einer abzubildenden Szene wurde eine Beschreibungssprache entwickelt. So können verschiedene Filmsequenzen mit demselben Programm berechnet werden. Für jede Filmsequenz wird in dieser Sprache ein Daten-File erstellt, das zu Beginn des Programms eingelesen, interpretiert und in eine interne Datenstruktur umgesetzt wird. Vor der Interpretation wird das Daten-File noch mit dem C-Preprozessor bearbeitet, so daß dessen Möglichkeiten (Kommentare, #include, #define, #ifdef usw.) uneingeschränkt genutzt werden können.

Die Syntax der Sprache ist an LISP angelehnt. Das Datenfile besteht aus einer Folge von Listen:

(func arg1 arg2 ...)
(func arg1 arg2 ...)
Das erste Element einer Liste ist eine Funktion, die auf die restlichen Elemente angewendet wird.

Die einzelnen Objekte einer Szene können als hierarchische Struktur aus Grundelementen wie Kugeln, Kegelstümpfen und Zylindern mittels beliebig kombinierbarer Koordinatentransformationen (Drehungen um Koordinatenachsen und Verschiebungen) zusammengesetzt werden. Außerdem gibt es die Möglichkeit mit ,,unsichtbaren`` Objekten Stücke wieder ,,herauszuschneiden``. Der Ring um den Neutronenstern beispielsweise besteht aus einem flachen Zylinder, aus dem in der Mitte ein kleinerer Zylinder ,,herausgestanzt`` wurde. Um festzulegen, welches von zwei sich überlappenden Objekten gültig ist, kann jedem Objekt eine Priorität zugeordnet werden. In oben genanntem Beispiel muß der innere Ring eine höhere Priorität haben als der äußere. Der Neutronenstern besitzt die höchste Priorität.



Unterabschnitte
next up previous contents
Next: Beispiel eines Daten-Files Up: Technische Details Previous: Minimierung des Rechenaufwands für
Corvin Zahn
2002-06-16