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

参照

表示: