Aracılığıyla paylaş


3B perspektif dönüştürme etkisi

Görüntüyü uzaktan görüntülenmiş gibi 3 boyutlu döndürmek için 3B perspektif dönüştürme efektini kullanın.

3B perspektif dönüşümü, 3B dönüştürme etkisinden daha kullanışlıdır, ancak işlevselliğin yalnızca bir alt kümesini kullanıma sunar. Tam 3B dönüştürme matrisini hesaplayabilir ve 3B dönüştürme efektini kullanarak bir görüntüye daha rastgele bir dönüştürme matrisi uygulayabilirsiniz.

Bu etki için CLSID CLSID_D2D13DPerspectiveTransform.

Örnek resim

Önce
Efektin önüne görüntüyü .
Sonra
Efektin ardından görüntüyü .
ComPtr<ID2D1Effect> perspectiveTransformEffect;
m_d2dContext->CreateEffect(CLSID_D2D13DPerspectiveTransform, &perspectiveTransformEffect);

perspectiveTransformEffect->SetInput(0, bitmap);

perspectiveTransformEffect->SetValue(D2D1_3DPERSPECTIVETRANSFORM_PROP_PERSPECTIVE_ORIGIN, D2D1::Vector2F(0.0f, 192.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();

Efekt özellikleri

Görünen ad ve dizin numaralandırması Açıklama
InterpolationMode
D2D1_3DPERSPECTIVETRANSFORM_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_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE.
Varsayılan değer D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_LINEAR.
BorderMode
D2D1_3DPERSPECTIVETRANSFORM_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.
Derinlik
D2D1_3DPERSPECTIVETRANSFORM_PROP_DEPTH
PerspectiveOrigin'den projeksiyon düzlemine olan uzaklık. IP'lerde belirtilen değer 0'dan büyük olmalıdır.
Tür FLOAT'dır.
Varsayılan değer 1000,0f'dir.
PerspectiveOrigin
D2D1_3DPERSPECTIVETRANSFORM_PROP_PERSPECTIVE_ORIGIN
Görüntüleyicinin 3B sahnedeki X ve Y konumu. Bu özellik şu şekilde tanımlanan bir D2D1_VECTOR_2F: (X noktası, Y noktası). Birimler DIP cinsindendir.
Z değerini Derinlik özelliğiyle ayarlarsınız.
Tür D2D1_VECTOR_2F.
Varsayılan değer : {0.0f, 0.0f}.
LocalOffset
D2D1_3DPERSPECTIVETRANSFORM_PROP_LOCAL_OFFSET
Projeksiyon düzlemini döndürmeden önce efektin gerçekleştirdiği çeviri. Bu özellik şu şekilde tanımlanan bir D2D1_VECTOR_3F: (X, Y, Z). Birimler DIP cinsindendir.
Tür D2D1_VECTOR_3F.
Varsayılan değer: {0.0f, 0.0f, 0.0f}.
GlobalOffset
D2D1_3DPERSPECTIVETRANSFORM_PROP_GLOBAL_OFFSET
Projeksiyon düzlemini döndürdükten sonra efektin gerçekleştirdiği çeviri. Bu özellik şu şekilde tanımlanan bir D2D1_VECTOR_3F: (X, Y, Z). Birimler DIP cinsindendir.
Tür D2D1_VECTOR_3F.
Varsayılan değer: {0.0f, 0.0f, 0.0f}.
RotationOrigin
D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION_ORIGIN
Efektin gerçekleştirdiği döndürmenin orta noktası. Bu özellik şu şekilde tanımlanan bir D2D1_VECTOR_3F: (X, Y, Z). Birimler DIP cinsindendir.
Tür D2D1_VECTOR_3F.
Varsayılan değer: {0.0f, 0.0f, 0.0f}.
Rotasyon
D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION
Her eksen için döndürme açıları. Bu özellik şu şekilde tanımlanan bir D2D1_VECTOR_3F: (X, Y, Z). Birimler derece cinsindendir.
Tür D2D1_VECTOR_3F.
Varsayılan değer: {0.0f, 0.0f, 0.0f}.

İlişkilendirme modları

Sayım Açıklama
D2D1_3DPERSPECTIVETRANSFORM_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_3DPERSPECTIVETRANSFORM_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_3DPERSPECTIVETRANSFORM_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_3DPERSPECTIVETRANSFORM_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_3DPERSPECTIVETRANSFORM_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_3DPERSPECTIVETRANSFORM_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.

Çıktı bit eşlemi

Çıktı bit eşleminin boyutu, görüntüye uygulanan dönüştürme matrisine bağlıdır.

Etkisi dönüştürme işlemini gerçekleştirir ve ardından sonucun etrafına sınırlayıcı bir kutu uygular. Çıktı bit eşlemi sınırlayıcı kutunun boyutudur.

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