Partager via


Systèmes de coordonnées (Direct3D 9)

En règle générale, les applications graphiques 3D utilisent deux types de systèmes de coordonnées cartesiens : gaucher et droitier. Dans les deux systèmes de coordonnées, l’axe x positif pointe vers la droite et l’axe y positif pointe vers le haut. Vous pouvez vous rappeler quelle direction l’axe z positif pointe en pointant les doigts de votre main gauche ou droite dans la direction x positive et en les fringant dans la direction y positive. La direction de vos points de pouce, vers ou loin de vous, est la direction que l’axe z positif pointe pour ce système de coordonnées. L’illustration suivante montre ces deux systèmes de coordonnées.

illustration des systèmes de coordonnées cartesiens gauchers et droitiers

Direct3D utilise un système de coordonnées gaucher. Si vous transférez une application basée sur un système de coordonnées droitier, vous devez apporter deux modifications aux données transmises à Direct3D.

  • Retournez l’ordre des sommets de triangle afin que le système les traverse dans le sens des aiguilles d’une montre à partir de l’avant. En d’autres termes, si les sommets sont v0, v1, v2, passent-les à Direct3D en tant que v0, v2, v1.
  • Utilisez la matrice d’affichage pour mettre à l’échelle l’espace du monde en -1 dans la direction z. Pour ce faire, retournez le signe du membre _31, _32, _33 et _34 de la structure D3DMATRIX que vous utilisez pour votre matrice d’affichage.

Pour obtenir ce qui équivaut à un monde droitier, utilisez les fonctions D3DXMatrixPerspectiveRH et fonctions D3DXMatrixOrthoRH pour définir la transformation de projection. Toutefois, veillez à utiliser la fonction D3DXMatrixLookAtRH correspondante, à inverser l’ordre de culage de la face inverse et à mettre en place les cartes de cube en conséquence.

Bien que les coordonnées gaucher et droite soient les systèmes les plus courants, il existe divers autres systèmes de coordonnées utilisés dans les logiciels 3D. Par exemple, il n’est pas inhabituel pour les applications de modélisation 3D d’utiliser un système de coordonnées dans lequel l’axe y pointe vers ou loin de la visionneuse, et l’axe z pointe vers le haut.

Formellement, l’orientation d’un ensemble de vecteurs de base (c’est-à-dire un système de coordonnées) peut être trouvée par le calcul de la déterminant de la matrice définie par l’ensemble particulier de vecteurs de base. Si le déterminant est positif, la base est dite « positive » orientée (ou droitier). Si le déterminant est négatif, la base est dite « négativement » (ou gaucher). Pour obtenir une explication de ce qu’est un déterminant, consultez n’importe quelle ressource d’algèbre linéaire.

De manière informelle, vous pouvez utiliser la « règle de droite/gauche » pour déterminer si un ensemble donné de vecteurs de base forme un système de coordonnées de droite ou gauche.

Les opérations essentielles effectuées sur les objets définis dans un système de coordonnées 3D sont la traduction, la rotation et la mise à l’échelle. Vous pouvez combiner ces transformations de base pour créer une matrice de transformation. Pour plus d’informations, consultez Transformations (Direct3D 9).

Lorsque vous combinez ces opérations, les résultats ne sont pas commutatifs ; l’ordre dans lequel vous multipliez les matrices est important.

systèmes de coordonnées et geometry