0

CMesh と呼ばれるクラスのオブジェクトに格納されている OpenGL を使用して、いくつかのメッシュをレンダリングしています。CMesh には、CVertex オブジェクトと三角形によって表される多くの頂点が含まれています。すべての CVertex には、その位置を持つ Vector が含まれています。
頂点の位置はレンダリング中に常に変更されるため、メッシュをレンダリングするたびに VBO データ配列を書き直す必要があります。これにより、プログラム全体が極端に遅くなりますが、他の大きなゲームに比べて頂点の数はそれほど多くありません。
これを行うより良い方法はありますか?

4

2 に答える 2

1

モーフ ターゲットまたは少なくとも複数のボーンを含むスキン メッシュを使用します。これは、すべての頂点を手動で更新するよりもはるかに優れています

于 2012-11-16T15:45:15.423 に答える
0

GL_STATIC_DRAW を使用していると仮定すると、代わりに GL_DYNAMIC_DRAW を使用するように変更できます。これにより、プログラムの速度がまったく低下しないはずです。あるいは、GPU 上のオブジェクトの新しい位置を計算することも検討する価値がある可能性があります。

于 2012-11-16T15:06:31.693 に答える