問題タブ [buffer-objects]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4993 参照

opengl - 単一の VBO で複数のターゲットを使用できますか?

サンプルコード:

そのため、一般的な VBO ハンドルを生成し、「GL_ARRAY_BUFFER」を使用してバインドします。バインディングには2つの目的があるようです:

  1. 経由で GPU にデータをコピーする前に、バッファをバインドする必要があります。glBufferData
  2. 属性を追加する前に、バッファをバインドする必要があります。glVertexAttribPointer

そして、VBOをバインドする必要があるのは2回だけだと思います。私の質問は、ターゲット (GL_ARRAY_BUFFER、GL_ELEMENT_ARRAY_BUFFER、GL_PIXEL_PACK_BUFFER、または GL_PIXEL_UNPACK_BUFFER) が 2 行目と 3 行目で異なるシナリオはありますか? それとも、4 行目の前に別のターゲットに再バインドしますか?

複数のバッファ ターゲットを 1 つの VBO にバインドできますか?

0 投票する
2 に答える
3622 参照

opengl - glDeleteBuffersを呼び出す前にVBOをアンバインドする必要がありますか?

バッファ オブジェクトを削除する前にバインドを解除する必要がありますか? VAO でバインドし、バインドを解除 (0 にバインド) せずに削除した場合、どうなりますか? 参照はまだ存在しますか?

削除する前にアンバインドするのは良い習慣ですか、それとも悪い習慣ですか?

0 投票する
2 に答える
2645 参照

opengl - Pixel Buffer オブジェクトを使用して GPU から非同期にデータを読み取る

アプリケーションと同期してデータを読み取りたい場合、gpu からデータを取得するのは非常に遅いタスクのようです。1 つの可能性は、Pixel Buffer オブジェクトを使用して非同期的に読み取ることです。残念ながら、これがどのように行われるかを見ることができません。

まず、ピクセル バッファー オブジェクトを作成します。

次に、フレーム バッファ オブジェクトからピクセルを読み取りたい:

しかし、これはどのように非同期なのでしょうか? gpu が「準備完了」になるまで、glReadPixels または glMapBufferRange はアプリケーションをブロックしていますか?

0 投票する
0 に答える
94 参照

opengl - OpenGL、スカイボックスを実行し、立方体の外側を背面カリングしたい、奇妙なことに気づきました

側面を外側にカリングする立方体を作成しようとしていましたが、インデックスを正常に完了したので、機能しました。しかし、私は奇妙なことに出くわしました。たとえば、ボットの指標を変更したいとき、//ボットの指標をプログラムで更新するまで更新しませんでした。サイズを変更してGLuint indicies[36]//ボットGLuint indicies[30]にコメントアウトし、プログラムを実行して.GLuint indicies[36]

EBO またはインデックスは、プログラムの実行間で GPU に保存されますか? クラスを破棄するときに、vao、vbo、ebo を削除しますか?

これが私の立方体の頂点と指標です:

返信ありがとうございます。