トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

SURF

分類

[カテゴリ:モデリング][カテゴリ:ファイル形式]

定義

YSFS用の3Dモデルデータを保存するファイルフォーマット。拡張子は".srf"となる。内容は頂点とポリゴンを定義しているテキストデータであり、GepolyxGepolyといったモデラーの他、テキストエディタでも編集可能。

由来

ファイルヘッダが"SURF"または"Surf"であることから、こう呼ばれるようになったという説明が一般的。

構造

GepolyGepolyxで保存されるファイルには若干の差違が認められるが、両者の互換性は確保されており、一方で保存したデータを他方で問題なく開くことが出来る。なお、以下の説明はGepolyxが保存するファイルに基づいている。

ファイルヘッダ

SURF
SURFファイルの先頭行は必ずこの四文字になる。これ以外の場合、拡張子が".srf"であっても開くことは出来ない。

頂点定義セクション

ファイルヘッダに続いて頂点を定義する行が記述される。これは一行で一頂点を定義し、頂点数だけ繰り返される。

V X座標 Y座標 Z座標 丸め設定(R)
Vというヘッダに続いて頂点の座標がm単位で記述される。OpenGLにおいて頂点を滑らかに表示する場合は、座標に続いて"R"が記述される。

ポリゴン定義セクション

頂点定義セクションに続き、ポリゴンを定義する行が記述される。これはFで始まる行から、次のEで始まる行までに記述された内容が一つのポリゴン情報となる。この一連の行がポリゴン数だけ繰り返される。

F
ポリゴン定義の開始を宣言する。パラメタは存在しない。
C YS形式値またはR値 G値 B値
ポリゴンの色をYS色形式またはRGB色形式で記述する。必須。
B
そのポリゴンに自己発光が設定されている場合に記述される。設定されていない場合は存在しない。
N 重心X座標 重心Y座標 重心Z座標 法線ベクトルX成分 法線ベクトルY成分 法線ベクトルZ成分
ポリゴンの向きを記述する。二つのXYZ値からなっており、前者はポリゴンの重心を示し、後者は法線ベクトルを示す。法線ベクトルの大きさが0であるとき、そのポリゴンは両面ポリゴンである。
V 頂点番号 頂点番号 頂点番号...
ポリゴンに含まれる頂点を記述する。ここで使用する頂点番号は、頂点定義セクションにて定義された順に割り当てられる一意な整数である。なお、最初の頂点の番号は1ではなく0であることに注意。
E
ポリゴン定義の終了を宣言する。パラメタは存在しない。

ファイルフッタ

最後のポリゴン定義が終了した事を示す"E"とは別に、SURFの定義が終了したことを示す"E"を記述する。GepolyxGepoly、及びsurfviewoやsurfviewでは必須の行であり、これ以降のデータを読み込まない。しかしYSFS本体においては必須ではなく、この行の有無にかかわらずデータ終端まで読み込むので注意が必要である。

E
SURFデータの定義が終了した事を宣言する。

透明度設定セクション

OpenGLにおいて、ポリゴンを半透明表示する際の透明度を記述する。また、半透明であることが前提のポリゴンで、Non-OpenGL(Standard)にて完全に不透明になってしまうと問題が生じるポリゴンに対して、Non-OpenGL(Standard)で表示しないことも設定できる。これらの設定行は複数に分けて記述する事もできる。

ZA ポリゴン番号 透明度 ポリゴン番号 透明度...
半透明ポリゴンの透明度を、対象ポリゴン番号と0-255の整数で記述する。ポリゴン番号はポリゴン定義セクションにて定義された順に割り当てられる一意な整数である。なお、頂点番号同様最初は1ではなく0であることに注意。また、228以上の値を設定すると、そのポリゴンは完全に透明であると判断され、描画自体されなくなることにも留意しておく必要がある。
ZZ ポリゴン番号 ポリゴン番号...
Non-OpenGL非表示ポリゴンの番号を記述する。この指定がなされたポリゴンはNon-OpenGL(Standard)では表示されなくなる。この設定をするために、必ずしもZA行にて透明度が設定されている必要はない。

外部リンク

朝飯中隊駐機場 - Surfデータのフォーマットについて

最終更新時間:2006年05月02日 19時16分18秒