共用方式為


3D 轉換效果

使用 3D 轉換效果,將任意 4x4 轉換矩陣套用至影像。

此效果會使用此計算,將矩陣 (M?) 套用至來源影像 ([ x y z 1 ]) 的角落頂點:

[ xr yr zr 1 ]=[ x y z 1 ]*M?

這個效果的 CLSID 是CLSID_D2D13DTransform。

範例影像

以前
在轉換之前 映像。
在轉換之後 映像。
ComPtr<ID2D1Effect> D2D13DTransformEffect;
m_d2dContext->CreateEffect(CLSID_D2D13DTransform, &D2D13DTransformEffect);

D2D13DTransformEffect->SetInput(0, bitmap);

// You can use the helper methods in D2D1::Matrix4x4F to create common matrix transformations.
D2D1_MATRIX_4X4_F matrix = 
    D2D1::Matrix4x4F::Translation(0.0f, -192.0f, 0.0f) *
    D2D1::Matrix4x4F::RotationY(30.0f) *
    D2D1::Matrix4x4F::Translation(0.0f, 192.0f, 0.0f);

D2D13DTransformEffect->SetValue(D2D1_3DTRANSFORM_PROP_TRANSFORM_MATRIX, matrix);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(D2D13DTransformEffect.Get());
m_d2dContext->EndDraw();

效果屬性

顯示名稱和索引列舉 描述
InterpolationMode
D2D1_3DTRANSFORM_PROP_INTERPOLATION_MODE
效果在影像上使用的插補模式。 有 5 種縮放模式在品質和速度範圍內。
類型為 D2D1_3DTRANSFORM_INTERPOLATION_MODE。
預設值為 D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR。
BorderMode
D2D1_3DTRANSFORM_PROP_BORDER_MODE
用來計算影像框線、軟式或硬式的模式。 如需詳細資訊,請參閱 框線模式
類型為 D2D1_BORDER_MODE。
預設值為 D2D1_BORDER_MODE_SOFT。
TransformMatrix
D2D1_3DTRANSFORM_PROP_TRANSFORM_MATRIX
套用至投影平面的 4x4 轉換矩陣。 下列矩陣計算可用來將點從一個 3D 座標系統對應至已轉換的 2D 座標系統。
3D 深度矩陣 其中:
X、Y、Z = 輸入投影平面座標
Mx,y = 轉換矩陣元素
X、Y、Z =輸出投影平面座標

個別矩陣元素不會系結,而且是無單位的。
類型為 D2D1_MATRIX_4X4_F。
默認值為 Matrix4x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1)。

插補模式

列舉 描述
D2D1_3DTRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR 取樣最接近的單一點,並使用該點。 此模式會使用較少的處理時間,但會輸出品質最低的影像。
D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR 使用四點樣本和線性插補。 此模式使用的處理時間比最接近的鄰近模式還多,但輸出品質較高的影像。
D2D1_3DTRANSFORM_INTERPOLATION_MODE_CUBIC 使用16個樣本立方核心進行插補。 此模式會使用最多處理時間,但輸出品質較高的影像。
D2D1_3DTRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR 在單一像素內使用 4 個線性樣本,以取得良好的邊緣消除鋸齒功能。 此模式適合在影像上以少量像素縮小。
D2D1_3DTRANSFORM_INTERPOLATION_MODE_ANISOTROPIC 使用非等性篩選,根據點陣圖的轉換圖形取樣圖樣。

注意

如果您未選取模式,效果預設為D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR。

注意

不過,如果您將 Cached 屬性設定為 true,則當縮放比例時,Anisotropic 模式會產生 mipmap,則每次針對足夠小的影像,都不會產生 mipmap。

框線模式

名字 描述
D2D1_BORDER_MODE_SOFT 效果會在影像插補時以透明黑色圖元填補影像,導致柔邊。
D2D1_BORDER_MODE_HARD 效果會將輸出限制為輸入影像的大小。

4x4 轉換矩陣類別

Direct2D 提供 4x4 矩陣類別,以提供協助程式函式來轉換 3 維度中的影像。 如需所有類別成員的詳細資訊和描述,請參閱 Matrix4x4F 主題。

功能 描述 矩陣
Matrix4x4F::Scale(X,Y,Z) 產生轉換矩陣,以 X、Y 和/或 Z 方向縮放投影平面。 縮放矩陣
SkewX(X) 產生轉換矩陣,使投影平面向 X 方向傾斜。 顯示 X 方向的扭曲矩陣。
扭曲(Y) 產生轉換矩陣,使投影平面向 Y 方向傾斜。 扭曲矩陣
翻譯(X、Y、Z) 產生轉換矩陣,以 X、Y 或 Z 方向轉譯投影平面。 轉譯矩陣
RotationX(X) 產生轉換矩陣,以繞 X 軸旋轉投影平面。 旋轉 x 矩陣
RotationY(Y) 產生轉換矩陣,以繞Y軸旋轉投影平面。 旋轉 y 矩陣
RotationZ(Z) 產生轉換矩陣,以繞 Z 軸旋轉投影平面。 旋轉 z 矩陣
PerspectiveProjection(D) 深度值為 D 的透視轉換。 透視矩陣
RotationArbitraryAxis(X, Y, Z, degrees) 繞著您指定的座標軸旋轉投影平面。

要求

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

ID2D1Effect