13

VBO を使用する最も高速で最も柔軟な (ほとんどの状況に適用可能な) 方法は何ですか?

私は openGL アプリケーションを開発していますが、最高のパフォーマンスを実現したいので、これらの質問に答えてくれる人が必要です。私は多くの質問と回答を読みましたが、必要のない情報が多すぎて頭が混乱していると思います...

  • いくつの vbo を使用する必要がありますか?
  • vbo はどのように作成すればよいですか?
  • データ サイズが固定されていない場合、どのように vbos データを更新すればよいですか?
  • vbo をレンダリングするにはどうすればよいですか?
  • もうレンダリングしたくない vbo 内のデータをどのように処理すればよいですか?
4

2 に答える 2

-2

vbo はいくつ使用すればよいですか?

必要なだけ、ばかげているように聞こえますが、まあ、その通りです

データ サイズが固定されていない場合、どのように vbos データを更新すればよいですか?

同じ VBO を異なるデータと長さで上書きしてレンダリングします。

vbo はどのように作成すればよいですか?

vbo をレンダリングするにはどうすればよいですか?

VBO チュートリアルを参照

もうレンダリングしたくない vbo 内のデータをどのように処理すればよいですか?

新しい vbo を作成し、そこにデータをコピーするか、メモリ内にある vbo の一部のみをレンダリングします。

部分のみをレンダリングするには、glVertexBuffer glTexCoordPointerを参照してください(オフセットに基づいて新しいポインターと新しいサイズを計算するだけです)。

編集1:

新しい頂点位置/テクスチャ座標の割り当てを自分で管理する必要があるため、すべてに単一の VBO を使用すると、非常に面倒になります。

小さなプロップを VBO にグループ化し、描画コマンドをバッチ処理することをお勧めします。

glBufferSubData (サイズ x のバッファーに 100 要素を追加) を使用してバッファーにデータを追加できますか?

いいえ、説明にはありません。updates a subset of a buffer object's data storeサブセットはセット内の小さなセットであるためです。

編集 2

優れたチュートリアルはLearning Modern 3D Graphics Programmingでもありますが、VBO 固有ではありません。

于 2013-04-10T10:46:52.067 に答える