3Dメッシュ最適化に関するライブラリ
ちょっと気になったので調べてみました。
Tri Stripper
http://users.pandora.be/tfautre/softdev/tristripper/
BSD風ライセンスで使いやすいほか、NVTriStripではクラッシュするようなメッシュにも適用可能で、変換にかかる時間が高速とか。
描画速度ではNVTriStripにやや劣る程度らしい。
NVIDIA NVTriStrip
http://developer.nvidia.com/object/nvtristrip_library.html
割合いろんなところで使われているようです。デファクト?
ただし古め。
ATI Tootle
http://www.ati.com/developer/tootle.html
2006年発表の新しいもの。
メッシュを複数ポリゴンで構成されたクラスタに分割し、それを順序づけることによってピクセル上書き描画を低減しつつ、さらにGPUの頂点キャッシュを意識したポリゴンリストの順序最適化を行うみたい。
最近はシェーダーが重くなってきていて、ピクセルの上書きによる無駄が大きいので、できるだけ上書きせずに済む方法が必要、ということなのでしょう。
視点を複数設定して最適化できるらしい。設定しなければ複数のばらけた視点が使われるとか。
多分、比較的見えやすい部分のクラスターは最初のほうに描画し、入り組んだ部分のクラスターは(最終的にZテストによってピクセルを描画しなくて済む可能性が大きいため)順序の最後のほうに移動される、というような感じだろうと想像。
そういえば、このスレ↓昔見たとき何言ってるのかイマイチよくわからなかったけど、こういうことだったんだなぁ・・・
★☆★描画順を極めろゴルァァァ!!★☆★
http://pc8.2ch.net/test/read.cgi/gamedev/1005866352/31-44
D3DXOptimizeFaces / D3DXOptimizeVertices
MSDN参照
Google Code Search参照
DirectX9に含まれるもの。インデックスだけを見て処理するようなので、頂点座標などは意識しないようです。
2006.10.17 | Comments(3) | Trackback(0) | ゲーム開発
