0

描画にVBOを使用するアプリを作成しています。アプリは複数の色の線分を描画します。したがって、色ごとに頂点とインデックスの配列を作成し、セグメントを色ごとに適切な配列に並べ替えています。

ただし、ユーザーが任意の線分の色を設定できるようにしたいと思います。したがって、私の潜在的な色の数は事実上無制限です(明らかに実際にはそうではありませんが、そうなる可能性もあります)。1,000色をサポートするために1,000個の頂点配列とインデックス配列を保持するために2,000個のVBOを生成することは、良いことではないと思います。

明らかに、新しい色の頂点配列を描画するたびに、限られた数のVBOを生成し、新しいデータをコピーすることができますが、それは非常に非効率的です。

この状況に対処するための提案はありますか?

4

1 に答える 1

1

ええと、vboに何が正確に含まれているのか(位置?色?)、またはどのように描画するのか(固定機能?プログラム?)を言っていないことを考えると、助けるのは簡単ではありません。

とにかく、ここにあなたが覚えておきたいいくつかの事実があります:

  • 多くのvboを作成する必要はありません。VBO(IBOと同様)はストレージ用であり、任意の数のデータセットを保存できます。これは、さまざまな描画関数の「firstIndex/firstVertex」パラメータおよびその他のオフセットによって支援されます。gl*Pointer
  • 頂点ごとに色を指定する必要はありません。VBO内に保存する場合は、取り出して一定の色を使用します(その方法は、描画方法によって異なります。プログラムの場合は、属性ではなくユニフォームで色を指定します)

そこで、あなたが始めるのに十分であることを願っています。

于 2009-11-21T08:07:45.550 に答える