D3DLIGHT9 構造体

D3DLIGHT9 構造体

一連のライト プロパティを定義する。

構文

typedef struct _D3DLIGHT9 {
    D3DLIGHTTYPE Type;
    D3DCOLORVALUE Diffuse;
    D3DCOLORVALUE Specular;
    D3DCOLORVALUE Ambient;
    D3DVECTOR Position;
    D3DVECTOR Direction;
    float Range;
    float Falloff;
    float Attenuation0;
    float Attenuation1;
    float Attenuation2;
    float Theta;
    float Phi;
} D3DLIGHT9;

メンバ

  • Type
    光源の種類。この値は D3DLIGHTTYPE 列挙型のメンバのいずれかである。

  • Diffuse
    ライトが放射するディフューズ色。このメンバは D3DCOLORVALUE 構造体である。

  • Specular
    ライトが放射するスペキュラ色。このメンバは D3DCOLORVALUE 構造体である。

  • Ambient
    ライトが放射するアンビエント色。このメンバは D3DCOLORVALUE 構造体である。

  • Position
    ワールド空間内での光源の位置。D3DVECTOR 構造体で指定される。このメンバは、ディレクショナル ライトにおいては意味がなく、無視される。

  • Direction
    ワールド空間で光が指す方向。 D3DVECTOR 構造体で指定される。このメンバは、ディレクショナル ライトおよびスポット ライトの場合にのみ意味を持つ。このベクトルは正規化する必要はないが、ゼロより大きな長さを持たなければならない。

  • Range
    光源の有効距離。このメンバの最大許容値は FLT_MAX の平方根である。このメンバはディレクショナル ライトには影響しない。

  • Falloff
    スポット ライトの内部コーン (Theta で指定される角度) と外部コーン (Phi で指定される角度) の外側エッジとの間で輝度がフォールオフする。

    ライティングに対するフォールオフの影響は微妙である。さらに、フォールオフ カーブを描くと多少の性能上のロスを被る。これらの理由により、開発者の多くはこの値を 1.0 に設定する。

  • Attenuation0
    ライトの強度が距離によってどのように変化するかを指定する値。ディレクショナル ライトの場合、減衰値は無視される。このメンバは減衰定数を表す。減衰の詳細については、「ライトの位置座標、範囲、減衰」を参照すること。このメンバに有効な値の範囲は、0.0 から無限大である。ディレクショナル ライト以外の場合、3 つの減衰値すべてを同時に 0.0 に設定してはならない。

  • Attenuation1
    ライトの強度が距離によってどのように変化するかを指定する値。ディレクショナル ライトの場合、減衰値は無視される。このメンバは減衰定数を表す。減衰の詳細については、「ライトの位置座標、範囲、減衰」を参照すること。このメンバに有効な値の範囲は、0.0 から無限大である。ディレクショナル ライト以外の場合、3 つの減衰値すべてを同時に 0.0 に設定してはならない。

  • Attenuation2
    ライトの強度が距離によってどのように変化するかを指定する値。ディレクショナル ライトの場合、減衰値は無視される。このメンバは減衰定数を表す。減衰の詳細については、「ライトの位置座標、範囲、減衰」を参照すること。このメンバに有効な値の範囲は、0.0 から無限大である。ディレクショナル ライト以外の場合、3 つの減衰値すべてを同時に 0.0 に設定してはならない。

  • Theta
    スポット ライトの内部コーン、つまり十分に光で照らされているスポット ライト コーンの角度をラジアン単位で表す。この値は、0 から Phi による指定値の範囲になければならない。

  • Phi
    スポット ライトの外コーンの外側のエッジを定義する角度をラジアン単位で表す。このコーンの外側にある点はスポット ライトでライティングされない。この値は 0 から pi の範囲になければならない。

構造体の情報

ヘッダー d3d9types.h
最低限のオペレーティング システム Windows 98

参照

IDirect3DDevice9::GetLightIDirect3DDevice9::SetLight