プロが教える店舗&オフィスのセキュリティ対策術

現在、DirectX10を利用して3Dゲームを制作しています。
3Dデータを読み込むためにXファイルを使用しています。
Xファイルの読み込みは自分でXファイルパーサーを作成しています。

そして、
Xファイルには法線ベクトルの情報が入っています。
これは面法線情報であると今まで思っていました。
(理由:法線情報数が面情報数と一致していたので)
しかし、最近になって、頂点法線情報が入っているXファイルの存在を知りました
(理由:法線情報数と面情報数が一致せず、頂点数と一致していたので)

そこで質問があります。
Xファイルに入っている法線情報が面法線なのか、頂点法線なのか
知る方法を教えてください。

よろしくお願い申し上げます。

A 回答 (2件)

> 1つのXファイルに1つのMESHの場合は、法線情報数が頂点数とも面数とも一致しないということはないですよね



例えば円盤をかんがえてみてください。

中心に1点頂点を置き、そこから放射状に20枚程度のポリゴンを敷き詰めて円盤を作ったとします。
完全な円盤であれば法線はどこを見ても一緒なはずなので、データとして1個だけ法線を持ち、
全ての面と法線がそれを参照する、といった形でデータを作ることもできます。

上記の場合、ファイル内の要素数は

点数→21
面数→20
法線数→1

となります。

法線数を点数、面数と一致するようにデータを作ることは可能です。
ですが、xファイルの仕様としてはそれは保障されていません。
    • good
    • 0
この回答へのお礼

再度のご回答ありがとうございました。
もう少し調べてみます。

お礼日時:2014/11/21 20:13

一番確実なのは、面倒だとは思いますがフォーマットの解説サイトがいくつかあるのでそれをチェックしたほうがよいかと思います。



たとえば、英語ですがここに法線データの構造の説明があります。
http://paulbourke.net/dataformats/directx/#xfile …

スムースシェーディング、フラットシェーディングという言葉をご存知無ければ
調べていただきたいのですが、Xファイルは両方に対応しています。

したがって、たとえばさいころのような形状の場合、法線は面に対応しますが、球のような形状の場合
法線は頂点に対応します。

そのような形状の場合、法線データが面、点と完全に一致している場合もあるのですが、
単純な話、1つのXファイル内にさいころと球が1個ずつ入っている場合、法線は頂点数とも面数とも
一致しなくなります。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
Xファイルフォーマットについていろいろサイトを調べてはいるのですが、
私の英語力の低さもあって、時間がかかってしまっています。
今は、面法線情報が入っているXファイルと頂点法線情報が入っているXファイルを比較してヘッダ情報の違いを調べているところですが、データ量が膨大なため、こちらも時間がかかりそうです。

それから、1つ質問があります。ご回答の中で
>1つのXファイル内にさいころと球が1個ずつ入っている場合、法線は頂点数とも面数とも
一致しなくなります。
とありますが、1つのXファイルに1つのMESHの場合は、法線情報数が頂点数とも面数とも一致しないということはないですよね。とりあえずは、1ファイル1MESHで考えています。

お礼日時:2014/11/21 09:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!