Ich bin neu bei opengl und versuche gerade mich an einer fraktalen Szene (wie dem Sierpinski Dreieck http://en.wikipedia.org/wiki/Sierpinski_triangle). Grundlegend hat das schonmal geklappt wenn ich jedes der Dreiecke einzelnd erstelle und rendere. Jetzt möchte ich das Ganze auf VBOs umstellen und das funktioniert leider nicht richtig.
... und in der Renderloop will ich dann die Dreiecke zeichnen.
Code:
//VBO aktivieren
glBindVertexArray(m_vaoFrontTriangle);
glBindBuffer(GL_ARRAY_BUFFER, m_FrontTriangle);
// Zeiche einen Triangle
glDrawArrays(GL_TRIANGLES, 0,3 * m_Depth));
//Aufräumen
glBindVertexArray(0);
Tja... leider wird nur ein einziges Dreieck gezeichnet, egal wie groß ich den Buffer mache. Ich vermute ich überschreibe vielleicht irgenwelche Vertizes wieder im Vertexbuffer, aber ich kann irgendwie noch nicht so richtig erkennen woran es nun genau hapert.
Hat jemand n Tipp oder sieht was ich falsch mache?
Möchtest du VertexbufferObjects (VBO) oder VertexArrays benutzen? Letztere sind Teil von OpenGL 3.0. Du scheinst irgendwie beides zu benutzen. Du füllst den VBO und versuchst dann aber das VertexArray zu rendern. Absicht? (ich habe von VertexArrays leider keine Ahnung)
Code:
glGenBuffers(m_Depth, &m_FrontTriangle);
Damit erzeugst du m_Depth VBO's! Ich glaube nicht das dies die Idee war, du willst wahrscheinlich nur einen einzigen VBO.
Bei Tiefe 1 hast du drei Dreiecke, richtig? Das wären dann 9 Vertices...nicht nur drei. Das Array frontTriangle besteht ebenfalls nur aus drei Vertices...also einem Dreieck.
Ich sehe keinerlei rekursive Aufrufe in deinem Code.
Edit: Habe mich gerade mal informiert was VertexArrays (die OpenGL 3 Variante) machen. Die speichern alles was mit glVertexAttribPointer & Co zusammenhängt, richtig? In dem Fall sieht die Nutzung richtig aus. Sorry.
Ich poste mal meinen momentanen Code. Wie gesagt versuche ich es gerade erstmal mit dem Frontdreieck, aber später soll es eben zu einem Tetraeder werden:
Mitglieder in diesem Forum: Google [Bot] und 8 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.