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

スポットライトの内部円錐 ( Theta メンバーによって指定される角度) と外円錐の外縁 ( 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 オペレーティング システムで使用できます。
Header d3dumddi.h (D3dumddi.h を含む)

こちらもご覧ください

SetLight