公開日: 11/25/2021

光源の作成

光源には、色・位置・方向を指定します。JSLでは、Lightコマンドで最大8つ(0~7)の光源を定義できます。nは光源の番号です。

Light( n, argument, value, ... value )

メモ: 各光源をオンにするには、Enable(Lighting)Enable(lightn) コマンドを使います。nは光源の番号です。次に、Light(n, POSITION, x, y, z)コマンドで、光源をシーン内に移動します。

表13.3に、指定できる引数(argument)の値を示します。各引数のデフォルト値も示しています。

表13.3 Lightの引数とデフォルト値

引数

デフォルト値

意味

AMBIENT

(0, 0, 0, 1)

環境光(周囲光)のRGBA 輝度

DIFFUSE

(1, 1, 1, 1)

拡散光のRGBA 輝度

SPECULAR

(1, 1, 1, 1)

鏡面光のRGBA 輝度

POSITION

(0, 0, 1, 0)

(x, y, z, w)の位置

SPOT_DIRECTION

(0, 0, -1)

スポットライトの(x, y, z)方向

SPOT_EXPONENT

0

スポットライト指数

SPOT_CUTOFF

180

スポットライトの遮断角度

CONSTANT_ATTENUATION

1

一定減衰率

LINEAR_ATTENUATION

0

線形減衰率

QUADRATIC_ATTENUATION

0

2次減衰率

メモ: この表のDIFFUSESPECULARのデフォルト値はLight 0だけに適用されます。その他の光源については、この2つの引数のデフォルト値は(0, 0, 0, 1)です。

最初の3つの引数(AMBIENTDIFFUSESPECULAR)は、光源に色を付ける場合に使います。DIFFUSE(拡散)は、光源の物理的な色を決める引数です。AMBIENT(環境)は、光がもつ背景光としての特徴に対応したパラメータです。SPECULAR(鏡面)は、表面に反射する光に関連したパラメータです。

POSITION引数を使って、光源の位置を指定します。4番目の座標(w)に0以外の値を指定すると、光源はオブジェクト座標と同じ座標に配置されます。

現実世界の光は、光源から離れるに従って暗くなります。ただし、指向性の光に関しては、光源は無限に遠くにあるので、光の輝度の減衰を距離の関数で表すのは意味がありません。JSLでは、光源の輝度に、次の減衰率を掛けて光を減衰させます。

Equation shown here

cCONSTANT_ATTENUATIONlLINEAR_ATTENUATIONqQUADRATIC_ATTENUATIONです。

スポットライトを作成するには、光源の形を円錐形にします。次に示すように、SPOT_CUTOFF引数を使って円錐形の側面を定義します。

図13.16 スポットライト 

Spotlight

遮断角のほかに、円錐形内の照射の輝度と方向も制御できます。SPOT_DIRECTIONは、スポットライトを向ける方向を指定し、SPOT_EXPONENTは、集光方法に影響します。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).