Ansicht umschalten
Avatar von Dillinger

mehr als 1000 Beiträge seit 14.02.2002

Wie OpenGL funktioniert

Um z.b. ein 3D-Modell zu rendern,  werden zuerst  Zeiger auf die 
Polygon-Daten des Modells übergeben. Polygon-Daten sind die 
Eckpunkte (Vertices) der Polygone, die Normalen und die Textur-
koordinaten. Es können noch weitere Attribute vorhanden sein.

Für Vertices, Normalen und Texturkoordinaten sind drei Aufrufe
von glVertexAttribPointer nötig.

Das Modell wird dann durch einen Aufruf von glDrawArrays 
gerendert.

Man kann also durch vier OpenGL-Aufrufe komplexe Modelle mit 
500.000 Polygonen rendern. Wie groß der Overhead für die 
OpenGL-Aufrufe ist, ist hier weniger wichtig.

Anders sieht die Sache aus, wenn man sehr viele  kleine, ver-
schieden Modelle hat. Hier können viele Aufrufe von glDrawArrays 
nötig werden.

Das Verwalten der Polygondaten kann man optimieren, indem 
man Vertex Buffer Objects (VBO) einsetzt.

Üblicherweise arbeiten OpenGL-Programmierer so, dass sie 
versuchen, die Anzahl der API-Aufrufe gering zu halten 
und der Grafikkarte die Hauptarbeit zu überlassen. Daran 
werden auch neue Schnittstellen wie Metal nichts ändern.


Bewerten
- +
Ansicht umschalten