English
SGL User's ManualPROGRAMMER'S TUTORIAL
戻る進む
PROGRAMMER'S TUTORIAL/1.セガサターン・3Dゲーム・ライブラリについて

1-2.ライブラリ使用上の注意

ライブラリで使用する数値

 SGLでは、浮動小数点数をサポートしていません。
そこで、固定小数点数を基本とした、次の3つの変数型を設けています。

実際は、マクロ定義という形で浮動小数点数から固定小数点数への変換をサポートしますので、各個人による個別の変換は不要となります(“表1-1: 数値型変換用マクロ例”参照)。

  1. 固定小数点数 ( 座標上のポジションや三角関数などの値に使用 )
     型名称:FIXED
     上位16ビットが整数部、下位16ビットが小数部の32ビット(符号付き)

    例)16.5を表す場合
    

    16.5 → 0x0010_8000        |      |        |      |        |                    小数部        整数部

  2. 角度(回転角など全ての角値表現に使用)
     型名称:ANGLE
     360度を16ビットで表現

    図1-4 ANGLEで表現された角度

  3. 行列(変換行列など全てのマトリクス変数に使用)
     型名称:MATRIX
     数値はFIXEDを使用した4行*3列の行列(メモリ上の配置は下図参照)

図1-5 行列のメモリ上の配置

 次表は、SGLでサポートする数値変換用マクロの一覧です。
SGLでは、この他にも、目的に応じた幾つかのマクロをサポートしています。
SGLがサポートするマクロは、ヘッダファイル“sgl.h”及び“sl_def.h”中で定義してあります(詳細は、リファレンスマニュアルの“構造体リファレンス”を参照してください)。

表1-1 数値型変換用マクロ例
変換型
   マクロ名   
    マ ク ロ 内 容    
    使 用 法    
FIXED toFIXED(p) ((FIXED)((p)*65536.0)) 数値のFIXED型への変換
ANGLE DEGtoANG(d) ((ANGLE)((d)*65536.0/360.0)) DEG型角値のANGLE型への変換
FIXED POStoFIXED(x,y,z) {toFIXED(x),toFIXED(y),toFIXED(z)}XYZ座標のFIXED型への変換
注)マクロは、インクルードファイル”sgl.h”および”sl_def.h”中で定義されています。

本書中のサンプルプログラムでも、断り無く当該マクロを使用することがあります。

座標系

 セガサターンでは、一般に右手座標系と呼ばる座標系を採用しています。
また、回転行列を用いたときの角度の正方向は、軸に対して右回転となります。

図1-6 セガサターンでの座標系
a)セガサターンの用いる座標系(右手系) b)Z軸に対する回転の正方向
・Z方向の正方向を画面奥に据えたとき、Yの正方向は下、Xの正方向は画面右に向かって伸びる
・回転の正方向は軸に対して右向き

戻る進む
SGL User's ManualPROGRAMMER'S TUTORIAL
Copyright SEGA ENTERPRISES, LTD., 1997