[ヘッダ] | 必須 |
|---|---|
[オブジェクト](1) | 必須 |
[頂 点] | 必須 |
[法 線] | 必須 |
[ポリゴン] | 必須 |
[モデル名] | 拡張 |
........ | |
[オブジェクト](2) | |
[頂 点] | |
[法 線] | |
[ポリゴン] | |
........ | |
[オブジェクト]... | |
............. |
typedef char CHAR;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef float FLOAT;
struct tag_IFF{
CHAR chunk[4]; //4文字のチャンク名
DWORD size; //データサイズ
};
[タグ] [データ] [タグ] [データ] ...... ......
内 容 : ファイル識別情報 チャンク : "SG3D" サイズ : 256 データ : タイプ 内容 DWORD バージョン(0x00011000) DWORD オブジェクト数 DWORD[62] 予約
内 容 : 階層情報 チャンク : "OBJT" サイズ : 96 データ : タイプ 内容 FLOAT[4][3] 3x4の変換マトリクス FLOAT[3] トランスレーション(XYZ) FLOAT[3] ローテーション(XYZ) FLOAT[3] スケーリング(XYZ) DWORD ID(0〜n) DWORD 子供のID DWORD 兄弟のID 備 考 : 角度の単位は(度) IDは子供・兄弟がない場合は-1(0xffffffff)
内 容 : 頂点座標 チャンク : "VerF" サイズ : 12x頂点数 データ : タイプ 内容 FLOAT[3] 頂点の座標(XYZ) 備 考 : 上記データを頂点数分セットする
内 容 : 頂点の法線ベクトル チャンク : "NorF" サイズ : 12x頂点数 データ : タイプ 内容 FLOAT[3] 頂点の法線ベクトル(XYZ) 備 考 : 上記データを頂点数分セットする 単位ベクトル
内 容 : ポリゴンの頂点番号 チャンク : "POLY" サイズ : 8xポリゴン数 データ : タイプ 内容 WORD[4] 4点ポリゴンを構成する頂点番号 備 考 : 上記データをポリゴン数分セットする 頂点番号は右回り
内 容 : オブジェクト(階層)名
チャンク : "MoNm"
サイズ : 文字列長
データ : タイプ 内容
CHAR[?] オブジェクト名の文字列
備 考 : 文字列は終了コード('¥0')を含めなければならない
内 容 : セガサターン用グーローテーブル
チャンク : "SSGr"
サイズ : 8xポリゴン数
データ : タイプ 内容
WORD[4] ポリゴン適用されたグーローデータ
備 考 : 上記データをポリゴン数分セットする
デフォルトは{0xc210,0xc210,0xc210,0xc210}
詳細別途
内 容 : セガサターン用面属性
チャンク : "SSAt"
サイズ : 12xポリゴン数
データ : タイプ 内容
WORD 表裏反転フラグ
0 Single_Plane
1 Dual_Plane
WORD Zソートフラグ
0 SORT_CEN (中心点)
1 SORT_MIN (最近点)
2 SORT_MAX (再遠点)
3 SORT_FAR (未使用)
4 SORT_NER (未使用)
WORD テクスチャ番号
WORD カラー(R:G:B=5:5:5)
DWORD 面属性の種類
BIT
0 texHflip
1 texVflip
2
3 sprTexture
4 sprPolygon
5 sprPolyLine
6
7 UserShade
8 MESHon
9 CL_Shadow
10 CL_Half
11 CL_Trans
12 CL_Gouraud
13 ECdis
14 SPdis
15 CL16Bnk
16 CL16Look
17 CL64Bnk
18 CL128Bnk
19 CL256Bnk
20 CL32KRGB
21 Window_In
22 Window_Out
23
24 UseLight
25 UseClip
26 UsePalette
27 UseNearClip
28 UseDepth
29
30
31
備 考 : 上記データをポリゴン数分セットする
デフォルトは{0,0,0,0xc210,0x01100010}
詳細別途
★Graphic Tools Guide
★フォーマット一覧