Ninja Library - ライト関数

njSetLight

ライトの設定

書式

void njSetLight( light_num, light )
Int light_num
NJS_LIGHT *light

引数

light_num   ライト番号
light   ライト構造体へのポインタ

戻り値

なし

解説

ライト構造体の設定にしたがって、ライトを設定します。

ライト構造体のfuncがEasyMulti、SimleMulti関数の場合は、ライト番号(light_num)を指定します。 設定する値は、EasyMulti、SimpleMulti関数のライト番号と同じです。 Easy、Simple関数のときこの値は参照されません。

この関数では、LightSwitch関数、LightMatrices関数は実行していません。 ライトを反映させるために各自実行してください。


用例

#include <Ninja.h>
NJS_LIGHT      light[2];

void UserInit(void)
{
	/* Set point light */
	light[0].x = 1.f;
	light[0].y = 0.f;
	light[0].z = 0.f;
	light[0].r = 0.8f;
	light[0].g = 0.f;
	light[0].b = 0.f;
	light[0].f1 = 5.f;
	light[0].f2 = 10.f;
	light[0].func = NJD_MFUNC_EASY_MULTI;
	light[0].type = NJD_LTYPE_POINT;

	/* Set ambient light */
	light[1].r = 0.2f;
	light[1].g = 0.2f;
	light[1].b = 0.2f;
	light[1].func = NJD_MFUNC_EASY_MULTI;
	light[1].type = NJD_LTYPE_AMBIENT;

	njCnkSetEasyMultiLight(NJD_CNK_EASY_MULTILIGHT_1);
	njCnkSetEasyMultiLight(NJD_CNK_EASY_MULTILIGHT_2);
	njSetLight( NJD_CNK_EASY_MULTILIGHT_1, light[0] );
	njSetLight( NJD_CNK_EASY_MULTILIGHT_2, light[1] );
 	njCnkSetEasyMultiLightSwitch(NJD_CNK_EASY_MULTILIGHT_ALL, 1);

}

void DrawFunc( Float frame )
{

	njPushMatrixEx();
	njCnkSetEasyMultiLightMatrices();
    njTranslate( NULL, EneX, EneY, EneZ );
	njCnkEasyMultiDraw( &ENEMY1_MODEL);
    
    njPopMatrixEx();
}

njSetLight
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000