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 cartésiens : 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 souvenir de la direction des points positifs de l’axe z en pointant les doigts de votre main gauche ou droite dans la direction X positive et en les enroulant dans la direction y positive. La direction que pointe votre pouce vers vous 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 cartésiens gaucher et droitier

Direct3D utilise un système de coordonnées gaucher. Si vous portez 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 triangles 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, passez-les à Direct3D en tant que v0, v2, v1.
  • Utilisez la matrice d’affichage pour mettre à l’échelle de l’espace mondial de -1 dans le sens 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 D3DXMatrixOrthoRH pour définir la transformation de projection. Toutefois, veillez à utiliser la fonction D3DXMatrixLookAtRH correspondante, à inverser l’ordre de mise à l’arrière-plan et à disposer les mappages 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 rare que les applications de modélisation 3D utilisent 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 en calculant le 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 orientée « positivement » (ou droitier). Si le déterminant est négatif, la base est dite orientée « 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 droite/gauche » pour déterminer si un ensemble donné de vecteurs de base forme un système de coordonnées de droite ou de 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 géométrie