njSetLightAngle
njCreateLightによって設定されたライトの限界角を設定します。

書 式

#include <NINJA.H> 
void njSetLightAngle( *ptr, iang, oang )
NJS_LIGHT *ptr
NJS_Angle iang
NJS_Angle oang

引 数

NJS_LIGHT *ptr
ライトのポインタ
iang
内側のコーン角(円錐角)の限界値
oang
外側のコーン角(円錐角)の限界値

返 値

なし

エラー

なし

機 能

njCreateLightによって設定されたスポットライト・スペキュラを持つライトの限界角(CHUNKモデルを除く)を設定します。

例えば、スポットライトが舞台に照らされているとします。
ライトは舞台上で円錐状に照らされていますが、光の円錐の外側ですぐに暗くなるのではなく徐々に減衰していきます。
この時の円錐のエッジの角度もしくは減衰の始まる角度がこの関数のパラメータiangとなります。

次に、この減衰の広がりは90度を超すことはありませんが、スポットライトが鋭くなればなるほど90度近くの計算は意味を持たなくなります。
この時の減衰の計算を省略(カットオフ)しはじめる角度、いいかえれば光のなくなる角度をパラメータoangで設定します。


用 例

#include <NINJA.H> 
...........

NJS_LIGHT light;

sbInitSystem( NJD_RESOLUTION_VGA, NJD_FRAMEBUFFER_MODE_RGB565, 1);
njCreateLight(&light, NJD_SPEC_POINT);
...........
/* スペキュラ付き点光源の内側限界角を30度、外側を60度に設定 */
njSetLightAngle(&light, NJM_RAD_ANG(NJD_PI/6.f), NJM_RAD_ANG(NJD_PI/3.f));

備 考

njCreateLight でライトが指定されている必要があります。

関 連

njCreateLight
njSetLightRange

njSetLightAngle

Copyright SEGA ENTERPRISES, LTD., 1998