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.
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.