Suchergebnisse
Suchergebnisse 1-6 von insgesamt 6.
Wie gesagt, das Segfault Problem ist gelöst. Es lag an der Verwechslung vom VAO mit dem VBO. Allerdings läuft es immer nocht nicht wie es soll. Es wird nur das Element gezeichnet, dass ich zuerst erzeuge. So wird nur das Dreieck gezeichnet: C-/C++-Quelltext 1 2 3 4 5 Shape* tri = ShapeGenerator::createTriangle(positionLoc, colorLoc); Shape* arrow = ShapeGenerator::createArrow(positionLoc, colorLoc); shapes.push_back(arrow); shapes.push_back(tri); Und so nur der Pfeil: C-/C++-Quelltext 1 2 3 4 5 ...
Ich habe die Shape::draw() Methode jetzt mal wie folgt überarbeitet: C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 void Shape::draw(){ std::cout << "1" << std::endl; glBindVertexArray(VBOID); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBOID); std::cout << "2" << std::endl; glDrawElements(GL_TRIANGLES, 3 * numElements, GL_UNSIGNED_SHORT, NULL); std::cout << "3" << std::endl; glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); glBindVertexArray(0); GLenum err = glGetError(); if(err != GL...
Eigentlich schon. Ich lasse mich da natürlich gerne eines besseren belehren, aber so wie ich glBufferData verstehe wird der Inhalt des übergebenen Arrays kopiert und von OpenGL irgendwo in den Tiefen meiner Grafikkarte gespeichert. Außerdem gilt doch in C++ pass-by-value, also müsste sowieso eine Kopie angelegt werden. Zitat von »Spiele Programmierer« Die Sache mit dem "Count" hat mich auch schon häufig ziemlich verwirrt. Die Doku verwendet den Begriff "Elements" was wirklich sehr uneindeutig is...
Wenn ich da jetzt aber einfach das 3 * rausnehme, bekomme ich zwar keinen Segfault mehr, aber es wird auch nur noch das erste der 5 Dreiecke gezeichnet, aus denen der Pfeil besteht. Sicher das der Parameter die Anzahl der Elemente und nicht der Vetrecies angibt? Wären es Vertecies würde sich das genau mit meinem Ergebnis decken. 5 Vertecies -> 1 + 2/3 Dreiecke. 2/3 Dreiecke können nicht gezeichnet werden, also ein Dreieck. Und mal angenommen der Parameter würde doch die Anzahl der Dreiecke und n...
3 Vertecies pro Dreieck. numElements ist die ANzahl der Dreiecke.
Ich bin gerade dabei mich in OpenGL einzuarbeiten. Erste Versuche, wie das Zeichnen von Dreiecken, haben auch schon geklappt. Das war allerdings alles noch ziemlich statisch mit allem Code in einer Datei. Deshalb habe ich meinen Code überarbeitet um ihn "objektorientierter" zu machen. Meine Idee war es eine Klasse Shape zu schreiben, die zu einem Element auf dem Bildschirm (in meinem Beispiel ein 2D Pfeil) VBO, VAO und EBO verwaltet. Diese sollten zuerst erzeugt und der Klasse dann im Konstrukto...