Coordonnées mondiales, coordonnées normalisées de l'appareil et coordonnées de l'appareil

13

Puis-je connaître la différence entre les trois? Un bon exemple s'additionnerait aussi.

Anish Sharma
la source

Réponses:

20

Les coordonnées mondiales sont à la base de votre monde de jeu. Les positions 3D de tous les objets sont finalement spécifiées dans l'espace mondial, soit directement, soit via une hiérarchie de nœuds. Le sol, les bâtiments, les arbres et autres objets fixes seront fixés dans l'espace mondial. Les calculs de gameplay et la physique seront effectués dans l'espace mondial (peut-être avec un recentrage local à des fins de précision, si le monde est grand). Les axes des coordonnées mondiales sont souvent utilisés pour représenter les directions de la boussole, telles que X = est, Y = nord, Z = haut.

Les coordonnées locales sont attachées à un objet (il y a un espace de coordonnées locales pour chaque objet). Les axes peuvent représenter quelque chose de significatif pour l'objet, par exemple X = avant, Y = gauche, Z = haut pour un objet tel qu'un personnage, un véhicule, un pistolet, etc. qui a une orientation inhérente. À mesure que l'objet se déplace, la relation entre l'espace local et l'espace mondial (exprimée par une matrice de transformation) change. Par exemple, si vous retournez votre voiture à l'envers, son axe Z local ("haut" dans l'espace local) pointe désormais "bas" dans l'espace mondial.

Les coordonnées de la caméra ou de la vue sont des coordonnées locales attachées à la caméra. Il s'agit toujours d'un système de coordonnées 3D, sans aucune projection ou quoi que ce soit, mais avec les axes alignés pour correspondre à l'orientation de l'écran: généralement X = droite, Y = haut, Z = arrière. La transformation du monde en espace de vue est souvent connue sous le nom de «matrice de vue».

Les coordonnées de l'espace d'écrêtage sont les coordonnées produites par un vertex shader: coordonnées auxquelles la matrice de projection a été appliquée, mais pas la division en perspective. Il s'agit d'un espace 4D (homogène). (Le monde, l'espace local et l'espace de vue sont en 3D avec un w implicite = 1.) Il est ainsi nommé parce que c'est l'espace dans lequel l'écrêtage et l'abattage de la vue ont lieu (conceptuellement, au moins).

Les coordonnées de périphérique normalisées , également connues sous le nom d '"espace d'écran", bien que ce terme soit un peu vague, sont ce que vous obtenez après avoir appliqué la division en perspective pour découper les coordonnées de l'espace. Les coordonnées 3D représentent maintenant les positions 2D des points à l'écran, avec X et Y dans [−1, 1], ainsi que la profondeur dans la plage de tampon de profondeur, Z dans [0, 1] pour D3D ou [−1, 1 ] pour OpenGL. L'orientation de l'axe est X = droite, Y = haut et Z peut être vers l'avant ou vers l'arrière selon la configuration du tampon de profondeur.

Les coordonnées du périphérique sont des coordonnées de pixels 2D dans la cible de rendu, avec (0, 0) dans le coin supérieur gauche, X = droite, Y = bas. On arrive aux coordonnées de l'appareil en appliquant la transformation de la fenêtre aux coordonnées de l'appareil normalisées; la fenêtre contrôle le décalage et la résolution en pixels de l'image qui apparaît dans la cible de rendu. Une chose qui est importante à noter est que les coordonnées du périphérique ne sont pas des valeurs entières; ce ne sont pas des indices de pixels. Il s'agit d'un système de coordonnées 2D continu, utilisant des unités de taille pixel, mais dans lequel les valeurs fractionnaires (sous-pixels) sont parfaitement valides. Les centres des pixels se trouvent à 0,5 décalages (comme 0,5, 1,5, 2,5, ...) dans ce système de coordonnées.

Nathan Reed
la source