D3DDDI_LIGHT構造体 (d3dumddi.h)
D3DDDI_LIGHT構造体は、一連の照明プロパティを記述します。
構文
typedef struct _D3DDDI_LIGHT {
[in] D3DLIGHTTYPE Type;
[in] D3DCOLORVALUE Diffuse;
[in] D3DCOLORVALUE Specular;
[in] D3DCOLORVALUE Ambient;
[in] D3DVECTOR Position;
[in] D3DVECTOR Direction;
[in] FLOAT Range;
[in] FLOAT Falloff;
[in] FLOAT Attenuation0;
[in] FLOAT Attenuation1;
[in] FLOAT Attenuation2;
[in] FLOAT Theta;
[in] FLOAT Phi;
} D3DDDI_LIGHT;
メンバーズ
[in] Type
光源の種類を示すD3DLIGHTTYPE型指定された値。 D3DLIGHTTYPEの詳細については、Microsoft Windows SDK のドキュメントを参照してください。
[in] Diffuse
光によって放出される拡散色を示すD3DCOLORVALUE構造体。 D3DCOLORVALUEの詳細については、Windows SDK のドキュメントを参照してください。
[in] Specular
光によって放出される反射色を示すD3DCOLORVALUE構造体。
[in] Ambient
光によって放出されるアンビエントカラーを示すD3DCOLORVALUE構造体。
[in] Position
ワールド空間における光の位置を示すD3DVECTOR構造体。 このメンバーは、方向ライト (つまり、Type メンバーでD3DLIGHT_DIRECTIONALが設定されている場合) には意味がなく、その場合は無視されます。 D3DVECTORの詳細については、Windows SDK のドキュメントを参照してください。
[in] Direction
ライトがワールド空間を指している方向を示すD3DVECTOR構造体。 このメンバーは、方向ライトとスポットライトのみを意味します (つまり、D3DLIGHT_DIRECTIONALとD3DLIGHT_SPOTが Typeで設定されている場合)。 このベクトルは正規化する必要はありませんが、0 以外の長さを持つ必要があります。
[in] Range
ライトが影響を与えない距離。 このメンバーの許容値の最大値はD3DLIGHT_RANGE_MAXであり、FLT_MAXの平方根として定義されます。 このメンバーは方向ライトには影響しません。
[in] Falloff
スポットライトの内部円錐(θ 部材で指定される角度)と外円錐の外縁(Phi 部材によって指定される角度)との間の照明の減少。 照明に対するフォールオフの影響は微妙です。 さらに、フォールオフ曲線を形成することで、パフォーマンスの低下が少なくなります。 これらの理由から、ほとんどの開発者はこのメンバーを 1.0 に設定します。
[in] Attenuation0
ライトの定数減衰係数。 減衰値は、距離に対して光の強度がどのように変化するかを指定します。 減衰は方向ライトには影響しません。 このメンバーの有効な値の範囲は 0.0 から無限大です。
[in] Attenuation1
ライトの線形減衰係数。 減衰値は、距離に対して光の強度がどのように変化するかを指定します。 減衰は方向ライトには影響しません。 このメンバーの有効な値の範囲は 0.0 から無限大です。
[in] Attenuation2
ライトの 2 次減衰係数。 減衰値は、距離に対して光の強度がどのように変化するかを指定します。 減衰は方向ライトには影響しません。 このメンバーの有効な値の範囲は 0.0 から無限大です。
[in] Theta
スポットライトの内側の円錐の角度 (ラジアン単位)、つまり、完全に照明されたスポットライト コーン。 この値は、0 から Phi メンバーで指定された値までの範囲である必要があります。
[in] Phi
スポットライトの外側の円錐の外縁を定義する角度 (ラジアン単位)。 この円錐の外側のポイントはスポットライトによって照らされません。 この値は 0 から Pi の間である必要があります。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
ヘッダー | d3dumddi.h (D3dumddi.h を含む) |