G3_LightVector

# G3*_LightVector

## 構文

      #include <nitro/gx/g3imm.h>
      #include <nitro/gx/g3b.h>
      #include <nitro/gx/g3c.h>

      void G3_LightVector(GXLightId lightID, fx16 x, fx16 y, fx16 z);

      // 以下ディスプレイリスト（コマンド列）作成用API
      void G3B_LightVector(GXDLInfo* info, GXLightId lightID, fx16 x, fx16 y, fx16 z);
      void G3C_LightVector(GXDLInfo* info, GXLightId lightID, fx16 x, fx16 y, fx16 z);
      void G3BS_LightVector(GXDLInfo* info, GXLightId lightID, fx16 x, fx16 y, fx16 z);
      void G3CS_LightVector(GXDLInfo* info, GXLightId lightID, fx16 x, fx16 y, fx16 z);

## 引数

info | コマンドリスト情報
lightID | ライト番号(0〜3)
x | ライトの方向ベクトルのx成分
y | ライトの方向ベクトルのy成分
z | ライトの方向ベクトルのz成分

## 返り値

なし。

## 説明

ライトの方向ベクトルを設定します。lightID で4つのうちから1つライトを選び、x, y, zでライトベクトルを設定します。引数としては、-FX16_ONE以上、FX16_ONE-1以下を取ることができます。内部で符号+小数部9ビットの固定小数に変換されるので、-1.0(0xF000)以上0.998(0x0FF8)以下の値としてハードウェアに渡されます。ハードウェアによるベクトルの正規化は行われないため、単位ベクトルを設定してください。なお、`GXLightId`型については`G3*_LightColor()` を参照してください。
(注意) 設定直後に内部でカレント方向ベクトル行列による座標変換が行われます。つまり光線方向が変化した場合と、カメラの向きが変わった場合の両方についてこの関数を呼び出すことになります。

## 参照

G3*_LightColor

## 履歴

Ver. 2004/02/09

- 説明の追加。

Ver. 2004/01/19