Re: 3Dモデルの描画について ( No.1 ) |
- 名前:管理人 日時:2012/10/31 00:22
(時間が無いため簡易レスです、すみません)
ポリゴンの数が多いことも処理が重くなる原因になりますが、描画処理を何回も呼ぶことも
処理が重くなる原因になります
例えば10万ポリゴンを1回で描画する場合と、100ポリゴンずつ1000回に分けて
描画した場合では後者のほうが処理負荷は大きくなります
なので、DrawPolygonIndexed3D を使用して一度に1個の立方体を描画するのではなく、
200個分くらいの頂点配列を用意して200個を一度の DrawPolygonIndexed3D で
描画するようにしてみてください、恐らく1000個以上描画しても処理落ちは
発生しなくなると思います
|
Re: 3Dモデルの描画について ( No.2 ) |
- 名前:顔芸 日時:2012/10/31 01:01
ご回答ありがとうございますm(_ _)m
なるほど、呼び出し回数ですか!
立方体という形にとらわれすぎていました;;当然一度に描画できますね^^;
早速ためしてみたいと思います!
|
Re: 3Dモデルの描画について ( No.3 ) |
- 名前:顔芸(解決!) 日時:2012/11/01 01:50
その後試してみましたが一定の成果が得られました。
具体的には2500個程の立方体をほとんど処理落ちなく描画できました。
しかし、頂点インデックスの上限の関係で、一度に描画できる数はこれくらいが限界で、結局相当な数分割して呼び出さないと
目標数には到底及ばないといったところです;
見えない面を描画しないなどの工夫でもうちょっとなんとかなるかな〜と粘ってみます。
この度はありがとうございましたm(_ _)m
|
Re: 3Dモデルの描画について ( No.4 ) |
- 名前:管理人 日時:2012/11/04 00:45
もし描画する立方体が動かないのでしたら、頂点バッファとインデックスバッファを使用することで
格段に描画速度を向上させることができますので、もし立方体が動かないのでしたら頂点バッファと
インデックスバッファを使用して描画するようにしてみてください
( DXライブラリの頂点バッファとインデックスバッファ関係の関数についてはこちらのスレッドの No.6 で解説しています )
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=2638
何故「立方体が動かないのでしたら」の条件があるのかといいますと、
頂点バッファは描画を行うのが高速である代わりに
「頂点バッファの内容を書き換えるのが通常の頂点配列を書き換えるより遅い」
からです( 仮に高速になるように頑張っても同程度の速度 )
なので、もし立方体が常に動き回るような場合は、頂点バッファを使用すると
逆に遅くなってしまうかもしれませんのでご注意ください
|