聚光燈型擴散光源效果
使用點擴散光源效果來建立一個影像,該影像看起來是非反射表面,其中光源僅限於光線的導向圓錐,而光線會散佈在所有方向。 此效果會使用 Alpha 色板做為高度地圖,並使用點光源將影像亮起。
輸出點陣圖的色彩是淺色、淺色位置和表面幾何的結果。 每個具有擴散光源之圖元的 Alpha 色板輸出一律為 1.0。
此效果的 CLSID CLSID_D2D1SpotDiffuse。
範例影像
此處的範例顯示現成擴散光源效果的輸入和輸出影像。
效果會使用下列方程式計算最終輸出圖元值:
其中:
- kd = 擴散光源常數。 由使用者指定。
= 表面一般單位向量,這是 x 和 y 的函式。
= 從表面指向光線的單位向量。
Lr、Lg、Lb = RGB 元件中的淺色。
效果屬性
顯示名稱和索引列舉 | 類型和預設值 | 描述 |
---|---|---|
LightPosition D2D1_SPOTDIFFUSE_PROP_LIGHT_POSITION |
D2D1_VECTOR_3F {0.0f, 0.0f, 0.0f} |
點光源的光線位置。 屬性是定義為 (x、y、z) 的D2D1_VECTOR_3F。 單位以裝置無關的圖元 () 且未系結。 |
PointsAt D2D1_SPOTDIFFUSE_PROP_POINTS_AT |
D2D1_VECTOR_3F {0.0f, 0.0f, 0.0f} |
焦點光線的所在位置。 屬性會公開為 (x、y、z) 的D2D1_VECTOR_3F。 單位以 DIP 為單位,且值未系結。 |
焦點 D2D1_SPOTDIFFUSE_PROP_FOCUS |
FLOAT 1.0f |
點燈的焦點。 此屬性為無單位,且定義介於 0 到 200 之間。 |
LimitingConeAngle D2D1_SPOTDIFFUSE_PROP_LIMITING_CONE_ANGLE |
FLOAT 90.0f |
限制投影光線區域的圓錐角度。 圓錐外不會投影光線。 限制圓錐角度是點光源座標軸 (LightPosition 與 PointsAt 屬性之間的座標軸) 和點光錐之間的角度。 此屬性是以度為單位定義,且必須介於 0 到 90 度之間。 |
DiffuseConstant D2D1_SPOTDIFFUSE_PROP_DIFFUSE_CONSTANT |
FLOAT 1.0f |
擴散反射與傳入光線量的比例。 此屬性必須介於 0 到 10,000 之間,且為無單位。 |
SurfaceScale D2D1_SPOTDIFFUSE_PROP_SURFACE_SCALE |
FLOAT 1.0f |
Z 方向的縮放比例。 表面刻度為無單位,且必須介於 0 到 10,000 之間。 |
色彩 D2D1_SPOTDIFFUSE_PROP_COLOR |
D2D1_VECTOR_3F {1.0f、1.0f、1.0f} |
傳入光線的色彩。 此屬性會公開為向量 3 (R、G、B) ,並用來計算 LR、LG、LB。 |
KernelUnitLength D2D1_SPOTDIFFUSE_PROP_KERNEL_UNIT_LENGTH |
D2D1_VECTOR_2F {1.0f, 1.0f} |
Sobel 核心中元素的大小,用來在 X 和 Y 方向產生表面標準。 此屬性會對應至 Sobel 漸層中的 dx 和 dy 值。 此屬性是D2D1_VECTOR_2F (核心單位長度 X、核心單位長度 Y) ,且定義于 (DIPs/Kernel Unit) 中。 效果會使用雙向插補來調整點陣圖,以符合核心元素的大小。 |
ScaleMode D2D1_SPOTDIFFUSE_PROP_SCALE_MODE |
D2D1_SPOTDIFFUSE_SCALE_MODE D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR |
效果用來將影像調整為對應的核心單位長度的插補模式。 品質與速度有六種調整模式。 如需詳細資訊 ,請參閱調整模式 。 |
縮放模式
列舉型別 | 描述 |
---|---|
D2D1_SPOTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR | 取樣最接近的單一點,並使用該點。 此模式會使用較少的處理時間,但會輸出最低的品質影像。 |
D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR | 使用四個點樣本和線性插補。 此模式會輸出比最接近鄰近更高的品質影像。 |
D2D1_SPOTDIFFUSE_SCALE_MODE_CUBIC | 使用 16 個樣本立方核心進行插補。 此模式會使用最多處理時間,但會輸出品質較高的影像。 |
D2D1_SPOTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR | 在單一圖元內使用 4 個線性樣本,以取得良好的邊緣反鋸齒。 此模式適用于在具有少量圖元的影像上相應減少。 |
D2D1_SPOTDIFFUSE_SCALE_MODE_ANISOTROPIC | 使用等向性篩選,根據點陣圖的轉換圖形來取樣圖樣。 |
D2D1_SPOTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC | 如果轉換矩陣涉及縮減,請使用可變大小的高品質三次方核心來執行影像的預先縮小。 然後,針對最終輸出使用三次方插補模式。 |
注意
如果您未選取模式,效果預設為D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用于 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |Windows 市集應用程式] |
最低支援的伺服器 | 適用于 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |Windows 市集應用程式] |
標頭 | d2d1effects.h |
程式庫 | d2d1.lib、dxguid.lib |