OpenGL Index-Pointer
-
Hallo zusammen,
ich hatte bisher immer angenommen, dass glIndexPointer() dazu genutzt wird, um einen Array mit Vertex-Indizes zu initialisieren. Nun wird in der Doku aber nur über Farb-Indizes gesprochen, was mich ein bisschen verwirrt.
Kann ein IBO also nicht genutzt werden, um Indizes in alle anderen Arrays zu definieren (sprich: Vertex-, Normal-, Texcoord- und Color-Arrays)?
Oder sichert man seine Vertices (Vektor, Normale, Farbe und Textur-Koordinate) eher generell alle einzeln hintereinander (in separaten Arrays), ohne wild mit Indizes zu hantieren?
-
-
Ah, das klingt doch sehr vernünftig, vielen Dank.
Das funktioniert dann sicher auch wie glDrawArrays() für Buffer-Objects und Client-seitige Arrays, nehme ich an.
So wie ich das verstehe, wird der Index-Array bei jedem Call an die GPU geschickt, oder? Wäre es dann nicht doch vorteilhafter, wenn man auf einige doppelte Vertices pfeift, dafür aber den Bus entlastet? Oder ist das zu vernachlässigen?
-
Du bindest ein VBO mit deinen Indices drin als GL_ELEMENT_ARRAY_BUFFER und übergibst bei glDrawElements() den Offset anstatt eines Index-Pointers
-
Herrje, das macht natürlich Sinn. Dank dir.