3

メッシュを半分にカットするか、少なくともリアルタイムで面を削除できるようにしようとしています。これを行うにはどうすればよいですか?

頂点バッファをロックし、選択した面または頂点を 0 に memset してもうまくいきません。これに関する解決策またはチュートリアルを誰かが持っています。私のプログラムでこの機能が本当に欲しいです!

乾杯

4

3 に答える 3

0

メッシュから三角形を動的に削除する必要がある場合、最善/最速の方法はインデックス付き三角形を使用することです。インデックス バッファーを作成するときは、「D3DUSAGE_DYNAMIC」フラグを使用します。三角形を削除する場合は、「D3DLOCK_DISCARD」フラグでロックします。インデックスの新しいリスト全体をバッファーに書き込み、削除する三角形を除外します。

インデックス バッファーは頂点バッファーよりもはるかに小さいため、インデックスのみを再アップロードしても、頂点バッファーほどシステムに負担をかけることはありません。しかし、インデックス付き三角形リストに変換することが大きな問題になる場合は、代わりに頂点バッファーを使用してこれらの処理を行うことがおそらく次善の策です。

于 2010-01-04T19:49:18.767 に答える
0

頂点を 0 に設定してもうまくいかないとおっしゃっています。どのように機能しないのですか?

三角形のすべての頂点の位置を (0.0, 0.0, 0.0) に設定すると、結果の三角形はサイズがゼロになり、描画されません。ゼロではなくオフスクリーンの位置に設定できることを確認してください。

于 2010-01-04T19:57:11.433 に答える