現在、DirectX10を利用して3Dゲームを制作しています。
3Dデータを読み込むためにXファイルを使用しています。
Xファイルの読み込みは自分でXファイルパーサーを作成しています。
そして、
Xファイルには法線ベクトルの情報が入っています。
これは面法線情報であると今まで思っていました。
(理由:法線情報数が面情報数と一致していたので)
しかし、最近になって、頂点法線情報が入っているXファイルの存在を知りました
(理由:法線情報数と面情報数が一致せず、頂点数と一致していたので)
そこで質問があります。
Xファイルに入っている法線情報が面法線なのか、頂点法線なのか
知る方法を教えてください。
よろしくお願い申し上げます。
No.2ベストアンサー
- 回答日時:
> 1つのXファイルに1つのMESHの場合は、法線情報数が頂点数とも面数とも一致しないということはないですよね
例えば円盤をかんがえてみてください。
中心に1点頂点を置き、そこから放射状に20枚程度のポリゴンを敷き詰めて円盤を作ったとします。
完全な円盤であれば法線はどこを見ても一緒なはずなので、データとして1個だけ法線を持ち、
全ての面と法線がそれを参照する、といった形でデータを作ることもできます。
上記の場合、ファイル内の要素数は
点数→21
面数→20
法線数→1
となります。
法線数を点数、面数と一致するようにデータを作ることは可能です。
ですが、xファイルの仕様としてはそれは保障されていません。
No.1
- 回答日時:
一番確実なのは、面倒だとは思いますがフォーマットの解説サイトがいくつかあるのでそれをチェックしたほうがよいかと思います。
たとえば、英語ですがここに法線データの構造の説明があります。
http://paulbourke.net/dataformats/directx/#xfile …
スムースシェーディング、フラットシェーディングという言葉をご存知無ければ
調べていただきたいのですが、Xファイルは両方に対応しています。
したがって、たとえばさいころのような形状の場合、法線は面に対応しますが、球のような形状の場合
法線は頂点に対応します。
そのような形状の場合、法線データが面、点と完全に一致している場合もあるのですが、
単純な話、1つのXファイル内にさいころと球が1個ずつ入っている場合、法線は頂点数とも面数とも
一致しなくなります。
早速のご回答ありがとうございます。
Xファイルフォーマットについていろいろサイトを調べてはいるのですが、
私の英語力の低さもあって、時間がかかってしまっています。
今は、面法線情報が入っているXファイルと頂点法線情報が入っているXファイルを比較してヘッダ情報の違いを調べているところですが、データ量が膨大なため、こちらも時間がかかりそうです。
それから、1つ質問があります。ご回答の中で
>1つのXファイル内にさいころと球が1個ずつ入っている場合、法線は頂点数とも面数とも
一致しなくなります。
とありますが、1つのXファイルに1つのMESHの場合は、法線情報数が頂点数とも面数とも一致しないということはないですよね。とりあえずは、1ファイル1MESHで考えています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 電気工事士 来月から電気管理技術者のお仕事を始める者です。東京電力パワーグリッドへ情報提供の依頼をする方法がTE 1 2022/06/27 06:48
- PDF AutoCAD図面をPDF fileに変換した際、画像情報やブロック名はわかるのでしょうか。 1 2022/06/03 09:42
- 数学 数学の問題で法線ベクトルについて 5 2022/11/13 12:45
- 計算機科学 空系列を用いたもので、 2 2022/12/12 01:36
- 数学 曲線y= f(x)上の任意の点Pで引いた法線とx軸の交点をN、Pからx軸に下ろした垂線の足をHとする 3 2022/12/25 10:45
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- 数学 球面と接する直線の軌跡が表す領域 4 2023/07/30 12:37
- CAD・DTP JWW-CADでDXF変換後の線が連動して消える 2 2023/01/13 11:09
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- サーバー WIN10のファイル又はフォルダを社内LAN上HDDで共有する場合、特定の人だけが見えるようにしたい 3 2023/04/18 00:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
Accessで該当データにフラグを...
-
配列でデータが入っている要素...
-
ActiveReportについて
-
エクセルで2つの時系列のデー...
-
ユーザーフォームのテキストボ...
-
VBA 該当データがない時 ...
-
多量のSUMIF式を軽くしたい
-
Excelのマクロでワードのテキス...
-
子ダイアログのデータを親ダイ...
-
Fortran カンマを含む数値デー...
-
パースとはなんですか?
-
Excelで、標準偏差の関数
-
S9タイプからXタイプにデータ...
-
VBA 空白セルを削除ではない方...
-
CString型の文字列連結について
-
EXCEL VBA FREQUENCY関数での...
-
阿武町4630万円誤送金事件。町...
-
COBOL数値転記をCOPY句内での仕様
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
配列でデータが入っている要素...
-
【エクセル】測定時間がバラバ...
-
メモ帳(テキストデータ)をExc...
-
VBA 空白セルを削除ではない方...
-
多量のSUMIF式を軽くしたい
-
Excelのマクロでワードのテキス...
-
エクセルで2つの時系列のデー...
-
この行は既に別のテーブルに属...
-
VBAを使ってOutlookメール本文...
-
シーケンサにパソコンからアク...
-
EXCELVBAでSQLserverからデータ...
-
ブレーカー落ちで壊れたりしな...
-
[C言語] コメント文字列を無視...
-
オープンチヤットでデータ削除...
-
モジュラス103の算出方法について
-
javaでDBからデータを取ってき...
-
カンマからスラッシュに
-
VBA 毎日取得するデータを順番...
-
Android携帯をUSBメモリ代わりに
おすすめ情報