これは主にドキュメントに関する質問です。これが、プログラマやスタックオーバーフローなどではなく、尋ねるのに適切な場所であることを願っています。
私はOpenGL仕様を読みませんでしたが、書籍(Red Book)やさまざまなチュートリアルから、APIのさまざまなオブジェクトと部分がどのように相互作用し、関係するかを正しく把握できません。
たとえば、VAOがバインドされている場合、VBOをバインドして属性を設定すると、VBOがVAOにバインドされます。
しかし、多くのオブジェクトがあり、それらの関係は異なる場合があります。たとえば、VAOは現在のシェーディングプログラムとはまったく関係ありませんが、描画操作の結果は両方に依存する場合があります。
さまざまなOpenGLコンポーネントすべての中に、A-binds-to-BまたはA-and-B-are-used-by-Cのような関係があります。これらすべての関係は、コンテキストの状態を変更する方法、物事を変更する方法、物事を一緒に保存して最適化する方法を決定することに同意します。
これらの関係だけを説明するリソースを探しています。UMLダイアグラム、グラフ、さらにはテキストドキュメントのように、呼び出しに焦点を当てていませんが、さまざまなOpenGLコンポーネントが相互作用し、相互に関連付ける方法を簡潔に説明します。
そのようなリソースの場所を知っていますか?
glVertexAttribPointer()
ます。OpenGLオブジェクトの図はかなり浅くシンプルです。実際には、OpenGLにはほんの一握りの異なるオブジェクトしかありません。VAOは属性にバッファーを使用します。バッファテクスチャはバッファによって支えられています。フレームバッファにはテクスチャが添付されています。描画コマンドは、現在のVAO、現在のプログラム、現在のフレームバッファー、現在のサンプラー設定、および現在のインデックスバッファー/間接バッファーを使用します。おそらく自分で図を描くことができます。
;)
(API全体がグローバルデータの1つの巨大な混乱です)