D3DLIGHT8
一連のライト プロパティを定義する。
Type D3DLIGHT8
ambient As D3DCOLORVALUE
diffuse As D3DCOLORVALUE
specular As D3DCOLORVALUE
type As CONST_D3DLIGHTTYPE
Attenuation0 As Single
Attenuation1 As Single
Attenuation2 As Single
Direction As D3DVECTOR
Falloff As Single
Phi As Single
position As D3DVECTOR
Range As Single
Theta As Single
End Type
メンバ
- ambient
- ライトが放射するアンビエント色。このメンバは、D3DCOLORVALUE 型である。
- diffuse
- ライトが放射するディフューズ色。このメンバは D3DCOLORVALUE 型である。
- specular
- ライトが放射するスペキュラ色。このメンバは D3DCOLORVALUE 型である。
- type
- 光源の種類。この値は、CONST_D3DLIGHTTYPE 列挙のメンバの 1 つである。
- Attenuation0、Attenuation1、および Attenuation2
- 光の輝度が距離によってどのように変化するかを指定する値。ディレクショナル ライトの場合、減衰値は無視される。これらのメンバは減衰定数を表す。減衰については、「距離の増加によるライトの減衰」を参照すること。これらのメンバの有効な値の範囲は、0.0 から無限大である。ディレクショナル ライト以外の場合、3 つの減衰値すべてを同時に 0.0 に設定してはならない。
- Direction
- ワールド空間で光が指す方向。D3DVECTOR 型で指定される。このメンバは、ディレクショナル ライトおよびスポット ライトの場合にのみ意味を持つ。このベクトルは正規化する必要はないが、ゼロでない長さを持たなければならない。
- Falloff
- スポット ライトの内部コーン (Thetaで指定される角度) と外部コーン (Phi で指定される角度) の外側エッジとの間で輝度がフォールオフする。
ライティングに対するフォールオフの影響は微妙である。さらに、フォールオフ カーブを描くと多少の性能上のロスを被る。これらの理由により、開発者の多くはこの値を 1.0 にセットする。
- Phi
- スポット ライトの外円錐の外側のエッジを定義する角度をラジアン単位で表す。この円錐の外側にある点はスポット ライトでライティングされない。この値は 0 から pi の範囲になければならない。
- position
- ワールド空間内での光源の位置座標。D3DVECTOR 型で指定される。このメンバは、ディレクショナル ライトにおいては意味がなく、無視される。
- Range
- 光源の有効距離。このメンバの最大許容値は FLT_MAX の平方根である。このメンバはディレクショナル ライトには影響しない。
- Theta
- スポット ライトの内円錐をラジアン単位で表す。つまり、スポット ライトが明瞭に照らす円錐である。この値は、0 から Phi による指定値の範囲になければならない。
参照
Direct3DDevice8.GetLight、Direct3DDevice8.SetLight