共用方式為


聚光鏡面反射效果

使用聚光反射效果來創建一個影像,讓它看起來像是具有反光表面,其中光源被限制在一個導向的光錐內。 這個效果會使用α通道作為高度圖,並使用點光源照亮影像。

輸出位圖的色彩是由光的顏色、光的位置、圓錐的方向和表面幾何形狀決定的,這依據的是 Phong 光照模型中的鏡面反射部分。 具有鏡面反射光效的每個像素的 Alpha 通道輸出,為該像素紅色、綠色和藍色通道輸出的最大值。

這個效果的 CLSID 是CLSID_D2D1SpotSpecular。

範例影像

此範例展示局部鏡面光效的輸入和輸出影像。

效果範例螢幕快照。

反射光是指以特定方向反射的光線。

用於計算位圖鏡面反射光輸出的向量圖表。

效果計算最終輸出圖元值時,會使用這裡的方程式:

輸出圖元方程式。

哪裡

變數定義。

聚光光源

點光源在特定方向的圓錐中發出光線,而且不會在錐體外發出光線。

點光源會以與 點反射 效果相同的方式計算光向量 L 和半途向量 H。

效果會計算光色 Lr、Lg、Lb,以光源位置作為變數,正如此處方程式所示:

聚光燈光源方程式

向量 光向量符號。 是由下列方程式所定義:

方程式:向量

這些方程式會定義向量 t 向量符號

方程式:向量 2

效果屬性

顯示名稱和索引列舉 描述
光源位置
D2D1_SPOTSPECULAR_PROP_LIGHT_POSITION
點光源的光線位置。 屬性是 D2D1_VECTOR_3F,定義為 (x, y, z)。 單位為裝置無關的圖元(DIP),且不受限制。 此類型為D2D1_VECTOR_3F。
默認值為 {0.0f、0.0f、0.0f}。
PointsAt
D2D1_SPOTSPECULAR_PROP_POINTS_AT
聚光燈焦點所在之處。 屬性會作為 D2D1_VECTOR_3F(x,y,z)公開。 單位為 DIP,且值未繫結。 此類型為D2D1_VECTOR_3F。
默認值為 {0.0f、0.0f、0.0f}。
焦點
D2D1_SPOTSPECULAR_PROP_FOCUS
聚光燈的焦點。 這個屬性是無單位的,定義在 0 到 200 之間。 此類型為 FLOAT。
預設值為 1.0f。
限制圓錐角度
D2D1_聚光鏡面屬性限制錐角
限制投影光線區域的圓錐角度。 圓錐外不會投射任何光線。 限制圓錐角度是聚光燈軸(LightPositionPointsAt 屬性之間的軸線)與聚光燈錐之間的角度。 這個屬性是以度數定義,而且必須介於 0 到 90 度之間。 此類型為 FLOAT。
預設值為90.0f。
SpecularExponent
D2D1_SPOTSPECULAR_PROP_SPECULAR_EXPONENT
Phong 光照方程式中反光項的指數。 較大的值會對應至較反光的表面。 此值是無單位的,且必須介於 1.0 和 128 之間。 此類型為 FLOAT。
預設值為 1.0f。
SpecularConstant
D2D1_SPOTSPECULAR_PROP_SPECULAR_CONSTANT
鏡面反射與入射光的比例。 值為無單位,且必須介於 0 到 10,000 之間。 此類型為 FLOAT。
預設值為 1.0f。
SurfaceScale
D2D1_SPOTSPECULAR_PROP_SURFACE_SCALE
Z 方向的縮放因數,用於生成高度地圖。 值為無單位,且必須介於 0 到 10,000 之間。 此類型為 FLOAT。
預設值為 1.0f。
顏色
D2D1_SPOTSPECULAR_PROP_COLOR
傳入光線的色彩。 這個屬性會公開為向量 3(R、G、B),用來計算 LR、LG、LB。 此類型為D2D1_VECTOR_3F。
默認值為 {1.0f、1.0f、1.0f}。
核單位長度 (KernelUnitLength)
D2D1_SPOTSPECULAR_PROP_KERNEL_UNIT_LENGTH
Sobel 核心中元素的大小,用來在 X 和 Y 方向產生表面法線。 此屬性會對應至 Sobel 漸層中的 dx 和 dy 值。 此屬性是D2D1_VECTOR_2F(核心單位長度 X、核心單位長度 Y),且定義於 (DIPs/Kernel Unit)。 效果會使用雙線性插補來調整位圖以符合核心元素的大小。 此類型為D2D1_VECTOR_2F。
默認值為 {1.0f,1.0f}。
ScaleMode
D2D1_SPOTSPECULAR_PROP_SCALE_MODE
將影像縮放至對應核心單位長度的效果插補模式。 有六種模式,它們在品質和速度上各有差異。 如需詳細資訊,請參閱 音階模式
此類型為「D2D1_SPOTSPECULAR_SCALE_MODE」。
預設值為 D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR。

比例模式

列舉 描述
D2D1_SPOTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR (點光源高光縮放模式-最近鄰居) 取樣最接近的單一點,並使用該點。 此模式會使用較少的處理時間,但會輸出品質最低的影像。
D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR 使用四點樣本和線性插補。 此模式會輸出質量高於最接近鄰近的影像。
D2D1_SPOTSPECULAR_SCALE_MODE_CUBIC 使用16個樣本立方核心進行插補。 此模式會使用最多處理時間,但輸出品質較高的影像。
D2D1_SPOTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR 在單一像素內使用 4 個線性樣本,以取得良好的邊緣消除鋸齒功能。 此模式適合在像素較少的影像上進行小幅縮小。
D2D1_SPOTSPECULAR_SCALE_MODE_ANISOTROPIC 使用非等性篩選,根據點陣圖的轉換圖形取樣圖樣。
D2D1_SPOTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC 使用可變大小的高品質立方核心,在轉換矩陣中涉及縮小比例時,執行影像的預先調整。 然後使用三次方插值模式進行最終輸出。

備註

如果您未選取模式,效果預設為D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR。

要求

要求 價值
最低支援的用戶端 Windows 8 和適用於 Windows 7 的平臺更新 [桌面應用程式 | Windows 市集應用程式]
最低支援的伺服器 適用於 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |Windows 市集應用程式]
頁眉 d2d1effects.h
圖書館 d2d1.lib、dxguid.lib

ID2D1Effect