共用方式為


遠距反射光源效果

使用遠距反射光源效果,建立看起來是反射表面的影像,其中光源似乎來自遠距離 (,例如太陽或額外負荷光線) 。 此效果會使用 Alpha 色板做為高度地圖,並以遠距光源將影像亮起。

輸出點陣圖的色彩是淺色、淺色位置和表面幾何的結果。 每個具有反射光源之圖元的 Alpha 色板輸出是該圖元的紅色、綠色和藍色通道輸出上限。

此效果的 CLSID CLSID_D2D1DistantSpecular。

範例影像

此處的範例顯示遠距反射光源效果的輸入和輸出影像。

效果範例螢幕擷取畫面,顯示遠距反射光源效果的輸入和輸出影像。

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

輸出點陣圖計算

where

K? = 反射光源常數。
表面標準符號。 = 表面一般單位向量。
半路向量符號。 = 「halfway」 單位向量與光線單位向量之間的單位向量。
Cr、Cg、Cb = RGB 元件中的淺色。

遠距光源

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

遠距光源

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

光線向量計算

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

效果屬性

顯示名稱和索引列舉 描述
方位
D2D1_DISTANTSPECULAR_PROP_AZIMUTH
相對於計數器時鐘方向中 X 軸的 XY 平面光源方向角度。 單位以度為單位,且必須介於 0 到 360 度之間。
此類型為 FLOAT。
預設值為 0.0f。
Elevation
D2D1_DISTANTSPECULAR_PROP_ELE加值稅ION
相對於反時鐘方向中 Y 軸的 Y 軸,YZ 平面中光源的方向角度。 單位以度為單位,且必須介於 0 到 360 度之間。
此類型為 FLOAT。
預設值為 0.0f。
SpecularExponent
D2D1_DISTANTSPECULAR_PROP_SPECULAR_EXPONENT
Phong 光源方程式中反射字詞的指數。 較大的值會對應至更反射的表面。 此值為無單位,且必須介於 1.0 到 128 之間。 此類型為 FLOAT。
預設值為 1.0f。
SpecularConstant
D2D1_DISTANTSPECULAR_PROP_SPECULAR_CONSTANT
反射與傳入光線的比例。 此值為無單位,且必須介於 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) /Kernel Unit) 。 效果會使用雙向插補來調整點陣圖,以符合核心元素的大小。 此類型D2D1_VECTOR_2F。
預設值為 {1.0f, 1.0f}。
ScaleMode
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 7 的Windows 8和平臺更新 [傳統型應用程式 |Windows 市集應用程式]
最低支援的伺服器 適用于 Windows 7 的Windows 8和平臺更新 [傳統型應用程式 |Windows 市集應用程式]
標頭 d2d1effects.h
程式庫 d2d1.lib、dxguid.lib

ID2D1Effect