共用方式為


聚光燈型反射光源效果

使用點反射光源效果來建立看似反射表面的影像,其中光源僅限於光線的導向圓錐。 此效果會使用 Alpha 色板做為高度地圖,並以點光源將影像亮起。

輸出點陣圖的色彩是淺色、光線位置、圓錐的方向,以及根據 Phong 光源模型的反射部分表面幾何的結果。 每個具有反射光源之圖元的 Alpha 色板輸出是該圖元的紅色、綠色和藍色通道輸出上限。

此效果的 CLSID CLSID_D2D1SpotSpecular。

範例影像

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

效果範例螢幕擷取畫面。

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

用來對點陣圖進行反射光源輸出的向量圖表。

效果會使用此處的方程式計算最終輸出圖元值:

輸出圖元方程式。

where

變數定義。

光點光源

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

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

效果會計算淺色、Lr、Lg、Lb,做為光源位置的函式,如此處方程式所示:

點光源的方程式

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

方程式:向量

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

方程式:向量 2

效果屬性

顯示名稱和索引列舉 描述
LightPosition
D2D1_SPOTSPECULAR_PROP_LIGHT_POSITION
點光源的光線位置。 屬性是定義為 (x、y、z) 的D2D1_VECTOR_3F。 單位以裝置無關的圖元 () 且未系結。 此類型D2D1_VECTOR_3F。
預設值為 {0.0f、0.0f、0.0f}。
PointsAt
D2D1_SPOTSPECULAR_PROP_POINTS_AT
焦點光線的所在位置。 屬性會公開為 (x、y、z) 的D2D1_VECTOR_3F。 單位以 DIP 為單位,且值未系結。 此類型D2D1_VECTOR_3F。
預設值為 {0.0f、0.0f、0.0f}。
焦點
D2D1_SPOTSPECULAR_PROP_FOCUS
點燈的焦點。 此屬性為無單位,且定義介於 0 到 200 之間。 此類型為 FLOAT。
預設值為 1.0f。
LimitingConeAngle
D2D1_SPOT_SPECULAR_PROP_LIMITING_CONE_ANGLE
限制投影光線區域的圓錐角度。 圓錐外不會投影光線。 限制圓錐角度是點光源座標軸 (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 7 的 Windows 8 和平臺更新 [傳統型應用程式 |Windows 市集應用程式]
最低支援的伺服器 適用于 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |Windows 市集應用程式]
標頭 d2d1effects.h
程式庫 d2d1.lib、dxguid.lib

ID2D1Effect