Primitive: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K
K (sprachliche Fehler und Vertipper korrigiert)
 
Zeile 3: Zeile 3:
 
== Einleitung ==
 
== Einleitung ==
  
In OpenGL werden alle 3D- oder 2D-Objekte aus den von der API angebotenen Primitiven zusammengesetzt. Die GL stellt dazu insgesamt 10 verschiedene Primitiventypen zur Verfügung (darunter Punkt, Linie, Dreieck, Rechteck und [[Polygon]]e), von denen Dreiecke (oft auch als Abwandlung über Triangle-Strips oder -Fans) am häufigsten Verwendung finden. Dies ist u.a. damit zu erklären das sich fast alle Oberflächen recht genau mit Dreiecken beschreiben lassen (mit Vierecken wäre dies schon schwerer) und das moderne 3D-Beschleuniger (im Gegensatz zu den ersten Lösung, z.B. dem NV1 von NVidia, der Vierecke nutze) intern mit Dreiecken arbeiten. Dies hat auch zur Folge, das der Primitiventyp "Polygon" von der Grafikkarte erst in Dreiecke [[Tesselierung|tesseliert]] werden muss, weshalb dieser Primitiventyp recht selten genutzt wird.
+
In OpenGL werden alle 3D- oder 2D-Objekte aus den von der API angebotenen Primitiven zusammengesetzt. Die GL stellt dazu insgesamt 10 verschiedene Primitiventypen zur Verfügung (darunter Punkt, Linie, Dreieck, Rechteck und [[Polygon]]e), von denen Dreiecke (oft auch als Abwandlung über Triangle-Strips oder -Fans) am häufigsten Verwendung finden. Dies ist u.a. damit zu erklären, dass sich fast alle Oberflächen recht genau mit Dreiecken beschreiben lassen (mit Vierecken wäre dies schon schwerer) und dass moderne 3D-Beschleuniger (im Gegensatz zu den ersten Lösungen, z.B. dem NV1 von NVidia, der Vierecke nutze) intern mit Dreiecken arbeiten. Dies hat auch zur Folge, dass der Primitiventyp "Polygon" von der Grafikkarte erst in Dreiecke [[Tesselierung|tesseliert]] werden muss, weshalb dieser Primitiventyp recht selten genutzt wird.
 
Für den Programmierer bedeutet dies im Klartext, dass er beliebig komplexe Szenen mittels OpenGL visualisieren kann, mit der Einschränkung, dass er diese Szenen aus den vorhandenen Primitiven selbst erstellen muss.
 
Für den Programmierer bedeutet dies im Klartext, dass er beliebig komplexe Szenen mittels OpenGL visualisieren kann, mit der Einschränkung, dass er diese Szenen aus den vorhandenen Primitiven selbst erstellen muss.
  
Um das erstellen komplexer Szenen zu vereinfachen, kann man komplexere Grundkörper mit den gegeben Primitiven erstellen und in Bibliotheken zusammenfassen.  
+
Um das Erstellen komplexer Szenen zu vereinfachen, kann man komplexere Grundkörper mit den gegeben Primitiven erstellen und in Bibliotheken zusammenfassen.  
Eine solche Bibiothek wurde unter dem Namen [[OpenGL Programming Guide Auxiliary Library]] veröffentlich.
+
Eine solche Bibiothek wurde unter dem Namen [[OpenGL Programming Guide Auxiliary Library]] veröffentlicht.
  
 
== Beispiele ==
 
== Beispiele ==
 
{| width="100%"
 
{| width="100%"
|[[Bild:Primitive_geosphere.jpg|framed|Geosphäre, Zusammengesetzt aus Dreiecken (GL_TRIANGLES)]]  
+
|[[Bild:Primitive_geosphere.jpg|framed|Geosphäre, zusammengesetzt aus Dreiecken (GL_TRIANGLES)]]  
|[[Bild:Primitive_torus.jpg|framed|Torus, Zusammengesetzt aus Vierecken (GL_QUADS).]]  
+
|[[Bild:Primitive_torus.jpg|framed|Torus, zusammengesetzt aus Vierecken (GL_QUADS).]]  
|[[Bild:Primitive_complexscene.jpg|framed|Eine komplexe Szene, wie man sie im Normalfall in Spielen oder anderen 3D-Anwendungen findet. Zusammengesetzt aus Dreiecken (Aufbauten), Vierecken (Seitenteile) und Dreiecks-Streifen (GL_TRIANGLESTRIP, Dach).]]
+
|[[Bild:Primitive_complexscene.jpg|framed|Eine komplexe Szene, wie man sie im Normalfall in Spielen oder anderen 3D-Anwendungen findet. Zusammengesetzt aus Dreiecken (Aufbauten), Vierecken (Seitenteile) und Dreiecks-Streifen (GL_TRIANGLE_STRIP, Dach).]]
 
|-
 
|-
 
|}
 
|}

Aktuelle Version vom 4. Dezember 2013, 15:10 Uhr

Primitive (Plural: Primitiven)

Einleitung

In OpenGL werden alle 3D- oder 2D-Objekte aus den von der API angebotenen Primitiven zusammengesetzt. Die GL stellt dazu insgesamt 10 verschiedene Primitiventypen zur Verfügung (darunter Punkt, Linie, Dreieck, Rechteck und Polygone), von denen Dreiecke (oft auch als Abwandlung über Triangle-Strips oder -Fans) am häufigsten Verwendung finden. Dies ist u.a. damit zu erklären, dass sich fast alle Oberflächen recht genau mit Dreiecken beschreiben lassen (mit Vierecken wäre dies schon schwerer) und dass moderne 3D-Beschleuniger (im Gegensatz zu den ersten Lösungen, z.B. dem NV1 von NVidia, der Vierecke nutze) intern mit Dreiecken arbeiten. Dies hat auch zur Folge, dass der Primitiventyp "Polygon" von der Grafikkarte erst in Dreiecke tesseliert werden muss, weshalb dieser Primitiventyp recht selten genutzt wird. Für den Programmierer bedeutet dies im Klartext, dass er beliebig komplexe Szenen mittels OpenGL visualisieren kann, mit der Einschränkung, dass er diese Szenen aus den vorhandenen Primitiven selbst erstellen muss.

Um das Erstellen komplexer Szenen zu vereinfachen, kann man komplexere Grundkörper mit den gegeben Primitiven erstellen und in Bibliotheken zusammenfassen. Eine solche Bibiothek wurde unter dem Namen OpenGL Programming Guide Auxiliary Library veröffentlicht.

Beispiele

Geosphäre, zusammengesetzt aus Dreiecken (GL_TRIANGLES)
Torus, zusammengesetzt aus Vierecken (GL_QUADS).
Eine komplexe Szene, wie man sie im Normalfall in Spielen oder anderen 3D-Anwendungen findet. Zusammengesetzt aus Dreiecken (Aufbauten), Vierecken (Seitenteile) und Dreiecks-Streifen (GL_TRIANGLE_STRIP, Dach).

Siehe auch

glBegin