GL3 - Vertex Arrays - VBOs

Kr0e

Gesperrter Benutzer
Hallo,

ich hätte da mal eine Frage bzg. Vertex Arrays und VBOs: (Bitte korrigieren wenn ich falsche Annahmen äußere...)

Ab GL3.x sind Vertex Arrays veraltet, oder ? Somit wären VBO die einzige Möglichkeit ab OGL3.x Vertexdaten an die Graka zu senden. So, bei glBindBuffer gibt es aber nun die Enums GL_ARRAY_BUFFER bzw. GL_ELEMENT_ARRAY_BUFFER.

Das hat nichts mit den "ursprünglichen" Vertex Arrays zu tun, oder ? Vermutlich nur eine typische OpenGL Namensproblematik, aber ich würde das gern geklärt haben, ob die irgendwas mit den typischen Vertex Arrays zu tun haben.

Und noch eine 2te Frage: Wozu ist GL_ELEMENT_ARRAY_BUFFER gut ? Ist das ein ähnlicher Zusammenhang wie bei den "unsprünglichen" Vertex Arrays ?

Gruß,
Chris
 

Marco13

Top Contributor
Vorbehaltlich Fancyger Korrekturen:

VBOs sind auf jeden Fall moderner und schneller als Vertex Arrays. GL_ARRAY_BUFFER und GL_ELEMENT_ARRAY_BUFFER haben nichts mit Vertex Arrays zu tun. Die beziehen sich nur darauf, ob das, was man an die Grafikkarte schickt, Vertex-Daten sind, oder Indizes für vertices.
 

Kr0e

Gesperrter Benutzer
Ok, super. hab mir sowas in der Richtung gedacht.

Noch eine Frage zu PBOs (Pixel Buffer Objects): Es sind im Prinzip auch einfach nur Buffers, die mit glGenBuffers(...) erstellt werden, allerdings als Target GL_PIXEL_PACK_BUFFER/GL_PIXEL_UNPACK_BUFFER bekommen, oder ?

Sprich sogesehen sind VBOs, PBOs eigentlich ähnlich zu benutzen/behandeln. Wie gesagt, falls ich hier richtig liege.

Ich meine übrigens nicht PBuffer, das Offscreen Rendering wird ja nun vom FBO abgenommen.

Ich hab merke grad mal wieder, wie sehr sich OGL verändert hat über die Zeit :D
 
G

Guest2

Gast
Moin,

die ganzen OpenGL Abkürzungen haben es schon in sich: VA, VBO, IBO, VAO und alle haben "irgendwie" was mit Vertexdaten zu tun. ;)

Alle hier erwähnten Punkte sind auch soweit richtig, allerdings gibt es da auch noch eine ganze menge Details. Als Leseempfehlung würde ich diese Links vorschlagen (genau in der Reihenfolge):

Vertex Buffer Object (Achtung, glVertexPointer, glNormalPointer usw. sind depricated!)
Vertex Specification Best Practices (Achtung, wieder dieselben depricated gl*Pointer)
Vertex Array Object (VAO != VA != VBO)
Vertex Specification (hier wird das korrekte glVertexAttribPointer verwendet)

(Für PBOs gibt’s da auch einen Link, der ist aber sehr flach: Pixel Buffer Object)

Viele Grüße,
Fancy
 

Kr0e

Gesperrter Benutzer
Hab zu den PBO in der OpenGL Super Bible 5 was ganz gutes gefunden, damit sind meine Fragen endgültig geklärt. =)
 

Ähnliche Java Themen

Neue Themen


Oben