Effet de transformation de perspective 3D

Utilisez l’effet transformation de perspective 3D pour faire pivoter l’image en 3 dimensions comme si elle était affichée à partir d’une distance.

La transformation de perspective 3D est plus pratique que l’effet de transformation 3D, mais expose uniquement un sous-ensemble de la fonctionnalité. Vous pouvez calculer une matrice de transformation 3D complète et appliquer une matrice de transformation plus arbitraire à une image à l’aide de l’effet transformation 3D .

Le CLSID de cet effet est CLSID _ D2D13DPerspectiveTransform.

Exemple d’image

Avant
image avant l’effet.
After
image après l’effet.
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();

Propriétés d’effet

Nom complet et énumération d’index Description
InterpolationMode
_Mode d’interpolation d2d1 3DPERSPECTIVETRANSFORM _ prop _ _
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 _ 3DPERSPECTIVETRANSFORM _ interpolation _ mode.
La valeur par défaut est D2D1 _ 3DPERSPECTIVETRANSFORM _ interpolation _ mode _ Linear.
BorderMode
_Mode de bordure d2d1 3DPERSPECTIVETRANSFORM _ prop _ _
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 _ mode de bordure _ _ souple.
Profondeur
_Profondeur d2d1 3DPERSPECTIVETRANSFORM _ prop _
Distance entre le PerspectiveOrigin et le plan de projection. La valeur spécifiée dans DIP et doit être supérieure à 0.
Le type est FLOAT.
La valeur par défaut est 1000.0 f.
PerspectiveOrigin
Origine de la _ perspective d2d1 3DPERSPECTIVETRANSFORM _ prop _ _
L’emplacement X et Y de la visionneuse dans la scène 3D. Cette propriété est un _ vecteur d2d1 _ 2F défini en tant que : (point X, point Y). Les unités sont en DIP.
Vous définissez la valeur Z avec la propriété Depth .
Le type est D2D1 _ Vector _ 2F.
La valeur par défaut est {0.0 f, 0.0 f}.
LocalOffset
Décalage local de D2D1 _ 3DPERSPECTIVETRANSFORM _ prop _ _
Translation que l’effet effectue avant de faire pivoter le plan de projection. Cette propriété est un _ vecteur d2d1 _ 3F défini en tant que : (X, Y, Z). Les unités sont en DIP.
Le type est D2D1 _ Vector _ 3F.
La valeur par défaut est {0.0 f, 0.0 f, 0.0 f}.
GlobalOffset
_ _ _ Décalage global d2d1 3DPERSPECTIVETRANSFORM _ prop
Translation que l’effet effectue après avoir fait pivoter le plan de projection. Cette propriété est un _ vecteur d2d1 _ 3F défini en tant que : (X, Y, Z). Les unités sont en DIP.
Le type est D2D1 _ Vector _ 3F.
La valeur par défaut est {0.0 f, 0.0 f, 0.0 f}.
RotationOrigin
_Origine de rotation d2d1 3DPERSPECTIVETRANSFORM _ prop _ _
Point central de la rotation effectuée par l’effet. Cette propriété est un _ vecteur d2d1 _ 3F défini en tant que : (X, Y, Z). Les unités sont en DIP.
Le type est D2D1 _ Vector _ 3F.
La valeur par défaut est {0.0 f, 0.0 f, 0.0 f}.
Rotation
_Rotation d2d1 3DPERSPECTIVETRANSFORM _ prop _
Angles de rotation pour chaque axe. Cette propriété est un _ vecteur d2d1 _ 3F défini en tant que : (X, Y, Z). Les unités sont en degrés.
Le type est D2D1 _ Vector _ 3F.
La valeur par défaut est {0.0 f, 0.0 f, 0.0 f}.

Modes d’interpolation

Énumération Description
_Mode d’interpolation d2d1 3DPERSPECTIVETRANSFORM _ _ _ 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 _ 3DPERSPECTIVETRANSFORM _ 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 _ 3DPERSPECTIVETRANSFORM _ 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 3DPERSPECTIVETRANSFORM 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 _ 3DPERSPECTIVETRANSFORM _ 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 _ 3DPERSPECTIVETRANSFORM _ 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.

Bitmap de sortie

La taille de l’image bitmap de sortie dépend de la matrice de transformation appliquée à l’image.

L’effet exécute l’opération de transformation, puis applique un cadre englobant autour du résultat. La bitmap de sortie correspond à la taille du cadre englobant.

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