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。 此向量不需要进行规范化,但它应具有非零长度。

[in] Range

光没有效果的距离。 此成员的最大允许值是 D3DLIGHT_RANGE_MAX,它定义为FLT_MAX的平方根。 此成员不影响方向灯。

[in] Falloff

聚光灯内部锥体之间的照明降低 (由 Theta 成员) 指定的角度和外部锥体的外部边缘 (Phi 成员) 指定的角度。 下降对照明的影响是微妙的。 此外,调整跌落曲线会产生较小的性能损失。 出于这些原因,大多数开发人员将此成员设置为 1.0。

[in] Attenuation0

光的常量衰减因子。 衰减值指定光强度如何随着距离而变化。 衰减不会影响定向光。 此成员的有效值范围为 0.0 到无穷大。

[in] Attenuation1

光的线性衰减因子。 衰减值指定光强度如何随着距离而变化。 衰减不会影响定向光。 此成员的有效值范围为 0.0 到无穷大。

[in] Attenuation2

光的二次衰减因子。 衰减值指定光强度如何随着距离而变化。 衰减不会影响定向光。 此成员的有效值范围为 0.0 到无穷大。

[in] Theta

聚光灯内部锥体(即完全照亮的聚光锥体)的角度(以弧度为单位)。 此值必须介于 0 到 Phi 成员指定的值的范围内。

[in] Phi

角度,以弧度为单位,定义聚光灯外锥的外边缘。 此锥体外部的点不会被聚光灯点亮。 此值必须介于 0 和 Pi 之间。

要求

要求
最低受支持的客户端 在 Windows Vista 和更高版本的 Windows 操作系统中可用。
标头 d3dumddi.h (包括 D3dumddi.h)

另请参阅

SetLight