2013年、あけましておめでとうございます。
今年はDirectX11世代(OpenGL含む)の勉強をしておかないとな、と思っています。
そんな2013年1つめのネタとして、メタセコイアのモデル形式mqoを読み込んで描画してみるということをやってみました。
mqoはファイルフォーマットが公開されていますし、単に形状を出すならそんなに難しいことはないと思います。
それでも苦労した点としては、以下の点です。
- 各頂点の法線データがなく、自前で計算しなくてはならない。
- 頂点カラーやUVが頂点に入っていても実際に描画に使うかどうかはまた別の判定が必要
- 曲面については諦めた。
- 公式ページのファイルフォーマットの説明に即してないファイルがある。テクスチャのパスとか平気で64バイト以上の文字列が入っている
そのほか、自分の勉強のために DirectX11で描画部分を作成してみました。
メタセコイアに含まれているモデルの”kame.mqo”を曲面フリーズして、描画させてみたところこんな感じです。
読み込めているかどうかの確認がしたかったので、ライティングは適当にLambertで描画しています。
元々のマテリアル設定はPhongでしたが・・・。
他にもキャラクター物とかもテストしてみましたが、うまく読み込めています。
ただ、曲面のフリーズが大変なので、Cutmul曲面には対応しておいた方がいいのかなと思いました。