どこかのだれかへ

職業ゲームプログラマ。気になったニュースのピックアップや開発日記などを書いています。

FBXのインポートその1

f:id:TeaTwo:20160418232447p:plain

昨日、やっとFbxから位置情報とUV情報を取得する事が出来た(UVまだ使っていないけれど)。ツールを使って独自形式に変換後、それをゲームで読み込むという流れ。まだマテリアルを読み込んでないから真っ白。

 

もともとはちゃんとテクスチャ表示までやっていたけれど、その時僕はデータをとりあえず絵が出したくて、簡単なポリゴン単位でデータを出力して、頂点インデックスは使っていなかった。だけどやっぱりデータ量が大きかったのが気になっていたので、ウェイト仕込むついでに作り直している。

 

FBXは頂点数とUV数が異なる事があるのでそこの整合性をとるのが面倒だ。DX11で描画する場合、個別にインデックスは指定できないため、きっちりと頂点フォーマットに割り当てる必要がある。今回は以下の通りに実装した。

  1. 頂点を取り込む
  2. UVを頂点に紐付けていく
  3. 既に違うUVが頂点に紐付いていたら頂点を拡張
  4. 頂点インデックスは新規頂点を見るようにする

 面倒で日にちが経ってしまっていたが、絵が出たので一安心。次はマテリアルの読み込みをやっていく。前に作ったヤツは

を参考にしたため、Unityちゃん専用みたいな感じになっている(CgFX)。そこらへんはUnityちゃんのFBXをいじって汎用的な作り直していこうと思う。