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

書 式

#include <NINJA.H> 
void njSetLightRange( *ptr, nrang, frang )
NJS_LIGHT *ptr
Float nrang
Float frang

引 数

NJS_LIGHT *ptr
ライトのポインタ
nrang
前方の限界距離
frang
後方の限界距離

返 値

なし

エラー

なし

機 能

njCreateLight によって設定されたスポットライト・距離計算を必要とするライトの限界距離を設定します。
点光源に近づくほど明るくなりますが、モニタで表現する明るさには限界があります。

そこでNINJAライトモデルでは、ある光源までの距離より短くなると光源計算中の最大輝度をとり続けます。 この限界値をここでは前方の限界距離として設定します。

また、光源から離れるにつれて光は徐々に減衰していきますが、すべての距離を計算するのはあまり重要な意味を持ちません。
この時の減衰の計算を省略(カットオフ)しはじめる距離、いいかえれば光のなくなる距離を、ここでは後方の限界距離として設定します。

デフォルト値で nrangは1.fが設定されていますが、nrang はモデル自身の大きさもしくはモデル間の距離を考慮に入れて設定する必要があります。

用 例

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

NJS_LIGHT light;

sbInitSystem( NJD_RESOLUTION_VGA, NJD_FRAMEBUFFER_MODE_RGB565, 1);
njCreateLight(&light, NJD_SPEC_POINT);
...........
/* スペキュラ付き点光源の前方の限界距離を20.f、後方を80.fに設定 */
njSetLightRange(&light, 20.f, 80.f);

備 考

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

関 連

njCreateLight
njSetLightAngle

njSetLightRange

Copyright SEGA ENTERPRISES, LTD., 1998