位移地圖效果
使用位移地圖效果,藉由第二個輸入影像的強度值來取代輸入影像的圖元。
此效果的 CLSID CLSID_D2D1DisplacementMap。
範例影像
之前 |
---|
After |
ComPtr<ID2D1Effect> displacementMapEffect;
m_d2dContext->CreateEffect(CLSID_D2D1DisplacementMap, &displacementMapEffect);
displacementMapEffect->SetInput(0, bitmap);
displacementMapEffect->SetValue(D2D1_DISPLACEMENTMAP_PROP_SCALE, 100.0f);
// The second input of the displacement effect determines how the input image is transformed.
// For this example, we will use a turbulence effect as the second input to randomly distort the image.
ComPtr<ID2D1Effect> turbulenceEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Turbulence, &turbulenceEffect);
displacementMapEffect->SetInputEffect(1, turbulenceEffect.Get());
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(displacementMapEffect.Get());
m_d2dContext->EndDraw();
輸出中圖元的位置是使用此公式來決定:
C' (x,y) =C (x+ scale* (XChannelSelector (位移點陣圖 (x,y) ) -0.5) (y+ scale* (YChannelSelector (位移點陣圖 (x,y) ) -0.5) )
其中:
-
C (x、y) 是 (x、y) 的輸出圖元。
C (x、y) 是 (x、y) 的輸入圖元。
位移點陣圖 (x、y) 是位移圖元濃度指定的座標
XChannelSelector 會從位移點陣圖中選取的 RGBA 通道強度,而位移點陣圖會以 X 方向換行輸入影像。
YChannelSelector 會從位移點陣圖中選取的 RGBA 通道強度,而位移點陣圖會以 Y 方向換行輸入影像。
效果會根據縮放屬性和位移影像的濃度,重新取樣輸入影像。 如果從輸入影像中的圖元之間取樣,它會使用雙向插補。
此效果適用于直接和預先乘法的 Alpha 影像。 輸出 Alpha 格式與輸入格式相同。
效果屬性
顯示名稱和索引列舉 | 類型和預設值 | 描述 |
---|---|---|
調整 D2D1_DISPLACEMENTMAP_PROP_SCALE |
FLOAT 0.0f |
從位移影像乘以選取通道的強度。 您設定這個屬性越高,效果就越能換行圖元 |
XChannelSelect D2D1_DISPLACEMENTMAP_PROP_X_CHANNEL_SELECT |
D2D1_CHANNEL_SELECTOR D2D1_CHANNEL_SELECTOR_A |
效果會從這個色彩色板擷取強度,並用它來以 X 方向空間取代影像。 如需詳細資訊 ,請參閱色彩通道 。 |
YChannelSelect D2D1_DISPLACEMENTMAP_PROP_Y_CHANNEL_SELECT |
D2D1_CHANNEL_SELECTOR D2D1_CHANNEL_SELECTOR_A |
效果會從這個色彩色板擷取強度,並用它來以 Y 方向空間換行影像。 如需詳細資訊 ,請參閱色彩通道 。 |
色彩色板
列舉型別 | 描述 |
---|---|
D2D1_CHANNEL_SELECTOR_R | 效果會從紅色通道擷取強度輸出。 |
D2D1_CHANNEL_SELECTOR_G | 效果會從綠色通道擷取濃度輸出。 |
D2D1_CHANNEL_SELECTOR_B | 效果會從藍色通道擷取濃度輸出。 |
D2D1_CHANNEL_SELECTOR_A | 效果會從 Alpha 色板擷取濃度輸出。 |
輸出點陣圖
您可以使用下列方程式來判斷輸出點陣圖的大小上限:
輸出點陣圖? 圖元= (輸入點陣圖大小? (DIP) +縮放比例) * (使用者 DPI/96)
輸出點陣圖y 圖元= (輸入點陣圖大小y (DIP) + 縮放比例) * (使用者 DPI/96)
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用于 Windows 7 的Windows 8和平臺更新 [傳統型應用程式 |Windows 市集應用程式] |
最低支援的伺服器 | 適用于 Windows 7 的Windows 8和平臺更新 [傳統型應用程式 |Windows 市集應用程式] |
標頭 | d2d1effects.h |
程式庫 | d2d1.lib、dxguid.lib |