OpenGl

Inhaltsverzeichnisseite

OpenGL - Pipeline

 

Eigenschaften von OpenGL

 

OpenGL wurde urspruenglich fuer C/C++ entwickelt, arbeitet mittlerweile

aber auch mit anderen Sprachen zusammen. OpenGl ist eine prozedurale API,

Befehle erfolgen in Form von Funktionsaufrufen. Ein Funktionsaufruf veraendert

den Zustand von OpenGL.

Diejenigen, die zuerst

erfolgen, werden zuerst aus-

gefuehrt. Wenn man also –

es muss auch durch einen

Aufruf geschehen – eine

Statusabfrage durchfuehrt,

hat man immer Konsistenz.

Durch eine Client – Server

Architektur ist es auch

moeglich, die Anwendung

auf einem anderen Rechner

auszufuehren als dem, auf dem

sich OpenGL befindet, z.B.

ueber ein lokales Netzwerk.

OpenGL ist

hardwareunabhaengig

und kann auch emulieren, jedoch

kann es auch vorhandene

Hardware nutzen, die neusten

Effekte durch Extensions.

Viele der Funktionen in OpenGL sind speziell dazu da, die obigen Primitives

zu zeichenen, einige legen fest, wie dieses geschieht, und dann gibt es noch

Funktionen zur Manipulation des Framebuffers.

OpenGL rendert in einen Framebuffer, der dann auf den Bildschirm gebracht

wird. Unter gibt es zwei Arten von Objekten:

1.   geometrische Objekte, sie bestehen aus Vertices und

2.   Bilder, welche aus Pixeln bestehen.

Die Primitives zaehlen zu den geometrischen Objekten.

Bei OpenGL hat man direkten Zugriff auf alle Basisoperationen, es ist also

eine Low – Level API. Das wiederum erschwert es, komplexere geometrische

Objekte darzustellen, da es hierfuer kaum Hilfe gibt (aber: GLUT).

Auch bei OpenGL gibt es einen immediate Mode, wie bei DirectX,

und eine sogenannte DisplayList. Diese speichert bestimmte Sequenzen

und die Objektbeschreibungen koennen dann aus ihr entnommen werden.

Dieses bringt einen Geschwindigkeitsvorteil bei statischen Szenen, aber einen

Nachteil bei nichtstatischen, da sie dann jedes Mal neu erstellt werden muss.