Integration von 3D-Visualisierungstechniken in 2D-Grafiksystemen
Integration von 3D-Visualisierungstechniken in 2D-Grafiksystemen
Integration von 3D-Visualisierungstechniken in 2D-Grafiksystemen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Kapitel 2. Grundlagen<br />
2.2.2. OpenGL<br />
Die Open Graphics Library (OpenGL) ist die Spezifikation e<strong>in</strong>er Software-Schnittstelle<br />
zur Grafikhardware[16, Abschnitt 1.2]. Die Grafikhardware wird so weit abstrahiert,<br />
dass e<strong>in</strong>e allgeme<strong>in</strong>e, plattformunabhängige Schnittstelle genutzt werden<br />
kann. Diese Abstraktionsebene ist noch immer hardwarenah genug, um e<strong>in</strong> e zientes<br />
Erzeugen <strong>von</strong> <strong>3D</strong>-Grafiken <strong>in</strong> Echtzeit zu erreichen.<br />
OpenGL-Implementierungen s<strong>in</strong>d auf den meisten Arbeitsplatzrechnern vorhanden.<br />
Unter Microsoft W<strong>in</strong>dows ist allerd<strong>in</strong>gs die Installation e<strong>in</strong>es (proprietären) Grafikkartentreibers<br />
sehr wichtig, da die ansonsten auf diesem System vorhandene Implementierung<br />
nur der Version 1.1 des OpenGL-Standards entspricht 3 . Falls ke<strong>in</strong>e Hardwarebeschleunigung<br />
vorhanden ist, können sogenannte Software-Renderer, re<strong>in</strong> auf<br />
dem Hauptprozessor arbeitende OpenGL-Implementierungen, genutzt werden. Diese<br />
s<strong>in</strong>d natürlich deutlich weniger leistungsfähig als Implementierungen, welche e<strong>in</strong>e<br />
Grafikkarte verwenden.<br />
Die OpenGL-API bietet zwei verschiedene Ansätze zum „Zeichnen“:<br />
• Die traditionelle Methode ist die Fixed Function Pipel<strong>in</strong>e, <strong>in</strong> der man die Art<br />
der Projektion, Beleuchtung, etc. durch Variablen kontrolliert. Wie die e<strong>in</strong>zelnen<br />
Schritte, <strong>von</strong> e<strong>in</strong>er aus Primitiven (Punkt, L<strong>in</strong>ie, Dreieck) bestehenden E<strong>in</strong>gabe<br />
zur fertigen Grafik, ablaufen, ist dabei fest im Treiber implementiert.<br />
• Bei dem „modernen“ Ansatz wird e<strong>in</strong>e Shader-basierte Pipel<strong>in</strong>e verwendet, d. h.<br />
e<strong>in</strong> Teil der Schritte (z. B. Transformation oder E<strong>in</strong>färben <strong>von</strong> Pixeln) wird<br />
durch kle<strong>in</strong>e, vom Anwendungsentwickler geschriebene Programme, die sogenannten<br />
Shader-Programme, auf der Grafikhardware ausgeführt.<br />
Die Erzeugung <strong>von</strong> Grafiken erfolgt <strong>in</strong> OpenGL nach dem Pr<strong>in</strong>zip der Rasterisierung,<br />
d. h. die Objekte der Szene werden als e<strong>in</strong>e Art Vektorgrafik an die Implementierung<br />
übergeben und dort <strong>in</strong> e<strong>in</strong>e Rastergrafik umgewandelt. Dabei wird mit e<strong>in</strong>em Tiefenpu<br />
er, e<strong>in</strong>em Speicherbereich <strong>in</strong> dem für jeden Pixel e<strong>in</strong> Tiefenwert gespeichert<br />
wird, sicher gestellt, dass im dreidimensionalen Raum näher an der Kamera liegende<br />
Punkte weiter entfernte Punkte verdecken.<br />
Die Spezifikation wird durch e<strong>in</strong> Non-Profit-Industriekonsortium <strong>von</strong> Mitgliedern<br />
wie Nvidia, AMD und Intel, der Khronos Group[5], verwaltet und weiter entwickelt.<br />
Die aktuelle Version wird auf der Webseite http://www.opengl.org/registry/ verö<br />
entlicht.<br />
2.2.3. HMTL5/JavaScript und WebGL<br />
E<strong>in</strong>e noch relativ neue Entwicklung im Bereich der <strong>3D</strong>-Visualisierung ist die WebGL-<br />
API. Der ebenfalls <strong>von</strong> der Khronos Group entwickelte Web-Standard ermöglicht<br />
e<strong>in</strong> plattformunabhängiges, hardwarebeschleunigtes Rendern <strong>von</strong> <strong>3D</strong>-Grafik im Webbrowser.<br />
Das auf OpenGL ES 2.0 basierende WebGL stellt e<strong>in</strong>en sehr großen Teil<br />
4<br />
3 Version 1.1 wurde 1997 verö entlicht; aktuell s<strong>in</strong>d die Versionen 3.3 und 4.3