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結構,表示光在世界空間中的位置。 這個成員對方向燈沒有任何意義(也就是說,如果D3DLIGHT_DIRECTIONAL是在 Type 成員中設定),而且在該情況下會被忽略。 如需D3DVECTOR的詳細資訊,請參閱 Windows SDK 檔。
[in] Direction
D3DVECTOR結構,表示光線在世界空間中指向的方向。 這個成員只對方向燈和聚光燈有意義(也就是說,如果D3DLIGHT_DIRECTIONAL和D3DLIGHT_SPOT是在 Type中設定)。 此向量不需要正規化,但應該具有非零長度。
[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) |