VBOs
← GL Indexed Face Sets | ● | OpenGL Lighting →
VBOs
VBOs sind im Framework in der lglVBO Klasse abstrahiert.
VBOs werden benutzt, um Geometrie effizient zu spezifizieren:
Man fügt Vertices und Attribute hinzu, wie man es im Direct Mode gewohnt war. Die Vertices und Attribute werden aber nicht direkt über den Bus zur GPU geschickt, sondern einem Buffer (Vertex Array) hinzugefügt.
lglVBO vbo;
...
// fill VBO once with vertex and attribute data
vbo.lglBegin(LGL_TRIANGLES);
vbo.lglColor(1, 0, 0, 0);
vbo.lglVertex(-0.5,-0.5,0);
vbo.lglColor(0, 1, 0, 0);
vbo.lglVertex(0.5,-0.5,0);
vbo.lglColor(0, 0, 1, 0);
vbo.lglVertex(0,0.5,0);
vbo.lglEnd();
Zum Zeichnen wird der Buffer am Stück als Speicherbereich zur GPU übertragen und dort gebuffert (gecached). Dies ermöglicht die Wiederverwendung ohne nochmalige Übertragung:
lglRender(vbo);
Alternativ: Laden eines VBOs aus einer OBJ Datei:
Live Demo: VBO (T#1c)
← GL Indexed Face Sets | ● | OpenGL Lighting →