Transformations visuelles des objets Chapitre VII Transformations visuelles des objets
Transformations visuelles OBJECTIFS Décrire les projections pour représenter des volumes sur une surface d’affichage plane. Décrire les transformations visuelles et leurs représentations matricielles. PLAN DU CHAPITRE Transformation de projection Modèle visuel de base Modèle visuel simplifié : observateur et centre d’intérêt Transformations visuelles Chap. VII - Transformations visuelles des objets
Chap. VII - Transformations visuelles des objets Introduction Le modèle visuel dans l'espace à 3 dimensions est plus complexe que le modèle 2D. Il s'agit - de définir simplement une fenêtre (rectangulaire) bi-dimensionnelle, - de découper la scène selon celle-ci et - de convertir les coordonnées “utilisateur” en coordonnées “écran”. La difficulté supplémentaire provient du fait que les dispositifs d'affichage coïncident avec un plan (un objet 3D dégénéré). L'affichage d'objets 3D se fait donc grâce à une projection de ceux-ci sur un plan (de vue). Ce sont des transformations qui permettent de passer du système de coordonnées de l'utilisateur dans l'espace 3D à celui du dispositif d'affichage dans l'espace 2D. 2D 3D Chap. VII - Transformations visuelles des objets
Transformation de projection Une projection est une transformation permettant le passage d'un système de coordonnées de dimension n à un autre système de coordonnées de dimension inférieure à n. Exemple de projection Une projection d'un objet est obtenue en faisant passer une droite en chaque point d’un objet et en cherchant les intersections avec le plan de vue. Ces droites appelées "projecteurs" émanent toutes d'un même point: le "centre de projection". Chap. VII - Transformations visuelles des objets
Chap. VII - Transformations visuelles des objets Types de projection 2 grands types de projection : soit une perspective, le centre de projection est à une distance finie du plan de vision soit une projection parallèle, distance infinie. Chap. VII - Transformations visuelles des objets
Projection géométrique plane La projection s'effectue sur un plan et non pas sur une surface courbe; de plus, les projecteurs sont des droites plutôt que des courbes quelconques. Dans le cas d'une perspective, toutes les lignes émanent d'un seul point, le centre de projection. Pour ce qui est d'une projection parallèle, toutes les droites sont parallèles à une direction de projection donnée. Une projection en perspective où le centre de projection est situé à l'infini est équivalente à une projection en parallèle. Note : Chap. VII - Transformations visuelles des objets
Projection en perspective La projection en perspective se rapproche du système visuel humain. Cela permet d'atteindre un certain niveau de réalisme. La taille d'un objet projeté est inversement proportionnelle à la distance entre le centre de projection et l'objet. Nous ne devons pas choisir la projection en perspective si nous sommes intéressés à la forme exacte des objets et à connaître leur dimension. Aucune mesure de distance ne peut être prise sur l'objet projeté. Des segments de droite parallèles ne sont plus parallèles après projection. Chap. VII - Transformations visuelles des objets
Projection en parallèle La projection en parallèle est moins réaliste mais elle fournit des mesures exactes. Des segments parallèles demeurent parallèles après projection. Les angles appartenant aux faces de l’objet qui sont parallèles au plan de projection sont préservés. Chap. VII - Transformations visuelles des objets
Classification des projections planes Chap. VII - Transformations visuelles des objets
Projections en parallèle Nous distinguons différents types de projections en parallèle selon les relations qui existent entre la direction de projection et la normale au plan de vue. Lorsque les projecteurs sont perpendiculaires au plan de vue (la direction de projection est normale au plan de vision), nous avons une projection parallèle orthographique. Autrement, nous avons une projection parallèle oblique. Chap. VII - Transformations visuelles des objets
Projection parallèle orthographique multi-vue Il s'agit de plusieurs projections orthographiques choisies de telle manière que le plan de vue soit parallèle à une face différente de l'objet. Même si plusieurs projections du même objet sont présentées simultanément, cela peut être difficile d'en déduire la forme 3D de l'objet. Chap. VII - Transformations visuelles des objets
Projection parallèle orthographique axonométrique Une axonométrie est obtenue en choisissant un plan de vue de telle manière que plusieurs faces adjacentes de l'objet soient visibles. Á l'intérieur de cette classe, une dernière subdivision peut être faite: celle-ci a trait aux angles que forme le plan de vue avec chacun des axes.
Projection parallèle orthographique d’un point q sur le plan d’équation N * P = c (N est le vecteur normal unitaire à ce plan) Il s'agit de déterminer le point qortho qui satisfait l'équation (qortho - q) x N = 0. Deux cas peuvent se produire: a) q appartient au plan. Il s'en suit que qortho = q. b) q n'appartient pas au plan. Nous pouvons réécrire l'équation précédente comme suit: $l tel que qortho - q = lN. Il nous reste donc à déterminer la constante l. En effectuant le produit scalaire de N par qortho - q ou par N, on obtient: N*(qortho - q) = l N*N = l = c - N*q. On obtient donc: qortho = q + [c - N*q] N.
Projection parallèle oblique Elles sont caractérisées par le fait que la direction de projection ne coïncide pas avec la normale au plan de vue. L'angle des projecteurs avec le plan de vision peut être choisi comme suit: i) projection cavalière L'angle entre la direction de projection et la normale au plan de vue est de 45°. ii) projection cabinet L'angle entre la direction de projection et la normale au plan de vue est arctan 2 = 63.4°. Chap. VII - Transformations visuelles des objets
Projection parallèle oblique d’un point Q sur le plan XZ Déterminer la projection en parallèle oblique d'un point Q º (qx, qy, qz) sur le plan XZ où Qoblique est le point recherché, QQoblique est un projecteur, Qortho º (qx, 0, qz) est la projection // orthographique de Q sur le plan XZ. µ l'angle entre la projection de QQoblique sur le plan XZ et QorthoR, b l'angle entre QQoblique et le plan XZ. R Chap. VII - Transformations visuelles des objets
Projection parallèle oblique d’un point Q sur le plan XZ Qoblique = Q + l QorthoR où la composante en y de Qoblique est 0. QorthoQ QobliqueR En termes de µ et de b, nous avons: Qoblique = Q + l cos b cos µ |QobliqueQ|. -sin b cos b sin µ Exemple : |Qortho R| = cos cos |QobliqueQ| = |QobliqueQortho| |QorthoR| |QobliqueQ| |QobliqueQ| |QobliqueQortho| R
Projection parallèle oblique d’un point Q sur le plan XZ Puisque la composante en y de Qoblique est 0, il s'en suit que l = qy / [ |QobliqueQ| sin b]. Qoblique = qx + cot b cos µ qy qz + cot b sin µ qy Projection parallèle oblique (cas particuliers) : i) µ = b = 90° C'est une projection parallèle orthographique. ii) b = 45° C'est une projection cavalière. iii) cot b = ½ C'est une projection cabinet. Chap. VII - Transformations visuelles des objets
Projections en perspective Nous distinguons 3 types de projections en perspective selon que le plan de vue coupe 1, 2 ou 3 axes. a) perspective à 1 point Nx + Ny +Nz ≠ 0, |Nx * Ny | + |Nx * Nz | + |Ny * Nz | = 0 b) perspective à 2 points Nx * Ny * Nz = 0, |Nx * Ny | + |Nx * Nz | + |Ny * Nz | ≠ 0 c) perspective à 3 points Nx * Ny * Nz ≠ 0. Chap. VII - Transformations visuelles des objets
Projections en perspective D'autres paramètres que la normale au plan de vue jouent un rôle important: - un point de référence P à un objet, - le centre de projection C. 1) la hauteur du centre de projection par rapport à l'objet. si Py > Cy l'horizon est au-dessous de l'objet. si Py = Cy l'horizon est centré. si Py < Cy l'horizon est au-dessus de l'objet. 2) la distance du centre de projection à l'objet. Si cette distance est petite, les profondeurs sont exagérées. Dans le cas contraire, l'objet semble plat. 3) la position horizontale du centre de projection par rapport à l'objet. Ceci permet d'attirer l'attention sur une face d'un objet plutôt qu'une autre, en rapprochant le centre de celle-ci latéralement. 4) la distance du plan de vue à l'objet : permet de produire un effet de zoom. Chap. VII - Transformations visuelles des objets
Chap. VII - Transformations visuelles des objets Modèle visuel de base Scène 3D fenêtre viewport Système normalisé entre 0 et 1 Chap. VII - Transformations visuelles des objets
Définition du plan de vue Afin de représenter sur un dispositif graphique bidimensionnel un objet 3D, celui-ci doit être projeté sur un plan appelé plan de vue. Pour fixer ce plan, on fait appel à 3 données: ° un point de référence visuel R sur l'objet ou proche de l'objet, ° un vecteur normal N au plan ° la distance d du point de référence au plan. L'équation du plan de vue est N*P = N*R + d(N*N)1/2, où P est un point de ce plan. N*P = N * (R + N) où || R + N - R || = d, || N || = d = d / || N ||. Chap. VII - Transformations visuelles des objets
Définition de la fenêtre : un rectangle délimitant ce qui doit être vu dans le plan de vue La fenêtre est spécifiée selon un système d'axes UVW propre au plan de vue. Pour le déterminer, l'utilisateur fournit un vecteur 3D appelé “view-up” lequel est donné par rapport au point de référence R. L'axe V est donné par la projection du vecteur “view-up” perpendiculairement au plan de vue i.e. le vecteur Q relativement au point de réf. R: Q = “view-up” + l(N + R) où l = [N*(R - “view-up”)] / [N*(N + R)]. L'axe U est alors à 90° de l'axe V dans le sens des aiguilles d'une montre: le vecteur (N + R) x Q relativement à R. La fenêtre est définie dans le plan de vue grâce aux sommets extrêmes (umin, vmin) et (umax, vmax).
Définition du type de projection Le centre de projection ou la direction de projection sont définis à partir d'un point de référence de la projection, désigné par RP. Si la projection est une perspective, alors RP est le centre de projection. Autrement, la direction de projection désignée par DP correspond à CF - RP. Il faut noter que RP est défini dans le système d'axes de la fenêtre. Note : Centre de la fenêtre Chap. VII - Transformations visuelles des objets
Chap. VII - Transformations visuelles des objets Modèle visuel simplifié : OBSERVE (position de l’observateur), INTÉRÊT (position où l’on regarde) Hypothèses pour définir les paramètres visuels: - le plan de vue est à la direction du regard - N = INTÉRÊT - OBSERVE. - R = OBSERVE+[DOBSERVE, plan de vue / ||N||] N dist(centre de projection, plan de vue) - centre de projection OBSERVE - point de référence plan de vue - l'origine du système d’axes est R. Chap. VII - Transformations visuelles des objets
Transformations visuelles: projections parallèles Nous pouvons ramener le problème aux 3 opérations de base suivantes: a) translation à l'origine du plan de vue, b) rotation du plan de vue pour l'amener à coïncider avec le plan XY, c) projection sur le plan de vue. On représente matriciellement toute transformation visuelle de ce type par : Vproj || = Pproj || RXY Tplan de vue où Vproj || est la matrice de transformation visuelle dans le cas de projections parallèles, Tplan de vue est la matrice de translation à l'origine du plan de vue, RXY est la matrice de rotation du plan de vue pour l'amener à coïncider avec XY Pproj || est la matrice de projection parallèle. Chap. VII - Transformations visuelles des objets
Transformations visuelles: projections parallèles Soient un point de référence visuel R, un vecteur normal N au plan de vue la distance d du point de référence au plan, alors R + [d / (N*N)1/2] N est un point du plan de vue. Par conséquent, Tplan de vue correspond à T-R - [d / (N*N)1/2] N. La rotation que nous allons effectuer consiste à transformer le vecteur normal N au plan de vue de telle manière qu'il coïncide avec l'axe négatif des Z. La projection du vecteur “view-up” sur le plan de vue doit correspondre à l'axe des Y: il s'agit d'effectuer une rotation autour de l'axe des Z d'un angle g où cos g = “view-up”y / ||view-up||. Chap. VII - Transformations visuelles des objets
Transformations visuelles: projections parallèles Le système de coordonnées de l'oeil est normalement un système gauche (l'axe des Z est à l'arrière) tandis que celui du monde réel est généralement un système droit, il faut appliquer une symétrie selon le plan XY: SXY = E(1, 1, -1, 1). On obtient donc la matrice de transformation parallèle Vproj || = Pproj || SXY RZg RXb RYa T-R - [d / (N*N)1/2] N où Pproj || est la matrice de projection parallèle. - la projection est parallèle orthographique (le plan de vue coïncide avec XY) Pproj || = E(1, 1, 0, 1). - la projection est oblique un cisaillement selon l'axe des Z des coefficients W1 et W2 où W1 et W2 sont les composantes sur le plan de vue de la projection oblique du vecteur unitaire selon Z: Pproj || = E(1, 1, 0, 1).CZ(W1, W2) = CZ(cot cos , cot sin ). Chap. VII - Transformations visuelles des objets
Transformations visuelles: perspectives Considérons les grandes étapes de ce traitement: 1) Effectuer une translation qui amène le point de référence à l'origine. 2) Effectuer une rotation pour amener le vecteur normal au plan de vue à être parallèle à l'axe des Z négatif. 3) Effectuer une rotation afin que la projection du vecteur “view-up” sur le plan de vue devienne l'axe des Y. 4) Passer du système droit du monde réel au système gauche de la visualisation. 5) Effectuer un cisaillement afin que la ligne centrale du volume de vue devienne l'axe des Z. 6) Utiliser une transformation d'échelle afin que le volume de vue corresponde au tronc de pyramide décrit précédemment. Chap. VII - Transformations visuelles des objets
Transformations visuelles: perspectives point 6 Supposons que le centre de projection est placé sur la partie négative de l'axe des Z et le plan de vue coïncide avec le plan XY. Nous considérons un point P et sa projection Q. Nous obtenons: Qx = Px Cz / (Cz - Pz) Qy = Py Cz / (Cz - Pz). ce qui nous donne la transformation suivante: E(Cz / (Cz - Pz), Cz / (Cz - Pz), 0, 1). Lorsque le centre de projection n'est pas sur l'axe des Z, il s'agit d'appliquer au préalable une translation de (-Cx, -Cy, 0). En faisant tendre Cz vers l'infini, nous retombons sur une projection orthographique avec Qx = Px et Qy = Py. Chap. VII - Transformations visuelles des objets FIN