共用方式為


遠距鏡面光照效果

使用遠距反射光源效果來創造一個影像,該影像看起來像是反射表面,其中光源似乎來自很遠的距離(例如太陽或頭頂燈)。 這個效果會使用Alpha通道作為高度地圖,並用來自遠方的光源照亮影像。

輸出位圖的色彩是淺色、淺色位置和表面幾何的結果。 每個具有鏡面反射照明的像素的 Alpha 色板輸出是該像素紅色、綠色和藍色色板輸出的最大值。

這個效果的 CLSID 是CLSID_D2D1DistantSpecular。

範例影像

這裡的範例顯示遠景光源效果的輸入和輸出影像。

效果範例螢幕快照,其中顯示遠距反射光源效果的輸入和輸出影像。

您可以使用下列方程式來計算最終輸出點陣圖。

輸出點陣圖計算

哪裡

k? = 反射光源常數。
表面一般符號。 = 表面一般單位向量。
中途向量符號。 = 眼睛單位向量與光單位向量之間的中途單位向量。
Cr、Cg、Cb = RGB 元件中的淺色。

遠距光源

此處的影像顯示遠距光源光線方向的範例。

遠的光源

效果會使用 azimuth 和高度參數來計算光線向量 l 向量。使用下列方程式

光向量計算

其中 Light?、Lighty和 Lightz 是輸入光源位置值。

效果屬性

顯示名稱和索引列舉 描述
方位角
D2D1_DISTANTSPECULAR_PROP_AZIMUTH
XY 平面中光源的方向角度,相對於逆時針方向的 X 軸。 單位以度為單位,且必須介於 0 到 360 度之間。
此類型為 FLOAT。
預設值為 0.0f。
海拔
D2D1_DISTANTSPECULAR_PROP_ELEVATION
相對於逆時針方向的 Y 軸,YZ 平面中光源的方向角度。 單位以度為單位,且必須介於 0 到 360 度之間。
此類型為 FLOAT。
預設值為 0.0f。
SpecularExponent (鏡面反射指數)
D2D1_DISTANTSPECULAR_PROP_SPECULAR_EXPONENT
Phong 照明方程式中鏡面反射項的指數。 較大的值會對應至較反光的表面。 此值是無單位的,且必須介於 1.0 和 128 之間。 此類型為 FLOAT。
預設值為 1.0f。
SpecularConstant
D2D1_遠距鏡面_PROP_鏡面常數
鏡面反射與傳入光線的比例。 值為無單位,且必須介於 0 到 10,000 之間。 此類型為 FLOAT。
預設值為 1.0f。
SurfaceScale
D2D1_DISTANTSPECULAR_PROP_SURFACE_SCALE
Z 方向的縮放比例。 值為無單位,且必須介於 0 到 10,000 之間。 此類型為 FLOAT。
預設值為 1.0f。
顏色
D2D1_DISTANTSPECULAR_PROP_COLOR
傳入光線的色彩。 這個屬性會公開為 D2D1_VECTOR_3F (R、G、B),用來計算 LR、LG、LB。 此類型為D2D1_VECTOR_3F。
默認值為 {1.0f、1.0f、1.0f}。
KernelUnitLength
D2D1_DISTANTSPECULAR_PROP_KERNEL_UNIT_LENGTH
Sobel 核心中元素的大小,用於生成表面法線在 X 和 Y 方向。 此屬性是D2D1_VECTOR_2F(核心單位長度 X、核心單位長度 Y),且定義於 (裝置無關的圖元 (DIP)/核心單位)。 效果會使用雙線性插補來調整位元圖,使其符合核心元件的大小。 此類型為D2D1_VECTOR_2F。
默認值為 {1.0f,1.0f}。
縮放模式
D2D1_DISTANTSPECULAR_PROP_SCALE_MODE
效果用來將影像調整為對應核心單位長度的插補模式。 有六種模式,其品質和速度各不相同。
此類型屬於 D2D1_DISTANTSPECULAR_SCALE_MODE。
預設值為 D2D1_DISTANTSPECULAR_SCALE_MODE_LINEAR。

調整模式

列舉 描述
D2D1_DISTANTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR 取樣最接近的單一點,並使用該點。 此模式會使用較少的處理時間,但會輸出品質最低的影像。
D2D1_DISTANTSPECULAR_SCALE_MODE_LINEAR 使用四點樣本和線性插補。 此模式會輸出質量高於最接近鄰近的影像。
D2D1_DISTANTSPECULAR_SCALE_MODE_CUBIC 使用16個樣本立方核心進行插補。 此模式會使用最多處理時間,但輸出品質較高的影像。
D2D1_DISTANTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR 在單一像素內使用 4 個線性樣本,以取得良好的邊緣消除鋸齒功能。 此模式適用於對像素數量較少的影像進行少量縮小。
D2D1_DISTANTSPECULAR_SCALE_MODE_ANISOTROPIC 使用各向異性過濾技術,根據位圖的變形形狀取樣圖案。
D2D1_DISTANTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC 使用可變大小的高品質立方核心,在轉換矩陣中涉及縮小比例時,執行影像的預先調整。 然後使用三次方程插值模式進行最終輸出。

注意

如果您未選擇模式,則效果會預設為 D2D1_DISTANTSPECULAR_SCALE_MODE_LINEAR。

要求

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

ID2D1Effect