Megosztás a következőn keresztül:


Térhatású átalakítási effektus

A 3D átalakítási effektus használatával tetszőleges 4x4-et átalakító mátrixot alkalmazhat egy képre.

Ez az effektus a forráskép sarokcsúcsaira ([ x y z 1 ]) megadott mátrixot (M?) alkalmazza a következő számítással:

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

Az effektus CLSID azonosítója CLSID_D2D13DTransform.

Példakép

Előtt
a képet az átalakítás előtt.
Után
a képet az átalakítás után.
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();

Effektus tulajdonságai

Név és index számbavételének megjelenítése Leírás
InterpolationMode
D2D1_3DTRANSFORM_PROP_INTERPOLATION_MODE
Az interpolációs mód, amelyet az effektus a képre használ. 5 skálázási mód létezik, amelyek minőségben és sebességben is skálázhatók.
A típus D2D1_3DTRANSFORM_INTERPOLATION_MODE.
Az alapértelmezett érték D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR.
BorderMode
D2D1_3DTRANSFORM_PROP_BORDER_MODE
A kép szegélyének kiszámítására használt mód, puha vagy kemény. További információért tekintse meg szegélymódokat.
A típus D2D1_BORDER_MODE.
Az alapértelmezett érték D2D1_BORDER_MODE_SOFT.
TransformMatrix
D2D1_3DTRANSFORM_PROP_TRANSFORM_MATRIX
A vetítési síkra alkalmazott 4x4 transzformációs mátrix. Az alábbi mátrixszámítás egy 3D koordinátarendszer pontjainak leképezésére szolgál az átalakított 2D koordinátarendszerre.
3D mélységi mátrix Hol:
X, Y, Z = Bemeneti vetítési sík koordinátái
Mx,y = Mátrixelemek átalakítása
X, Y, Z =Kimeneti vetítési sík koordinátái

Az egyes mátrixelemek nincsenek határban, és egység nélküliek.
A típus D2D1_MATRIX_4X4_F.
Az alapértelmezett érték a Matrix4x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1).

Interpolációs módok

Felsorolás Leírás
D2D1_3DTRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR Mintákat a legközelebbi egy pontot, és használja azt. Ez a mód kevesebb feldolgozási időt használ, de a legalacsonyabb minőségű képet adja ki.
D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR Négypontos mintát és lineáris interpolációt használ. Ez a mód több feldolgozási időt használ, mint a legközelebbi szomszéd mód, de jobb minőségű képet ad ki.
D2D1_3DTRANSFORM_INTERPOLATION_MODE_CUBIC 16 köbélmintát használ az interpolációhoz. Ez a mód a legtöbb feldolgozási időt használja, de jobb minőségű képet ad ki.
D2D1_3DTRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR Egyetlen képponton belül 4 lineáris mintát használ a jó élelsimításhoz. Ez a mód alkalmas arra, hogy kis mennyiségekkel lefelé skálázható néhány képpontos képeken.
D2D1_3DTRANSFORM_INTERPOLATION_MODE_ANISOTROPIC Anizotróp szűréssel mintát vesz a bitkép átalakított alakjának megfelelően.

Jegyzet

Ha nem jelöl ki módot, az effektus alapértelmezés szerint D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR.

Jegyzet

Az anizotróp mód mipmap-okat hoz létre a skálázás során, azonban ha a Gyorsítótárazott tulajdonságot igaz értékre állítja az effektusba bemenő hatásokra, a mipmapok nem jönnek létre minden alkalommal a megfelelő méretű képekhez.

Szegélymódok

Név Leírás
D2D1_BORDER_MODE_SOFT Az effektus az interpoláció során átlátszó fekete képpontokkal párnázta meg a képet, ami puha élhez vezet.
D2D1_BORDER_MODE_HARD Az effektus a kimenetet a bemeneti kép méretéhez rögzíti.

4x4 transzformációs mátrixosztály

A Direct2D egy 4x4 mátrixosztályt biztosít, amely segédfüggvényeket biztosít a kép 3 dimenzióban történő átalakításához. További információért és az osztálytagok leírásáért tekintse meg a Matrix4x4F témakört.

Funkció Leírás Mátrix
Matrix4x4F::Scale(X, Y, Z) Létrehoz egy transzformációs mátrixot, amely az X, Y és/vagy Z irányban skálázza a vetítési síkot. skálázási3d mátrix
SkewX(X) Létrehoz egy átalakító mátrixot, amely az X irányban elvarrja a vetítési síkot. X irányban egy ferde mátrixot jelenít meg.
SkewY(Y) Létrehoz egy átalakító mátrixot, amely az Y irányban elvarrja a vetítési síkot. ferde mátrix
Fordítás(X, Y, Z) Létrehoz egy transzformációs mátrixot, amely az X, Y vagy Z irányban fordítja le a vetítési síkot. mátrixfordítása
RotációsX(X) Létrehoz egy transzformációs mátrixot, amely az X tengely körül elforgatja a vetítési síkot. x mátrix elforgatása
Forgatás(Y) Létrehoz egy átalakítómátrixot, amely az Y tengely körül elforgatja a vetítési síkot. y mátrix elforgatása
RotációZ(Z) Létrehoz egy átalakító mátrixot, amely elforgatja a vetítési síkot a Z tengely körül. z mátrix elforgatása
PerspectiveProjection(D) Perspektíva-átalakítás D mélységi értékkel. perspektíva-mátrix
RotationArbitraryAxis(X, Y, Z, fok) Elforgatja a vetítési síkot a megadott tengely körül.

Követelmények

Követelmény Érték
Minimálisan támogatott ügyfél Windows 8 és Platform Update for Windows 7 [asztali alkalmazások | Windows Áruházbeli alkalmazások]
Minimálisan támogatott kiszolgáló Windows 8 és Platform Update for Windows 7 [asztali alkalmazások | Windows Áruházbeli alkalmazások]
Fejléc d2d1effects.h
Könyvtár d2d1.lib, dxguid.lib

ID2D1Effect