OGL: VBOs und Vertexidizierung
-
Hi!
Ich würde gerne mit VBOs(VertexBufferObjects) arbeiten, jedoch gibt es da noch Probleme...Es ist eine 3D Engine in Planung, wo ich Methoden für ein Meshs wie AddVertex und AddTriangle realisieren will. Hier liegt auch das Problem. AddTriangle soll mit Inidizes der Vertices aufgerufen werden. Dabei ist es ja möglich, das mehrere Triangles den selben Vertex benutzen.
Bei OpenGL müsste ich aber im VBO die gleichgenutzten Vertices mehrmals mit reinschreiben lassen. Halte ich pers. nicht für sehr effizient und speicherschonend. Deswegen wollte ich fragen, ob es neben glVertexPointer, glNormalPointer usw. auch eine glTriangleIndexPointer Funktion gibt, in der ich die Vertexindinzes rein schreiben kann.
Ich hoffe ihr versteht mich.
mfg olli
-
Ich weiß nicht ob ich dich richtig verstanden habe, und von VBOs habe ich auch (noch bzw. wieder) keine Ahnung (mehr).
Aber eventluell kennst duglDrawElements(GL_TRIANGLES, indices_count, GL_UNSIGNED_INT, indices);
noch nicht und es könnte helfen.
Dazu müssen aber für alle Vertexdaten die Indices gleich bleiben; gleiches Vertex bedeutet auch gleiche Normale, was bei Flat Shading also zum Beispiel Wänden dafür sorgt, dass du doch das gleiche Vertex mit verschiedenen Normalen mehrmals brauchst und andersrum für verschiedene Vertices wieder gleiche Normalen doch noch speichern musst.
-
Danke, das ist genau das, was ich gesucht habe! Die Indices lassen sich jedoch sicher nicht in eine Art IndexBufferObjekt unterbringen ?oder
mfg olli