to home

Ninjaライブラリ

ライト構造体


NJS_LIGHT_CAL, *NJS_LIGHT_CAL_PTR構造体


[定義]
ライト内部の計算結果を格納する構造体
ユーザ・レベルでこの構造体を触ることを禁止します。
光源システム用作業領域となっている為、メンバの保証はありません
(いつもメンバの説明通りの内容になっているとは限りません。)
[記述]

typedef struct{
	Float		ratten;		/* ブロック・ライト用減衰率	*/
	Float		ipd;		/* ブロック・ライト用内積結果	*/
	Float		nrr,frr;	/* 距離限界値	*/
	Float		cosi,cose;	/* 角度限界値	*/
	Float		idev,odev;	/* 光線の距離計算用の係数設定	*/
	Float		rate;		/* 減衰率	*/
	Float		intns;		/* 輝度値	*/
	Int		exp;		/* 指数値	*/
	Int		reserve;        /* 予約		*/
	NJS_POINT3	lpnt;		/* 光源位置ベクトル	*/
	NJS_VECTOR	lvctr;		/* 光源方向ベクトル	*/
	NJS_VECTOR	lmvctr;		/* ブロック・ライト用ベクトル	*/
	NJS_ARGB	atten;		/* 光源計算用バッファ	*/
	NJS_ARGB	amb,dif,spc;	/* 光源計算用バッファ	*/
	NJS_ARGB	mamb,mdif,mspc;	/* 光源計算用バッファ	*/
} NJS_LIGHT_CAL, *NJS_LIGHT_CAL_PTR;

NJS_LIGHT_ATTR, *NJS_LIGHT_ATTR_PTR構造体


[定義]
光源の属性が格納されている構造体
ユーザ・レベルでこの構造体を設定することがありません。
[記述]

typedef struct {
	Int		lsrc;	/* 光源の種類	
				   0x01:NJD_AMBIENT
				   0x02:NJD_DIR_LIGHT
				   0x03:NJD_LAMBERT_DIR
				   0x04:NJD_POINT_LIGHT
				   0x05:NJD_LAMBERT_POINT
				   0x08:NJD_SPOT_LIGHT
				   0x10:NJD_SPEC_DIR
				   0x13:NJD_PHONG_DIR
				   0x20:NJD_SPEC_POINT
				   0x25:NJD_PHONG_POINT
				   0x40:NJD_USER_LIGHT
				   0x80:NJD_SIMPLE_LIGHT
				   0xC0:NJD_BLOCK_LIGHT
				*/
	Float		iamb;	/* 環境光の強度		*/
	Float		idif;	/* ディフューズ光の強度	*/
	Float		ispc;	/* スペキュラの強度	*/
	Float		nrang;	/* 光源の距離減衰のはじまる距離	*/
	Float		frang;	/* 光源の効果をカットする距離	*/
	void*		func;	/* ユーザ指定のライト	*/
	Angle		iang;	/* スペキュラ又はスポットライトが最大強度である角度*/
	Angle		oang;	/* スペキュラ又はスポットライトの効果がなくなる角度*/
	NJS_ARGB	argb;	/* 光源色	*/
} NJS_LIGHT_ATTR, *NJS_LIGHT_ATTR_PTR;

NJS_LIGHT, *NJS_LIGHT_PTR構造体


[定義]
光源1個分のデータを格納する構造体
[記述]

typedef struct {
	NJS_MATRIX	mtrx;	/* マトリクス	*/
	NJS_POINT3	pnt;	/* 光源の位置ベクトル	*/
	NJS_VECTOR	vctr;	/* 光源の方向ベクトル	*/
	Int		stat;	/* 光源の状態(ON・OFF)*/
	Int		reserve;	/* 予約	*/
	NJS_LIGHT_CAL	ltcal;	/* ライブラリの計算用作業領域
				   (通知なく変更する場合がありますので使用しないで下さい)
				*/
	NJS_LIGHT_ATTR	attr;	/* ライトの属性構造体	*/
} NJS_LIGHT, *NJS_LIGHT_PTR;


NJS_LIGHT_MATERIAL構造体


[定義]
ライト用マテリアル・データ構造体
(モデル・ルーチン内部で光源システムに受け渡すマテリアル・データモデル計算時の
中間頂点バッファ格納用構造体)
[記述]

typedef  struct {
	NJS_ARGB	ambient;	/* マテリアルのアンビエント色	*/
	NJS_ARGB	diffuse;	/* マテリアルのマテリアル色	*/
	NJS_ARGB	specular;	/* マテリアルのスペキュラ色	*/
	Float		exponent;	/* 指数値			*/
} NJS_LIGHT_MATERIAL;

Copyright SEGA ENTERPRISES, LTD., 1998