Dies ist meist eine Dokumentationsfrage. Ich hoffe, dies ist der richtige Ort, um zu fragen, und nicht zum Beispiel Programmierer oder Stackoverflow.
Ich habe die OpenGL-Spezifikation nicht gelesen, kann aber aus Büchern (Red Book) und verschiedenen Tutorials nicht richtig nachvollziehen, wie verschiedene Objekte und Teile der API interagieren und sich beziehen.
Ich weiß zum Beispiel, dass, wenn eine VAO gebunden ist, das Binden eines VBO und das Setzen eines Attributs dazu führt, dass der VBO an die VAO gebunden wird.
Es gibt aber viele Objekte, deren Beziehung variieren kann. Beispielsweise hat der VAO keinerlei Beziehung zum aktuellen Schattierungsprogramm, aber das Ergebnis von Zeichenoperationen kann von beiden abhängig sein.
Unter all den verschiedenen OpenGL-Komponenten sehe ich einige Relationen wie A-Bindungen an B oder A-und-B-werden von C verwendet. All diese Beziehungen bestimmen gemeinsam, wie man den Zustand des Kontexts verändern kann, wie man Dinge verändern kann, wie man Dinge zusammen speichern und optimieren kann.
Ich suche nach Ressourcen, die nur diese Beziehungen erklären . Wie ein UML-Diagramm, ein Graph oder sogar ein Textdokument, das sich nicht auf die Aufrufe konzentriert, sondern auf kompakte Weise beschreibt, wie die verschiedenen OpenGL-Komponenten interagieren und sich aufeinander beziehen.
Wissen Sie, wo Sie eine solche Ressource finden?
glVertexAttribPointer()
. Das Diagramm für OpenGL-Objekte wäre recht flach und einfach, es gibt tatsächlich nicht mehr als eine Handvoll verschiedener Objekte in OpenGL. VAOs verwenden Puffer für Attribute. Puffertexturen werden durch Puffer gesichert. Framebuffer haben Texturanhänge. Zeichenbefehle verwenden den aktuellen VAO, das aktuelle Programm, den aktuellen Framebuffer, die aktuellen Sampler-Einstellungen und den aktuellen Indexpuffer / indirekten Puffer. Sie könnten das Diagramm wahrscheinlich selbst zeichnen.
;)
(die gesamte API ist ein einziges Durcheinander globaler Daten)