Partager via


Transformation de la vue

Une transformation de vue localise la visionneuse dans l’espace du monde, transformant les sommets en espace de caméra. Dans l’espace de la caméra, l’appareil photo ou la visionneuse est à l’origine, en regardant dans la direction z positive. La matrice d’affichage déplace les objets dans le monde autour de la position d’une caméra - l’origine de l’espace de la caméra - et l’orientation. Direct3D utilise un système de coordonnées gaucher, donc z est positif dans une scène.

Il existe de nombreuses façons de créer une matrice d’affichage. Dans tous les cas, la caméra a une position et une orientation logiques dans l’espace mondial qui est utilisé comme point de départ pour créer une matrice de vue qui sera appliquée aux modèles dans une scène. La matrice d’affichage traduit et fait pivoter les objets pour les placer dans l’espace de la caméra, où la caméra est à l’origine. Une façon de créer une matrice d’affichage consiste à combiner une matrice de traduction avec des matrices de rotation pour chaque axe. Dans cette approche, l’équation de matrice générale suivante s’applique.

équation de la transformation d’affichage

Dans cette formule, V est la matrice de vue en cours de création, T est une matrice de traduction qui repositionne les objets dans le monde, et Rₓ à Rz sont des matrices de rotation qui font pivoter des objets le long de l’axe x, y et z. Les matrices de traduction et de rotation sont basées sur la position logique et l’orientation de la caméra dans l’espace mondial. Ainsi, si la position logique de la caméra dans le monde est <de 10 20 100>, l’objectif de la matrice de traduction est de déplacer des objets -10 unités le long de l’axe x, -20 unités le long de l’axe y, et -100 unités le long de l’axe z. Les matrices de rotation de la formule sont basées sur l’orientation de l’appareil photo, en termes de la rotation des axes de l’espace de la caméra hors de l’alignement avec l’espace mondial. Par exemple, si la caméra mentionnée précédemment pointe vers le bas, son axe z est de 90 degrés (pi/2 radians) hors alignement avec l’axe z de l’espace mondial, comme illustré dans l’illustration suivante.

illustration de l’espace d’affichage de la caméra par rapport à l’espace mondial

Les matrices de rotation appliquent des rotations égales, mais opposées, de magnitude aux modèles de la scène. La matrice d’affichage de cette caméra comprend une rotation de -90 degrés autour de l’axe x. La matrice de rotation est combinée à la matrice de traduction pour créer une matrice d’affichage qui ajuste la position et l’orientation des objets de la scène afin que leur haut soit exposé à la caméra, ce qui donne l’apparence que la caméra est au-dessus du modèle.

Configuration d’une matrice d’affichage

Direct3D utilise les matrices mondiales et d’affichage pour configurer plusieurs structures de données internes. Chaque fois que vous définissez une nouvelle matrice de monde ou d’affichage, le système recalcule les structures internes associées. La définition de ces matrices est fréquemment fastidieuse en matière de calcul. Vous pouvez réduire le nombre de calculs requis en concaténant vos matrices de monde et d’affichage dans une matrice d’affichage mondial que vous définissez comme matrice mondiale, puis en définissant la matrice d’affichage sur l’identité. Conservez les copies mises en cache des matrices de monde et d’affichage individuelles que vous pouvez modifier, concaténer et réinitialiser la matrice mondiale en fonction des besoins.

Transformations