テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル


log

2010.02.19 C++:DirectXプログレッシブメッシュ

現在サウンドを読み込めるようにプログラムを追加中です。

それで、ふとプログレッシブメッシュってどうやるんだろうと思ったので
調べてみると、どうやらID3DXMESHを使っている場合、
SetNumFaces()とSetNumVertices()で描画する面数と頂点数を
設定できるみたいですね。リダクションについては、元の形に
近くなるようにDirectXAPIで自動的に削除する面・ポイントを
選択してくれるようで。すごくお手軽です。

けど、スキンメッシュは自作クラスで実装したのでID3DXMESHは
使ってないんです。。まあ、動かないオブジェクトを
標準関数で読み込んでLODさせることなら出来そうですが、
標準関数の読み込みは座標が自動補正されるから気が引けます。。

なんとか自前実装できないかなあ。
頂点ごとの近接リストを別に用意して、それを元にLOD処理させたら、
フレーム毎の近接判定は出来ないけど結構高速にできそうな気がします。
というかそれくらいしか高速にLOD処理をさせる方法が思いつかないので、
SetNumFaces()とSetNumVertices()もそのやり方をとっていそう。