Effet de transformation 3D

Utilisez l’effet Transformation 3D pour appliquer une matrice de transformation 4x4 arbitraire à une image.

Cet effet applique la matrice (M ?) que vous fournissez aux sommets d’angle de l’image source ( [ x y z 1 ] ) à l’aide de ce calcul :

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

Le CLSID de cet effet est CLSID _ D2D13DTransform.

Exemple d’image

Avant
image avant la transformation.
Après
image après la transformation.
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();

Propriétés d’effet

Nom complet et énumération d’index Description
InterpolationMode
D2D1_3DTRANSFORM_PROP_INTERPOLATION_MODE
Mode d’interpolation utilisé par l’effet sur l’image. Il existe 5 modes de mise à l’échelle qui vont de la qualité et de la vitesse.
Le type est D2D1_3DTRANSFORM_INTERPOLATION_MODE.
La valeur par défaut est D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR.
BorderMode
D2D1_3DTRANSFORM_PROP_BORDER_MODE
Le mode utilisé pour calculer la bordure de l’image, soft ou Hard. Pour plus d’informations, consultez modes de bordure .
Le type est D2D1_BORDER_MODE.
La valeur par défaut est D2D1_BORDER_MODE_SOFT.
TransformMatrix
D2D1_3DTRANSFORM_PROP_TRANSFORM_MATRIX
Matrice de transformation 4x4 appliquée au plan de projection. Le calcul de matrice suivant est utilisé pour mapper des points d’un système de coordonnées 3D au système de coordonnées 2D transformé.
3D Depth MatrixOù :
X, Y, Z = coordonnées du plan de projection d’entrée
Mx, y = transformer les éléments de la matrice
X, Y, Z = coordonnées du plan de projection de sortie

Les éléments de matrice individuels ne sont pas limités et sont sans unité.
Le type est D2D1_MATRIX_4X4_F.
La valeur par défaut est Matrix4x4F (1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1).

Modes d’interpolation

Énumération Description
_Mode d’interpolation d2d1 3DTRANSFORM _ _ _ le plus proche _ voisin Échantillonne le point unique le plus proche et l’utilise. Ce mode utilise moins de temps de traitement, mais génère l’image de qualité la plus faible.
D2D1 _ _ mode d’interpolation _ 3DTRANSFORM _ linéaire Utilise un échantillon à quatre points et une interpolation linéaire. Ce mode utilise plus de temps de traitement que le mode voisin le plus proche, mais génère une image de qualité supérieure.
D2D1 _ 3DTRANSFORM _ mode d' _ interpolation _ cubique Utilise un exemple de noyau cubique 16 pour l’interpolation. Ce mode utilise le plus de temps de traitement, mais génère une image de qualité supérieure.
_Mode d’interpolation d2d1 3DTRANSFORM multi- _ _ _ _ exemple _ linéaire Utilise 4 échantillons linéaires au sein d’un même pixel pour une bonne anticrénelage. Ce mode est adapté à la réduction de la taille des images avec quelques pixels.
D2D1 _ _ mode d’interpolation _ 3DTRANSFORM _ anisotrope Utilise le filtrage anisotrope pour échantillonner un modèle en fonction de la forme transformée de l’image bitmap.

Notes

Si vous ne sélectionnez pas de mode, l’effet par défaut est D2D1 _ 3DTRANSFORM _ interpolation _ mode _ Linear.

Notes

Le mode anisotrope génère des mipmaps lors de la mise à l’échelle. Toutefois, si vous affectez à la propriété Cached la valeur true sur les effets entrés dans cet effet, le des mipmaps ne sera pas généré à chaque fois pour des images suffisamment petites.

Modes de bordure

Nom Description
_Mode de bordure d2d1 _ _ L’effet remplit l’image avec des pixels noirs transparents au fur et à mesure de l’interpolation, ce qui génère une bordure douce.
D2D1 _ mode de bordure _ _ difficile L’effet attache la sortie à la taille de l’image d’entrée.

Classe de matrice de transformation 4x4

Direct2D fournit une classe de matrice 4x4 pour fournir des fonctions d’assistance pour transformer l’image en 3 dimensions. Pour plus d’informations et pour obtenir une description de tous les membres de la classe, consultez la rubrique Matrix4x4F .

Fonction Description Matrice
Matrix4x4F :: Scale (X, Y, Z) Génère une matrice de transformation qui met à l’échelle le plan de projection dans la direction X, Y et/ou Z. matrice scale3d
SkewX (X) Génère une matrice de transformation qui incline le plan de projection dans l’axe X. Affiche une matrice inclinée sur l’axe X.
Skew (Y) Génère une matrice de transformation qui incline le plan de projection sur l’axe Y. matrice d’inclinaison
Translation (X, Y, Z) Génère une matrice de transformation qui convertit le plan de projection dans la direction X, Y ou Z. translater la matrice
RotationX (X) Génère une matrice de transformation qui fait pivoter le plan de projection autour de l’axe X. faire pivoter la matrice x
RotationY (Y) Génère une matrice de transformation qui fait pivoter le plan de projection autour de l’axe Y. faire pivoter la matrice y
Rotationt (Z) Génère une matrice de transformation qui fait pivoter le plan de projection autour de l’axe Z. pivoter la matrice z
PerspectiveProjection (D) Transformation de perspective avec une valeur de profondeur D. matrice de perspective
RotationArbitraryAxis (X, Y, Z, degrés) Fait pivoter le plan de projection autour de l’axe que vous spécifiez.

Spécifications

Condition requise Valeur
Client minimal pris en charge mise à jour Windows 8 et de plateforme pour les applications de bureau Windows 7 Windows les applications du windows [ | Store]
Serveur minimal pris en charge mise à jour Windows 8 et de plateforme pour les applications de bureau Windows 7 Windows les applications du windows [ | Store]
En-tête d2d1effects. h
Bibliothèque d2d1. lib, dxguid. lib

ID2D1Effect