Jest to głównie pytanie dotyczące dokumentacji. Mam nadzieję, że jest to właściwe miejsce, aby zapytać, a nie na przykład programistów lub stackoverflow.
Nie przeczytałem specyfikacji OpenGL, ale z książek (Red Book) i różnych samouczków nie mogę właściwie zrozumieć, w jaki sposób różne obiekty i części interfejsu API oddziałują na siebie i odnoszą się do siebie.
Na przykład wiem, że jeśli VAO jest związane, wówczas powiązanie VBO i ustawienie atrybutu spowoduje, że VBO zostanie powiązane z VAO.
Ale istnieje wiele obiektów, ich relacje mogą się różnić. Na przykład VAO jest całkowicie niezwiązany z bieżącym programem cieniowania, ale wynik operacji rysowania może zależeć od obu z nich.
Wśród wszystkich różnych komponentów OpenGL widzę pewne relacje, takie jak A-binds-to-B lub A-and-B-are-by-by-by-C. Wszystkie te relacje są zbieżne w określaniu, jak można zmienić stan kontekstu, jak można zmieniać rzeczy, jak razem je zapisywać i optymalizować.
Szukam zasobów wyjaśniających tylko te relacje. Podobnie jak diagram UML, wykres, a nawet dokument tekstowy, który nie koncentruje się na wywołaniach, ale opisuje w zwięzły sposób, w jaki sposób różne komponenty OpenGL oddziałują na siebie i wiążą się ze sobą.
Czy wiesz, gdzie znaleźć taki zasób?
glVertexAttribPointer()
. Schemat dla obiektów OpenGL byłby dość płytki i prosty, w rzeczywistości nie ma więcej niż garść różnych obiektów w OpenGL. VAO używają buforów dla atrybutów. Tekstury buforów są wspierane przez bufory. Bufory ramki mają załączniki tekstur. Polecenia do rysowania używają bieżącego VAO, bieżącego programu, bieżącego bufora ramek, bieżących ustawień próbnika oraz bieżącego bufora indeksu / bufora pośredniego. Prawdopodobnie sam możesz narysować schemat.
;)
(cały API to jeden wielki bałagan danych globalnych)