glDrawElements関数の "index"パラメータの説明が少し異なる2つのOpenGLドキュメントページがあります。glDrawElementsのインデックス引数の意味は?
indices
Specifies a pointer to the location where the indices are stored.
そして、それは言うwww.khronos.org/opengles/sdk/docs/man3上:
indices
Specifies a byte offset (cast to a pointer type) into the buffer bound
to GL_ELEMENT_ARRAY_BUFFER to start reading indices from. If no buffer
is bound, specifies a pointer to the location where the indices are stored.
私はそれが言うwww.opengl.org/sdk/docs/man4/オンWindowsでは、OpenGL 4+を使用しています。
私が作成した要素バッファオブジェクトにインデックス配列をコピーしました。私が供給する必要があるインデックスポインタの引数は、最初のインデックスのバイト単位のオフセットですか?だから私がインデックス3で描画を開始したい場合、引数は2 * sizeof(GLuint)で、ポインタとしてキャストされますか?
私は実際にEBOを作成しようと努力しましたが、EBOがバインドされていないと、ポインタがEBOではなくインデックスがある場所をまっすぐに指していると言われています。これはシステムRAM上の配列を指すことを意味するのでしょうか? (編集:ポインタが0x00000008であれば、これは意味をなさないことに気付きました。システムメモリ内のそのアドレスに移動することはできません)。もしそうなら、インデックスアレイを毎回グラフィックスカードにコピーしますそれを使用できるようにするには?ありがとう。 OpenGLの4.5、コアプロファイル1として
インデックス:インデックス配列のベースアドレス。基本アドレスを入力するだけです。 3番目のパラメータは、各インデックスのサイズを指定します。これは通常GL_UNSIGNED_INTに設定されています – Asesh
@Aseshありがとう、私はそれを得ると思います。しかし、要素バッファオブジェクトがバインドされていない場合、インデックスポインタは、インデックス配列が格納されている場所を直接指しています。それで私はシステムRAMと思うのですが、それは理にかなっていません。常にGPU上の要素バッファオブジェクトからインデックスを取得しませんか?混乱している。 – Zebrafish