Ninjaライブラリ - ライト関数

njSetLightAngle

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

書式

void njSetLightAngle( *ptr, iang, oang )
NJS_LIGHT *ptr
Angle iang
Angle oang

引数

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

戻値

なし

解説

njCreateLightによって設定されたスポットライト・スペキュラを持つライトの限界角(CHUNKモデルを除く)を設定します。 例えば、スポットライトが舞台に照らされているとします。 ライトは舞台上で円錐状に照らされていますが、光の円錐の外側ですぐに暗くなるのではなく徐々に減衰していきます。 この時の円錐のエッジの角度もしくは減衰の始まる角度がこの関数のパラメータiangとなります。 次に、この減衰の広がりは90度を超すことはありませんが、スポットライトが鋭くなればなるほど90度近くの計算は意味を持たなくなります。 この時の減衰の計算を省略(カットオフ)しはじめる角度、いいかえれば光のなくなる角度をパラメータoangで設定します。

用例

#include <Shinobi.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