next up previous contents
Nächste Seite: PGPLOT Aufwärts: Standards der Computergrafik Vorherige Seite: Standards der Computergrafik   Inhalt

PHIGS und OpenGL

Der Notwendigkeit, dreidimensionale Zeichnungen zu erstellen, widmet sich ein Standard mit Namen PHIGS (Programmer's Hierarchical Interactive Graphics System, 1984). PHIGS ist datenorientiert und widmet sich insbesondere dreidimensionalen Objekten wie Linien, Markern, Polygonen, Polyeder und Text. Es schließt die Konzeption eines hierarchischen Modells ein, wodurch dem Anwender gestattet wird, Manipulationen an den grafischen Daten vorzunehmen (z.B. in drei Dimensionen rotieren, die Farben modifizieren usw.), ohne die gesamte Datenbasis von Grund auf neu spezifizieren zu müssen.

Abbildung 10.2: historische Entwicklung von Grafikstandards
\includegraphics{epsfiles/grafikentwicklung.eps}

Da insbesondere bei dreidimensionaler Darstellung von Animationen (z.B. Flugsimulator) der numerische Aufwand zur Berechnung enorm ansteigt und handelsübliche Prozessoren nicht in der Lage sind, diese Berechnungen in 'Echtzeit' durchzuführen, haben in den 80er Jahren Computerhersteller damit begonnen, spezielle Grafikhardware in ihre Rechner einzubauen; die 'Grafikbeschleuniger' wurden geboren. Aufgaben dieser Prozessoren sind z.B. die Berechnung sichtbarer bzw. verdeckter Flächen (Z-Buffer), das schnelle Füllen von Farbflächen (Rendering) und die Berechnung von Oberflächenstrukturen (Texture-Mapping). Viele dieser Aufgaben lassen sich sehr gut parallelisieren, so daß moderne Grafiksupercomputer neben einem oder mehrerer Numerikprozessoren auf ihren Grafikkarten (die von den Ausmaßen nichts mit den PC-Karten gemeinsam haben) eine Vielzahl von Prozessoren für die Grafikberechnung benutzen. Die Rechenleistung der Grafikprozessoren liegt dabei meist um Größenordungen über der Numerikleistung dieser Computer.

Um diese Spezialhardware effizient ansprechen zu können, wurde von der Firma Silicon Graphics (SGI) eine eigene Grafikbibliothek entwickelt, die sog. 'Graphics Library', GL. Diese Bibliothek enthält ähnlich wie GKS oder PHIGS Routinen und Funktionen zum Zeichnen von Grafikprimitiven. Im Unterschied zu den Softwareemulationen von z.B. GKS werden die Routinen direkt von der Grafikhardware ausgeführt, sofern sie vorhanden ist. Damit ändert sich die bisher dargestellte Struktur eines Grafikssytems.

Abbildung 10.3: Struktur eines Grafikssystems mit OpenGL
\includegraphics{epsfiles/OpenGlStruktur.eps}

Sind die entsprechenden Komponenten auf einem Computer nicht vorhanden, werden die Befehle wie bei GKS auf dem Numerikprozessor mit entspr. Performanceverlusten ausgeführt. Damit können Grafikprogramme auf der gesamten Hardwarepalette des Herstellers entwickelt und verwendet werden.

Der enorme Erfolg der Computer von SGI und der GL, der durch Filme wir 'Jurassic Park' (alle Computeranimationen wurden mit SGI-Rechnern durchgeführt) auch einem breiteren Publikum bekannt gemacht wurde, veranlaßte alle großen Computerhersteller (DEC, IBM, SUN, INTEL etc.) zusammen mit SGI einen erweiterten Standard zu entwickeln, die Open Graphics Library, OpenGL. Mit der OpenGL wurde ein Standard verabschiedet, der für den Softwareentwickler ein hardwareunabhängiges Werkzeug zur Entwicklung von Grafikprogrammen bereitstellt, daß auf Rechnern verschiedenster Hersteller lauffähig ist (Cross-Platform-Kompatibilität). Auf der anderen Seite können die Computerhersteller im Rahmen der Norm von OpenGL Spezialhardware für ihre Computer entwickeln und sich so trotz kompatibler Bibliotheken einen Wettbewerbsvorsprung gegenüber anderen Herstellern erarbeiten10.1.

Für viele Anwendungsprogrammierer stellen die nur auf Grafikprimitiven (Punkt, Linie, Fläche etc.) und Attributen (Dicke, Farbe etc.) arbeitenden Bibliotheken wie OpenGL eine mächtige aber auch umständlich zu programmierende Umgebung dar, da Aufrufe, die komplexere Dinge wie z.B. das Zeichnen eines Koordinatensystems mit Skalierungen etc. eine Vielzahl von Bibliotheksaufrufen erforderlich machen. Daher bieten viele Hersteller zusätlich zu OpenGL weitere Bibliotheken an, die auf OpenGL basieren aber komplexe Grafikbefehle kennen um komlizierte Grafiken relativ einfach aufbauen zu können. Ein Beispiel hierfür ist die Bibliothek OpenInventor.


next up previous contents
Nächste Seite: PGPLOT Aufwärts: Standards der Computergrafik Vorherige Seite: Standards der Computergrafik   Inhalt
Lars Tornow 2003-04-02