1

この質問は 2 つの (ほとんど) 独立した部分に分かれています

私の現在のセットアップでは、ゲーム空間に多くの がありObjectます。それぞれに割り当てられた VBO があり、各頂点の Vertex Attribute データを保持します。Object頂点データ (位置など) を変更する必要がある場合は、内部配列で変更し、呼び出しglBufferSubDataARBて GPU のバージョンを更新します。

これは恐ろしい ことだと理解したので、代替案を探しています。それ自体を示すものは、最初に大きな VBO を持ち、Objectそこからスペースを要求し、その中のポイントを編集できる管理用のものを用意することです。これにより、VBO のロードのオーバーヘッドが削減されますが、そのようなビースト (基本的にはメモリ管理システム全体) の作成とデバッグに多大なエネルギー/時間が費やされます。

私の質問 (パート (a)) は、これがこれを行うための「最良の」方法であるかどうか、または私が考えていなかったより良い方法があるかどうかです。

このようなシステムでは、頂点の追加/削除と編集をできるだけ迅速に行うことができます。

パート (b) は、すべてのオブジェクトに対して行われるいくつかの単純なアクション、つまり回転と平行移動に関するものです。現時点では、各頂点を移動しています (痛い) が、これにはより良いオプションが必要です。そこで行うために、回転行列と変換行列をシェーダーにアップロードすることを検討しています。uniformこれは問題ないように思えますが、変数を変更するオーバーヘッドが少し心配です。これを行うことは最終的に私の利益になりますか?uniform変数の変更速度は?

4

1 に答える 1