- ベストアンサー
Xファイルの法線情報について
- DirectX10を利用した3Dゲーム制作において、Xファイルから読み込む法線情報について疑問があります。
- Xファイルの読み込みには自作のXファイルパーサーを使用していますが、法線情報が面法線なのか頂点法線なのかを知る方法を教えてください。
- これまで法線情報数が面情報数と一致していたため、Xファイルの法線情報は面法線であると考えていましたが、最近になって頂点法線情報が入っているXファイルも存在することを知りました。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 1つのXファイルに1つのMESHの場合は、法線情報数が頂点数とも面数とも一致しないということはないですよね 例えば円盤をかんがえてみてください。 中心に1点頂点を置き、そこから放射状に20枚程度のポリゴンを敷き詰めて円盤を作ったとします。 完全な円盤であれば法線はどこを見ても一緒なはずなので、データとして1個だけ法線を持ち、 全ての面と法線がそれを参照する、といった形でデータを作ることもできます。 上記の場合、ファイル内の要素数は 点数→21 面数→20 法線数→1 となります。 法線数を点数、面数と一致するようにデータを作ることは可能です。 ですが、xファイルの仕様としてはそれは保障されていません。
その他の回答 (1)
- qwertfk
- ベストアンサー率67% (55/81)
一番確実なのは、面倒だとは思いますがフォーマットの解説サイトがいくつかあるのでそれをチェックしたほうがよいかと思います。 たとえば、英語ですがここに法線データの構造の説明があります。 http://paulbourke.net/dataformats/directx/#xfilefrm_Template_MeshNormals スムースシェーディング、フラットシェーディングという言葉をご存知無ければ 調べていただきたいのですが、Xファイルは両方に対応しています。 したがって、たとえばさいころのような形状の場合、法線は面に対応しますが、球のような形状の場合 法線は頂点に対応します。 そのような形状の場合、法線データが面、点と完全に一致している場合もあるのですが、 単純な話、1つのXファイル内にさいころと球が1個ずつ入っている場合、法線は頂点数とも面数とも 一致しなくなります。
お礼
早速のご回答ありがとうございます。 Xファイルフォーマットについていろいろサイトを調べてはいるのですが、 私の英語力の低さもあって、時間がかかってしまっています。 今は、面法線情報が入っているXファイルと頂点法線情報が入っているXファイルを比較してヘッダ情報の違いを調べているところですが、データ量が膨大なため、こちらも時間がかかりそうです。 それから、1つ質問があります。ご回答の中で >1つのXファイル内にさいころと球が1個ずつ入っている場合、法線は頂点数とも面数とも 一致しなくなります。 とありますが、1つのXファイルに1つのMESHの場合は、法線情報数が頂点数とも面数とも一致しないということはないですよね。とりあえずは、1ファイル1MESHで考えています。
お礼
再度のご回答ありがとうございました。 もう少し調べてみます。