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
- Propriétés d’effet
- Classe de matrice de transformation 4x4
- Configuration requise
- Rubriques connexes
Exemple d’image
| Avant |
|---|
![]() |
| Après |
![]() |
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é. Où :
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. | ![]() |
| SkewX (X) | Génère une matrice de transformation qui incline le plan de projection dans l’axe X. | ![]() |
| Skew (Y) | Génère une matrice de transformation qui incline le plan de projection sur l’axe Y. | ![]() |
| Translation (X, Y, Z) | Génère une matrice de transformation qui convertit le plan de projection dans la direction X, Y ou Z. | ![]() |
| RotationX (X) | Génère une matrice de transformation qui fait pivoter le plan de projection autour de l’axe X. | ![]() |
| RotationY (Y) | Génère une matrice de transformation qui fait pivoter le plan de projection autour de l’axe Y. | ![]() |
| Rotationt (Z) | Génère une matrice de transformation qui fait pivoter le plan de projection autour de l’axe Z. | ![]() |
| PerspectiveProjection (D) | Transformation de perspective avec une valeur de profondeur D. | ![]() |
| 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 |


Où :






