CreateSpotLightHandle

スポットタイプのライトハンドルを作成する

val = CreateSpotLightHandle(Position, Direction, OutAngle, InAngle, Range, Atten0, Atten1, Atten2)

VECTOR Position : ライトの位置
VECTOR Direction : ライトの向き
float OutAngle : スポットライトコーンの外側の角度( 単位:ラジアン )
float InAngle : スポットライトコーンの内側の角度( 単位:ラジアン )
float Range : ライトの有効距離
float Atten0 : 距離減衰パラメータ0
float Atten1 : 距離減衰パラメータ1
float Atten2 : 距離減衰パラメータ2

(プラグイン / モジュール : DxLibW)

解説

スポットタイプのライトハンドルを作成します。
( スポットライトは指定した位置から指定の方向に全方向に光を放つライトです )

この関数は戻り値にライトハンドル( int 型の数値 )を返してきます。

ライトハンドルの設定を変更したり、
不要になったライトハンドルを削除したりする際に必要になりますので戻り値は必ず何かしらの変数に保存しておくようにしてください。

引数の説明をします。

VECTER Position

スポットライトの位置です。

VECTOR Direction

スポットライトの向きです

float OutAngle

スポットライトの影響角度です。

スポットライトの向きに対してこの引数で指定する角度以上の頂点にはライトの影響はありません。

有効な値は 0.0f ~ DX_PI_F までです。

float InAngle

スポットライトの影響が減衰を始める角度です。

スポットライトが OutAngle の角度まで100%の影響を与えて、
そこから急に影響が無い状態になりますと不自然に見えるかもしれません。

そんなときはこの引数でスポットライトの影響が弱まり始める角度を指定します。

スポットライトの向きに対してこの引数で指定する角度以上で且つ OutAngle 以下の場合はライトの影響が100%ではなくなります。

有効な値は 0.0f ~ OutAngle までです。

float Range

スポットライトの影響最大距離です。

この引数で指定する距離以上の座標にある頂点は、
例え距離減衰計算の結果が0ではなくてもライトの影響は無くなります。

float Atten0

float Atten1

float Atten2

ライトの影響力の距離減衰パラメータです( Atten は Attenuation の略です )。

ディレクショナルライト以外のライトはライトの位置から離れれば離れるほどライトの影響が弱くなるようになっています。

その計算式は以下のようなものです。

d = ライトから頂点への距離
ライトの影響力(%) = 100.0f / ( Atten0 + Atten1 * d + Atten2 * d * d )

つまり、Atten0 はライトと頂点の距離に関係なく減衰する率を指定する引数、
Atten1 はライトの距離に比例して減衰する率、
Atten2 はライトの距離の二乗に比例して減衰する率となります。

率を除算する値ですので、
非常に小さな値でも物凄くライトの影響範囲が狭まります。
なので引数に渡す値はこの式を理解してから決定してください。

引数 Direction は float x, y, z の三つのメンバ変数を持っている構造体 VECTOR で、
この3要素を使用して3次元の向き指定します。

引数が構造体だと事前に引数に渡す構造体を宣言してメンバ変数にベクトル値を代入して・・・と準備が面倒ですが、
引数に x, y, z の値を渡すとそれを元にした VECTOR 構造体を戻り値で返してくれる関数 VGet を使用することで簡素に引数を渡すことができます。

尚、ライトハンドル系の関数は一つしかない標準ライト以外にライトを使用したい場合に使用します。
( とはいえ同時に有効にできるのは標準ライトを含めて3つまでですが・・・ )

戻り値:
  0以上:ライトハンドル

情報

プラグイン / モジュールDxLibW
バージョン3.24f
作成日2026/04/12
著作者DxLib: Takumi Yamada / HSP binding: IronHSP Project
URLhttps://dxlib.xsrv.jp/
備考hspdxlib.as をインクルードして使用
タイプDxLib ゲームライブラリ
グループDxLib 3Dライト
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\hspdxlib.hs