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


Térhatású perspektíva átalakítása effektus

A térhatású perspektíva-átalakító effektussal elforgathatja a képet 3 dimenzióban, mintha távolról tekintenek meg.

A térhatású perspektíva-átalakítás kényelmesebb, mint a 3D átalakító effektus, de csak a funkció egy részhalmazát teszi elérhetővé. Kiszámíthat egy teljes 3D átalakítási mátrixot, és tetszőlegesebb transzformációs mátrixot alkalmazhat egy képre a 3D átalakítás effektus használatával.

Az effektus CLSID azonosítója CLSID_D2D13DPerspectiveTransform.

Példakép

Előtt
a képet az effektus előtt.
Után
a képet az effektus után.
ComPtr<ID2D1Effect> perspectiveTransformEffect;
m_d2dContext->CreateEffect(CLSID_D2D13DPerspectiveTransform, &perspectiveTransformEffect);

perspectiveTransformEffect->SetInput(0, bitmap);

perspectiveTransformEffect->SetValue(D2D1_3DPERSPECTIVETRANSFORM_PROP_PERSPECTIVE_ORIGIN, D2D1::Vector3F(0.0f, 192.0f, 0.0f));
perspectiveTransformEffect->SetValue(D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION, D2D1::Vector3F(0.0f, 30.0f, 0.0f));

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

Effektus tulajdonságai

Név és index számbavételének megjelenítése Leírás
InterpolationMode
D2D1_3DPERSPECTIVETRANSFORM_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_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE.
Az alapértelmezett érték D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_LINEAR.
BorderMode
D2D1_3DPERSPECTIVETRANSFORM_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.
Mélység
D2D1_3DPERSPECTIVETRANSFORM_PROP_DEPTH
A PerspectiveOrigin és a vetítősík közötti távolság. A DIP-ben megadott értéknek 0-nál nagyobbnak kell lennie.
A típus FLOAT.
Az alapértelmezett érték 1000,0f.
PerspektívaOrigin
D2D1_3DPERSPECTIVETRANSFORM_PROP_PERSPECTIVE_ORIGIN
A megtekintő X és Y helye a 3D jelenetben. Ez a tulajdonság egy D2D1_VECTOR_2F, amely a következőképpen van definiálva: (X. pont, Y. pont). Az egységek DIP-kben vannak.
A Z értéket a Mélység tulajdonsággal állíthatja be.
A típus D2D1_VECTOR_2F.
Alapértelmezett érték: {0.0f, 0.0f}.
LocalOffset
D2D1_3DPERSPECTIVETRANSFORM_PROP_LOCAL_OFFSET
Az effektus fordítása, mielőtt elforgatja a vetítősíkot. Ez a tulajdonság a következőként definiált D2D1_VECTOR_3F: (X, Y, Z). Az egységek DIP-kben vannak.
A típus D2D1_VECTOR_3F.
Alapértelmezett érték: {0.0f, 0.0f, 0.0f}.
GlobalOffset
D2D1_3DPERSPECTIVETRANSFORM_PROP_GLOBAL_OFFSET
Az effektus fordítása a vetítési sík elforgatása után történik. Ez a tulajdonság a következőként definiált D2D1_VECTOR_3F: (X, Y, Z). Az egységek DIP-kben vannak.
A típus D2D1_VECTOR_3F.
Alapértelmezett érték: {0.0f, 0.0f, 0.0f}.
Rotációsorigin
D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION_ORIGIN
Az effektus által végrehajtott elforgatás középpontja. Ez a tulajdonság a következőként definiált D2D1_VECTOR_3F: (X, Y, Z). Az egységek DIP-kben vannak.
A típus D2D1_VECTOR_3F.
Alapértelmezett érték: {0.0f, 0.0f, 0.0f}.
Forgás
D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION
Az egyes tengelyek forgatási szögei. Ez a tulajdonság a következőként definiált D2D1_VECTOR_3F: (X, Y, Z). Az egységek fokban vannak.
A típus D2D1_VECTOR_3F.
Alapértelmezett érték: {0.0f, 0.0f, 0.0f}.

Interpolációs módok

Felsorolás Leírás
D2D1_3DPERSPECTIVETRANSFORM_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_3DPERSPECTIVETRANSFORM_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_3DPERSPECTIVETRANSFORM_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_3DPERSPECTIVETRANSFORM_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_3DPERSPECTIVETRANSFORM_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_3DPERSPECTIVETRANSFORM_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.

Kimeneti bitkép

A kimeneti bitkép mérete a képre alkalmazott átalakítási mátrixtól függ.

Az effektus végrehajtja az átalakítási műveletet, majd egy határolókeretet alkalmaz az eredmény körül. A kimeneti bitkép a határolókeret mérete.

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