Aracılığıyla paylaş


3B dönüştürme efekti

Bir görüntüye rastgele 4x4 dönüşüm matrisi uygulamak için 3B dönüştürme efektini kullanın.

Bu efekt, sağladığınız matrisi (M?) bu hesaplamayı kullanarak kaynak görüntünün köşe köşelerine ([ x y z 1 ]) uygular:

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

Bu etki için CLSID CLSID_D2D13DTransform.

Örnek resim

Önce
Dönüştürmeden önce görüntüyü .
Sonra
Dönüştürmeden sonra görüntüyü .
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();

Efekt özellikleri

Görünen ad ve dizin numaralandırması Açıklama
InterpolationMode
D2D1_3DTRANSFORM_PROP_INTERPOLATION_MODE
Efektin görüntü üzerinde kullandığı ilişkilendirme modu. Kalite ve hız aralığında 5 ölçek modu vardır.
Tür D2D1_3DTRANSFORM_INTERPOLATION_MODE.
Varsayılan değer D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR.
BorderMode
D2D1_3DTRANSFORM_PROP_BORDER_MODE
Görüntünün kenarını yumuşak veya sert olarak hesaplamak için kullanılan mod. Daha fazla bilgi için bkz. Kenarlık modları.
Tür D2D1_BORDER_MODE.
Varsayılan değer D2D1_BORDER_MODE_SOFT.
TransformMatrix
D2D1_3DTRANSFORM_PROP_TRANSFORM_MATRIX
Projeksiyon düzlemine uygulanan 4x4 dönüştürme matrisi. Aşağıdaki matris hesaplaması, noktaları bir 3B koordinat sisteminden dönüştürülmüş 2B koordinat sistemine eşlemek için kullanılır.
3B Derinlik Matrisi :
X, Y, Z = Giriş projeksiyon düzlemi koordinatları
Mx,y = Dönüştürme Matrisi öğeleri
X , Y , Z =Çıkış projeksiyon düzlemi koordinatları

Tek tek matris öğeleri sınırlanmaz ve birimsizdir.
Tür D2D1_MATRIX_4X4_F.
Varsayılan değer Matrix4x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1).

İlişkilendirme modları

Sayım Açıklama
D2D1_3DTRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR En yakın tek noktayı örnekler ve bunu kullanır. Bu mod daha az işlem süresi kullanır, ancak en düşük kaliteli görüntüyü görüntüler.
D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR Dört noktalı örnek ve doğrusal ilişkilendirme kullanır. Bu mod, en yakın komşu modundan daha fazla işlem süresi kullanır, ancak daha yüksek kaliteli bir görüntü oluşturur.
D2D1_3DTRANSFORM_INTERPOLATION_MODE_CUBIC İlişkilendirme için 16 örnek kübik çekirdek kullanır. Bu mod en fazla işlem süresini kullanır, ancak daha yüksek kaliteli bir görüntü oluşturur.
D2D1_3DTRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR İyi kenar diğer adlara karşı koruma için tek bir piksel içinde 4 doğrusal örnek kullanır. Bu mod, birkaç piksel içeren görüntülerde küçük miktarlarda ölçeği küçültmek için iyidir.
D2D1_3DTRANSFORM_INTERPOLATION_MODE_ANISOTROPIC Bit eşlemin dönüştürülmüş şekline göre bir desen örneklemek için anizotropik filtreleme kullanır.

Not

Mod seçmezseniz efekt varsayılan olarak D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR olur.

Not

Anisotropik mod ölçeklendirme sırasında mipmap'ler oluşturur, ancak bu etkiye giriş olan efektlerde önbelleğe alınmış özelliğini true olarak ayarlarsanız, yeterince küçük görüntüler için her seferinde mipmap'ler oluşturulmaz.

Kenarlık modları

Ad Açıklama
D2D1_BORDER_MODE_SOFT Efekt, görüntüyü ara değer olarak saydam siyah piksellerle doldurur ve yumuşak bir kenar elde eder.
D2D1_BORDER_MODE_HARD Efekt, çıkışı giriş görüntüsünün boyutuna sıkıştırır.

4x4 Dönüştürme Matrisi Sınıfı

Direct2D, görüntüyü 3 boyutta dönüştürmeye yönelik yardımcı işlevler sağlamak için 4x4 matris sınıfı sağlar. Daha fazla bilgi ve tüm sınıf üyelerinin açıklaması için Matrix4x4F konusuna bakın.

Fonksiyon Açıklama Matris
Matrix4x4F::Scale(X, Y, Z) Projeksiyon düzlemini X, Y ve/veya Z yönünde ölçeklendirin bir dönüştürme matrisi oluşturur. scale3d matris
SkewX(X) Projeksiyon düzlemini X yönünde eğen bir dönüşüm matrisi oluşturur. X yönünde bir eğme matrisi gösterir.
Dengesizlik(Y) Projeksiyon düzlemini Y yönünde eğen bir dönüşüm matrisi oluşturur. eğme matrisi
Çeviri(X, Y, Z) X, Y veya Z yönünde projeksiyon düzlemini çeviren bir dönüştürme matrisi oluşturur. Matris
RotationX(X) X ekseni hakkında projeksiyon düzlemini döndüren bir dönüşüm matrisi oluşturur. x matris
Döndürme(Y) Y ekseni hakkında projeksiyon düzlemini döndüren bir dönüşüm matrisi oluşturur. Y matrisi
RotationZ(Z) Z ekseniyle ilgili projeksiyon düzlemini döndüren bir dönüşüm matrisi oluşturur. z matrisi
PerspectiveProjection(D) Derinlik değeri D olan perspektif dönüşümü. perspektif matrisi
RotationArbitraryAxis(X, Y, Z, derece) Projeksiyon düzlemini belirttiğiniz eksen hakkında döndürür.

Gereksinim -leri

Gereksinim Değer
Desteklenen en düşük istemci Windows 7 için Windows 8 ve Platform Güncelleştirmesi [masaüstü uygulamaları | Windows Mağazası uygulamaları]
Desteklenen en düşük sunucu Windows 7 için Windows 8 ve Platform Güncelleştirmesi [masaüstü uygulamaları | Windows Mağazası uygulamaları]
Üstbilgi d2d1effects.h
Kütüphane d2d1.lib, dxguid.lib

ID2D1Fefek