Ich habe kürzlich begonnen, einige alte Rendering-Demos, die ich gemacht habe, auf modernes OpenGL zu portieren. Ich hatte eine Debug-Zeichenklasse in meinem alten Code, die den Sofortmodus glBegin (), glEnd () usw. zum Rendern von Debug-Objekten wie Dreiecken, Würfeln und Kugeln usw. verwendete.
Ursprünglich habe ich den Code in diesen Funktionen durch Code ersetzt, um VAO und VBOs (für Position und Farbe) zu generieren, sie zu binden, die Scheitelpunktdaten zuzuweisen, zu rendern, dann die VBOs und VAO zu rendern, dann zu deaktivieren und zu löschen. Ist daran etwas falsch?
Ich habe darüber nachgedacht, die Klasse so zu ändern, dass sie jedes Mal, wenn sie einen primitiven Draw-Aufruf erhält, VAO und VBOs generiert und die Scheitelpunktdaten zuweist, das Rendering jedoch erst dann ausführt, wenn alle anderen Renderings abgeschlossen sind. Anschließend werden alle gespeicherten Debug-Prims gleichzeitig gerendert.
Ich bin mir nicht sicher, welche Vorteile dies bietet, und habe mich nur gefragt, was die Leute gedacht haben.