Il s'agit principalement d'une question de documentation. J'espère que c'est le bon endroit pour demander et non, par exemple, les programmeurs ou stackoverflow.
Je n'ai pas lu la spécification OpenGL, mais à partir de livres (Red Book) et de divers didacticiels, je ne peux pas comprendre correctement comment différents objets et parties de l'API interagissent et se relient.
Par exemple, je sais que si un VAO est lié, alors lier un VBO et définir un attribut entraînera le VBO étant lié au VAO.
Mais il existe de nombreux objets, leur relation peut varier. Par exemple, le VAO n'a aucun lien avec le programme d'ombrage actuel, mais le résultat des opérations de dessin peut dépendre des deux.
Parmi tous les différents composants OpenGL, je peux voir certaines relations comme A-binds-to-B ou A-and-B-are-used-by-C. Toutes ces relations concourent à déterminer comment on peut modifier l'état du contexte, comment changer les choses, comment les sauver ensemble et les optimiser.
Je recherche des ressources expliquant juste ces relations. Comme un diagramme UML, un graphique ou même un document texte, qui ne se concentre pas sur les appels, mais décrit de manière compacte comment les différents composants OpenGL interagissent et se relient les uns aux autres.
Savez-vous où trouver une telle ressource?
glVertexAttribPointer()
. Le diagramme des objets OpenGL serait assez superficiel et simple, il n'y a en fait pas plus d'une poignée d'objets différents dans OpenGL. Les VAO utilisent des tampons pour les attributs. Les textures de tampon sont soutenues par des tampons. Les tampons de cadre ont des attachements de texture. Les commandes de dessin utilisent le VAO actuel, le programme actuel, le tampon d'images actuel, les paramètres actuels de l'échantillonneur et le tampon d'index actuel / tampon indirect. Vous pourriez probablement dessiner le diagramme vous-même.
;)
(l'ensemble de l'API est un énorme gâchis de données globales)