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
- Effektus tulajdonságai
- Interpolációs módok
- szegélymódok
- Kimeneti bitkép
- követelmények
- Kapcsolódó témakörök
Példakép
Előtt |
---|
![]() |
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 |