ややプログラム紀行

博士2年のプログラムに関する日記

Xファイル

ドラマの方じゃなくて、DirectXのファイル形式の方です

最近グラフィック周りの話ばっかりですが、なぜかというと自分なりにゲームエンジンを作ってみようと思ったからです

で、バンプマップとかいろいろ調べて、昨日はスキンメッシュアニメーションのクラス化をしました

そこで引っかかったのがエフェクトについて

ID3DXEffectっていうのはなかなか扱いにくいと思います(昨日も同じことを言っていた気が・・・)

シェーダーによっては2回描画する必要のあるものとかが出てくるでしょうが、その「2回描画」っていうのはどう再現すればいいでしょうかね?

for文を使うことにはなると思いますが、じゃあ今度はどのタイミングでfor文を使うか・・・

どうすればいいんだろうね(´・ω・`)

そもそも考えてみると、

例えばバンプシェーダーとかって、「普通のテクスチャー(ディフューズ)」と「バンプマップ」の二つが必要になるけれど、DirectXでは、1つのマテリアル(D3DXMATERIAL構造体)につき1つのテクスチャーしか結びつけることができません\(^0^)/オワタ

そこで調べてみると、「FBXファイル」というものがありました

Mayaとかを作ってるAutoDesk社の標準形式だそうで、見てみたらUnityとかもfbxを標準形式にしてました

これはDirectXのマテリアルおよびxファイルとは違って、1つのマテリアルに複数のテクスチャーを結び付けられるらしい

これイケるやん!、って一瞬なりましたが、これを採用すると、今までDirectXがやってくれた読み込みからアニメーション計算までを全部自力でやる必要があります

いわゆるイッチョウイッタンってやつですね

xファイルだと、シンプルかつDirectXのサポートあり、fbxファイルだと高機能の代わりに、あらゆることを自前でやる必要がでてくる

そういやDirectX10の時点でxファイルはサポートされなくなったらしいですね

時代がxファイルを見捨てたんでしょうか

せっかくゲームエンジンを作っているわけですし、両方サポートっていうのが一番神ですね苦労は倍ですね(^q^)