本章ではセガサターンで扱うモデルデータ、マテリアル名の仕様、テクスチャデータの構造について解説します。
POINT point_label[]={
POStoFIXED(x,y,z),
POStoFIXED(x,y,z),
POStoFIXED(x,y,z),
POStoFIXED(x,y,z),
.............
};
POINT:ポイントデータ
x,y,z:フロート型の座標値
POLYGON polygon_label[]={
NORMAL(x,y,z),
VERTICES(0,1,2,3),
NORMAL(x,y,z),
VERTICES(0,1,2,3),
.............
};
NORMAL :法線ベクトル
x,y,z :フロート型の座標値
VERTICES :ポリゴンを形成する4点のポイントデータ
ATTR attribute_label=[]={
ATTRIBUTE(Plane,Sort,Texture,Color,Gouraud,Mode,Dir,Option),
....... .... ..... ... ... ..... ... .....
};
ATTR : 属性
Plane : 裏面判定ありかなしかの属性
Sort : Zソートの代表点
Texture : テクスチャ名(No.)
Color : カラーデータ
Gouraud : グーローシェーデングの属性
Mode : 描画モード
Dir : ポリゴンやテクスチャの状態
Option : オプション、その他の機能
| グループ | マ ク ロ | 内 容 |
|---|---|---|
| 【1】 | No_Window | Window内の制限を受けない (default) | Window_In | Windowの内側に表示する | Window_Out | Windowの外側に表示する |
| 【2】 | MESHoff | 通常表示 (default) | MESHon | メッシュで表示する |
| 【3】 | ECdis | EndCodeを無効にする | ECenb | EndCodeを有効にする (default) |
| 【4】 | SPdis | 透明ピクセルも表示する (default) | SPenb | 透明ピクセルは表示しない |
| 【5】 | CL16Bnk | 16色 カラーバンクモード (default) | CL16Look | 16色 ルックアップテーブルモード | CL64Bnk | 64色 カラーバンクモード | CL128Bnk | 128色 カラーバンクモード | CL256Bnk | 256色 カラーバンクモード | CL32KRGB | 32768色 RGBモード |
| 【6】 | CL_Replace | 上書き(標準)モード (default) | CL_Shadow | 影モード | CL_Half | 半輝度モード | CL_Trans | 半透明モード | CL_Gouraud | グーローシェーディングモード |
| マ ク ロ | 内 容 |
|---|---|
| sprNoflip | テクスチャを通常表示します |
| sprHflip | テクスチャを左右反転します |
| sprVflip | テクスチャを上下反転します |
| sprHVflip | テクスチャを上下左右反転します |
| sprPorygon | ポリゴンを表示します |
| sprPolyLine | ポリラインを表示します |
| sprLine | 初めの2点を利用した直線を表示します |
| マ ク ロ | 内 容 |
|---|---|
| UseLight | 光源計算を行う |
| UseClip | 頂点が画面外に出たら表示しない |
| UsePalette | ポリゴンのカラーがパレット形式であることを示す |
PDATA pdata_label[]={
point_label,n1,
polygon_label,n2,
attribute_label
};
pdata_label :SGLに渡すPDATA型のアドレスを示します。
point_label :POINT型のアドレスを示します。
nl :ポイント数を示します。
polygon_label :POLYGON型のアドレスを示します。
n2 :ポリゴン数を示します。
attribute_label:ATTR型のアドレスを示します。
OBJECT object_label[]={
pdata_label,
TRANSLATION(x,y,z),
ROTATION(x,y,z),
SCALING(x,y,z),
object_child,
object_sibling,
pdata_label :PDATA型のアドレスを示します。
TRANSLATION :移動量を示します。
ROTATION :回転量を示します。
SCALING :拡大量を示します。
object_child :子供のOBJECT型のアドレスを示します。
object_sibling :兄弟のOBJECT型のアドレスを示します。
となります。
TEXDAT sample[]={
rgb,rgb,rgb,rgb,rgb,rgb,rgb,rgb
rgb,rgb,rgb,rgb,rgb,rgb,rgb,rgb
.............................
};
TEXTB :テクスチャのテーブル
sample :テクスチャデータのあるラベルを示します(ファイル名そのまま)
hsize,vsize :テクスチャのサイズです(hsizeは常に8の倍数)
bgr :テクスチャデータの1ピクセル
| B | G | R | |||||||||||||
| 1 | 4 | 3 | 2 | 1 | 0 | 4 | 3 | 2 | 1 | 0 | 4 | 3 | 2 | 1 | 0 |
図4-1 チェッカー模様のテクスチャ
TEXDAT sample[]={
0xffff,0x8000,0xffff,0x8000,0xffff,0x8000,0xffff,0x8000,
0x8000,0xffff,0x8000,0xffff,0x8000,0xffff,0x8000,0xffff
};
★SGL User's Manual
★データの受け渡し