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 |
参照