Matrices Homogènes 4x4 pour la 3D (CM2.3) - PDF

Document Details

Uploaded by Deleted User

Kacper PLUTA

Tags

matrices homogènes projection perspective transformation affine modélisation 3D

Summary

Ce document présente des concepts liés aux matrices homogènes 4x4 dans le contexte de la modélisation 3D et de la projection en perspective. Il explique les transformations affines et fournit des explications avec des exemples.

Full Transcript

Math pour la 3D (CM2.3) Matrices homogènes et la projection perspective Kacper PLUTA ([email protected]) Certaines images proviennent d'un livre de Fletcher Dunn et Ian Parbery Matrices homogènes 4 x 4 Les vecteurs en 4D ont quatre composantes, les trois pr...

Math pour la 3D (CM2.3) Matrices homogènes et la projection perspective Kacper PLUTA ([email protected]) Certaines images proviennent d'un livre de Fletcher Dunn et Ian Parbery Matrices homogènes 4 x 4 Les vecteurs en 4D ont quatre composantes, les trois premières étant les composantes standard x, y et z. La quatrième composante d'un vecteur en 4D est w, parfois appelée la coordonnée homogène. Pour comprendre comment l’espace physique 3D est étendu en 4D, examinons d'abord les coordonnées homogènes en 2D, de la forme (x, y, w). Imaginons que le plan 2D standard existe en 3D au niveau du plan w = 1. Dans ce cas, le point physique 2D (x, y) est représenté dans l’espace homogène par (x, y, 1). Pour tous les points qui ne sont pas dans le plan w = 1, on peut calculer le point 2D correspondant en projetant le point sur le plan w = 1, en divisant par w. Ainsi, la coordonnée homogène (x, y, w) est convertie en point 2D physique (x/w, y/w). Matrices homogènes 4 x 4 La même idée de base s'applique pour l'extension de l'espace physique 3D à l'espace homogène 4D (même si c'est beaucoup plus difficile à visualiser). Les points physiques 3D se trouvent dans l'hyperplan en 4D où w = 1. Un point en 4D est de la forme (x, y, z, w), et nous projetons ce point sur cet hyperplan pour obtenir le point 3D physique correspondant (x/w, y/w, z/w). Lorsque w = 0, le point 4D représente un "point à l'infini," qui définit une direction plutôt qu'une position. Matrices homogènes 4 x 4 Les coordonnées homogènes et la projection par division par w sont intéressantes, mais pourquoi voudrions-nous utiliser l'espace 4D ? Il y a deux raisons principales d'utiliser des vecteurs 4D et des matrices 4 × 4. La première est principalement une commodité de notation. La seconde est que si nous mettons la valeur appropriée dans w, la division homogène produira une projection en perspective. Matrices homogènes 4 x 4 En raison de la nature de la multiplication de matrices, le vecteur nul est toujours transformé en vecteur nul, donc toute transformation représentable par une multiplication de matrices ne peut pas inclure de translation. C'est regrettable, car la multiplication et l'inversion de matrices sont des outils très pratiques pour composer des transformations complexes à partir de transformations simples et gérer les relations entre espaces de coordonnées imbriqués. Ce serait utile de trouver un moyen d'étendre la matrice de transformation standard 3 × 3 pour inclure des transformations avec translation. Matrices homogènes 4 x 4 Supposons pour le moment que w soit toujours égal à 1. Ainsi, le vecteur 3D standard [x,y,z]T sera toujours représenté en 4D comme [x, y, z, 1]T. Toute matrice de transformation 3 × 3 peut être représentée en 4D en utilisant la conversion Maintenant, la partie intéressante. En 4D, nous pouvons également exprimer la translation sous forme de multiplication matricielle, ce que nous ne pouvions pas faire en 3D. Matrices homogènes 4 x 4 Il est important de comprendre que cette multiplication de matrices reste une transformation linéaire. Elle ne peut pas représenter une "translation" en 4D, et le vecteur nul en 4D sera toujours transformé en vecteur nul en 4D. Ce qui permet ce procédé pour transformer des points en 3D, c'est que nous effectuons en réalité un cisaillement de l'espace 4D. L'hyperplan 4D correspondant à l'espace 3D ne passe pas par l'origine en 4D. Ainsi, en cisaillant l'espace 4D, on peut réaliser une translation en 3D. Matrices homogènes 4 x 4 Matrices homogènes 4 x 4 En définissant w à 0, nous pouvons éviter d'appliquer le traducteur, ce qui peut être utile. Transformations affines générales Avec de matrices 4 × 4, nous pouvons maintenant créer des transformations affines plus générales, qui incluent des translations, telles que : une rotation autour d’un axe qui ne passe pas par l'origine, une mise à l’échelle par rapport à un plan qui ne passe pas par l'origine, une réflexion par rapport à un plan qui ne passe pas par l'origine, et une projection orthographique sur un plan qui ne passe pas par l'origine. Transformations affines générales L’idée de base est de translater le centre de la transformation vers l'origine, d’effectuer la transformation linéaire, puis de remettre le centre à sa position initiale. Nous commençons par une matrice de translation T qui déplace le point p vers l'origine et une matrice de transformation linéaire R qui applique la transformation linéaire. La matrice de transformation affine finale A sera alors le produit matriciel T⁻¹ R T, où T⁻¹ est la matrice de translation inverse qui ramène le point à sa position d'origine après la transformation. Transformations affines générales L’idée de base est de translater le centre de la transformation vers l'origine, d’effectuer la transformation linéaire, puis de remettre le centre à sa position initiale. Nous commençons par une matrice de translation T qui déplace le point p vers l'origine et une matrice de transformation linéaire R qui applique la transformation linéaire. La matrice de transformation affine finale A sera alors le produit matriciel T⁻¹ R T, où T⁻¹ est la matrice de translation inverse qui ramène le point à sa position d'origine après la transformation. Matrices 4 x 4 et projection en perspective Nous pouvons utiliser la division par w pour résumer très succinctement l’importante opération géométrique de la projection en perspective. La projection perspective en 3D permet également de projeter sur un plan 2D, comme nous l'avons déjà vu pour la projection orthographique. Cependant, les projecteurs ne sont pas parallèles. En fait, ils se croisent en un point, appelé centre de projection. Matrices 4 x 4 et projection en perspective Le centre de projection est devant le plan de projection, les projecteurs se croisent avant de toucher le plan, et donc l’image est inversée. Quand on éloigne un objet du centre de projection, sa projection orthographique reste la même, mais sa projection en perspective devient plus petite. Projection en perspective : un appareil photo sténopé La projection en perspective est importante en graphisme car elle reproduit la façon dont notre vision fonctionne. En réalité, notre système visuel est plus complexe : nous avons deux yeux, et pour chaque œil, la rétine (notre surface de projection) n’est pas plate. Regardons donc un exemple plus simple : celui d’une caméra à sténopé. Une caméra à sténopé est une boîte avec un petit trou d’un côté. La lumière entre par ce trou (convergeant en un point) et frappe l’autre côté de la boîte, qui est le plan de projection. Projection en perspective : un appareil photo sténopé Examinons la géométrie de la projection en perspective d'une caméra à sténopé. Considérons un espace de coordonnées 3D avec l'origine au niveau du sténopé, l'axe z perpendiculaire au plan de projection, et les axes x et y parallèles au plan de projection. Projection en perspective : un appareil photo sténopé Voyons si nous pouvons calculer les coordonnées 3D de p′ pour un point p, projeté à travers le sténopé sur le plan de projection. Pour cela, nous devons connaître la distance d entre le sténopé (centre de projection, ici, c'est l’origine) et le plan de projection, défini par l'équation z = −d. Observons ensuite la scène de côté et résolvons pour y. Par des triangles semblables, nous pouvons voir que Projection en perspective : un appareil photo sténopé Comme une caméra à sténopé retourne l'image à l'envers, les signes de py et de py′ sont opposés. La valeur de px′ est calculée de manière similaire Projection en perspective : un appareil photo sténopé Les valeurs de z de tous les points projetés sont les mêmes : −d. Ainsi, le résultat de la projection d’un point p à travers l’origine sur un plan en z = −d est Projection en perspective : un appareil photo sténopé En pratique, les signes moins supplémentaires créent des complexités inutiles, et nous déplaçons donc le plan de projection vers z = d, qui se trouve devant le centre de projection. Évidemment, cela ne marcherait pas pour une vraie caméra à sténopé, car le trou laisse passer seulement la lumière d’un seul point. Mais dans un ordinateur, ça fonctionne sans problème. Matrices de projection en perspective Puisque la conversion de l’espace 4D en 3D implique une division, nous pouvons encoder une projection en perspective dans une matrice 4 × 4. L’idée principale est de trouver une équation pour p′ avec un dénominateur commun pour x, y et z, puis de définir une matrice 4 × 4 qui rendra w égal à ce dénominateur. On suppose que les points de départ ont w = 1. D’abord, nous modifions l’équation pour obtenir un dénominateur commun : Matrices de projection en perspective Pour diviser par ce dénominateur, on met le dénominateur dans w, donc le point 4D sera de la forme Nous avons donc besoin d'une matrice 4 × 4 qui multiplie un vecteur homogène [x, y, z, 1]T pour obtenir [x, y, z, z/d]T. Matrices de projection en perspective Nous avons donc besoin d'une matrice 4 × 4 qui multiplie un vecteur homogène [x, y, z, 1]T pour obtenir [x, y, z, z/d]T. La matrice qui permet cela est Matrices de projection en perspective La multiplication par notre matrice ne réalise pas vraiment la transformation en perspective ; elle calcule simplement le dénominateur approprié en w. Rappelons que la division de perspective se produit lorsque l'on passe de la 4D à la 3D en divisant par w. Utiliser des matrices pour représenter une projection peut sembler complexe, mais cela a des avantages. Avec des matrices 4 x 4, nous pouvons combiner les projections avec d'autres transformations et projeter sur des plans qui ne sont pas alignés avec les axes principaux. Les coordonnées homogènes ne sont pas strictement nécessaires, mais elles rendent la gestion et la manipulation des projections plus efficaces. Matrices de projection en perspective La matrice de projection dans un pipeline graphique (aussi appelée « matrice de découpage ») fait plus que copier z dans w. Elle diffère de notre version en deux points importants : La plupart des systèmes graphiques appliquent un facteur d’échelle pour que w = 1 au niveau du plan de découpage éloigné. Cela permet de répartir les valeurs de profondeur de manière optimale pour maximiser la précision du tampon de profondeur. La matrice de projection dans la plupart des systèmes graphiques ajuste également les valeurs x et y en fonction du champ de vision de la caméra.

Use Quizgecko on...
Browser
Browser