標準ライトのタイプをスポットライトにする
ChangeLightTypeSpot 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)
標準ライトのタイプを位置、方向、角度範囲、距離減衰パラメータを持つスポットライトにします。 一番計算負荷が高く、 また頂点単位のライティングではポリゴンを細かく分割しておかないと思ったような結果が出ないなど扱いが難しいタイプのライトです。 引数の説明をします。 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 はライトの距離の二乗に比例して減衰する率となります。 率を除算する値ですので、 非常に小さな値でも物凄くライトの影響範囲が狭まります。 なので引数に渡す値はこの式を理解してから決定してください。 尚、引数 Position と Direction は float x, y, z の三つのメンバ変数を持っている構造体 VECTOR で、 この3要素を使用して3次元の座標や向きを指定します。 引数が構造体だと事前に引数に渡す構造体を宣言してメンバ変数に値を代入して・・・と準備が面倒ですが、 引数に x, y, z の値を渡すとそれを元にした VECTOR 構造体を戻り値で返してくれる関数 VGet を使用することで簡素に引数を渡すことができます。 戻り値: 0:成功
| SetLightDirection | 標準ライトの方向を設定する | (DxLibW) |
| SetLightDifColor | 標準ライトのディフューズカラーを設定する | (DxLibW) |
| SetLightSpcColor | 標準ライトのスペキュラカラーを設定する | (DxLibW) |
| SetLightAmbColor | 標準ライトのアンビエントカラーを設定する | (DxLibW) |
| SetLightEnable | 標準ライトの有効、無効をセットする | (DxLibW) |
| プラグイン / モジュール | DxLibW |
| バージョン | 3.24f |
| 作成日 | 2026/04/12 |
| 著作者 | DxLib: Takumi Yamada / HSP binding: IronHSP Project |
| URL | https://dxlib.xsrv.jp/ |
| 備考 | hspdxlib.as をインクルードして使用 |
| タイプ | DxLib ゲームライブラリ |
| グループ | DxLib 3Dライト |
| 対応環境 |
|
| hs ファイル | hsphelp\hspdxlib.hs |