私は目的がOpenGLで(例えばGL_ARRAY_BUFFER
など)結合点のあるものを理解していません。私の理解では、glGenBuffers()
は、GPUメモリのどこかに位置する頂点バッファオブジェクトへのポインタの種類を作成します。だから、OpenGLでポイントをバインドする目的は?
:
glGenBuffers(1, &bufferID)
は、私は今、グラフィックスカードの1つの頂点オブジェクトに、ハンドル、bufferIDがあることを意味します。
glBufferData(GL_ARRAY_BUFFER, sizeof(data), data, GL_STATIC_DRAW)
しかし、なぜ:今、私は、次のステップは、私はポイントを結合するので、同じようglBufferData()
機能を使用してダウンデータを送信することを使用できるように、結合ポイント
glBindBuffer(GL_ARRAY_BUFFER, bufferID)
にbufferIDをバインドするだろう知っています代わりにデータを送信する場所を指定するのにbufferIDを使用できませんでしたか?その後
glBufferData(bufferID, sizeof(data), data, GL_STATIC_DRAW)
私もちょうど今までIDは、私はドロー機能が描きたい方VBOにする置く描画関数を呼び出す:ような何か。次のようなものがあります。
glDrawArrays(bufferID, GL_TRIANGLES, 0, 3)
glBindBuffers
で間接化する余分なステップが必要なのはなぜですか。
"*これは、バッファIDを1つの頂点オブジェクトに割り当てることを意味します。*" 1つのバッファオブジェクト*に。 「頂点オブジェクト」のようなものはありません。 –
"代わりにデータを送信する場所を指定するのにbufferIDを使用できないのはなぜですか?" ... ['ARB_direct_state_access'](https://www.opengl.org/wiki/Direct_State_Access)? – genpfault