0

XNAで一連の正方形を描画しようとしています。TriangleStripsとDynamicVertexBuffersに関するこれらすべての記事を見ています。しかし、どこから始めればよいのかわかりません。

現在のステップ VertexPositionColor、TriangleList、およびインデックスを使用して1つの正方形を描画できます。次に、さまざまな色で一連の正方形を描きたいと思います。

最終目標 念頭に置いておくべきことは、最終的に私が描きたいと思うそのような正方形の数です。1920x1080の画面で5pxの幅を想定すると、平方数は(1920 * 1080)/ 25=82944と計算できます。

これを達成する方法についてのポインタは素晴らしいでしょう!

4

2 に答える 2

0

通常、最初の正方形を描くのと同じ方法で、より多くの正方形を描くことができます。ただし、パフォーマンスが大幅に低下します。

代わりに、すべての三角形を1つの頂点バッファー/インデックスバッファーに追加できます。すでに2つの三角形を三角形リストとして描くことができます。このルーチンを簡単に調整して、3つ以上の三角形を描くことができるはずです。対応する頂点とインデックスをバッファに追加し、描画呼び出しを変更するだけです。

同じ位置に異なる色の頂点が必要な場合は、2つの頂点をバッファに追加する必要があります。

このように、1回の描画呼び出しですべてを描画するため、パフォーマンスの低下はほとんどありません。ほとんどのグラフィックカードでは三角形の数に問題はありませんが、小さいものや古いものでは問題が発生する可能性があります。もしそうなら、あなたはあなたの描画戦略を変更することを検討する必要があります。たぶん、それほど多くの三角形を描く必要さえありません。しかし、結果として得られるパフォーマンスが低すぎる場合は、それについて考えることができます...

于 2012-06-04T18:43:41.983 に答える
0

3Dを気にしない場合は、2Dだけです。SpriteBatchを使用して、画面に正方形/長方形を描画できます。これにより、すべての頂点/インデックスバッファ管理のバッチ処理が処理されます。

于 2012-06-04T20:20:36.820 に答える