Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Suchergebnisse

Suchergebnisse 1-6 von insgesamt 6.

Werbeanzeige

09.07.2014, 21:05

Forenbeitrag von: »Gnoccy«

glDrawElements Segfault

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 ...

09.07.2014, 19:28

Forenbeitrag von: »Gnoccy«

glDrawElements Segfault

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...

09.07.2014, 18:53

Forenbeitrag von: »Gnoccy«

glDrawElements Segfault

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...

09.07.2014, 18:36

Forenbeitrag von: »Gnoccy«

glDrawElements Segfault

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...

09.07.2014, 18:16

Forenbeitrag von: »Gnoccy«

glDrawElements Segfault

3 Vertecies pro Dreieck. numElements ist die ANzahl der Dreiecke.

09.07.2014, 18:10

Forenbeitrag von: »Gnoccy«

glDrawElements Segfault

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...

Werbeanzeige