chapitre vii transformations visuelles des objets
TRANSCRIPT
Chapitre VIIChapitre VII
Transformations visuelles des objets
Chap. VII - Transformations visuelles des objets
2
Transformations visuellesTransformations visuelles
OBJECTIFSDécrire les projections pour représenter des volumes sur une surface d’affichageplane.
Décrire les transformations visuelles et leurs représentations matricielles.
PLAN DU CHAPITRETransformation 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
3
IntroductionIntroduction
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ïncidentavec 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 del'utilisateur dans l'espace 3D à celui du dispositif d'affichage dans l'espace 2D.
2D
3D
Chap. VII - Transformations visuelles des objets
4
Transformation de projectionTransformation de projection
Observateur
Exemple de projection
Une projection d'un objet est obtenue en faisant passer une droite en chaque pointd’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".
Une projection est une transformation permettantle passage d'un système de coordonnées dedimension n à un autre système decoordonnées de dimension inférieure à n.
Chap. VII - Transformations visuelles des objets
5
Types de projectionTypes 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,
le centre de projection est à une distance infinie.
Projection en perspective Projection en parallèle
Chap. VII - Transformations visuelles des objets
6
Projection géométrique planeProjection 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
7
Projection en perspectiveProjection 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 lecentre 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
8
Projection en parallèleProjection 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 projectionsont préservés.
Chap. VII - Transformations visuelles des objets
9
Classification des projections Classification des projections planesplanes
projection
parallèle perspective
orthographique oblique 1 point 2 points 3 points
multivue axonométrie cabinetcavalière
isométrie dimétrie trimétrie
Chap. VII - Transformations visuelles des objets
10
Projections en parallèleProjections en parallèle
Nous distinguons différents types de projections en parallèle selon les relations quiexistent 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
11
Projection parallèle Projection parallèle orthographique multi-vueorthographique multi-vue
plan de vue
plan de vue
Il s'agit de plusieurs projections orthographiques choisies de telle manière que le plande 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, celapeut être difficile d'en déduire la forme 3D de l'objet.
Chap. VII - Transformations visuelles des objets
12
Projection parallèle orthographique Projection parallèle orthographique axonométriqueaxonométrique
Une axonométrie est obtenue en choisissant un plan de vue de telle manière queplusieurs faces adjacentes de l'objet soient visibles.
plan de vue
Á l'intérieur de cette classe, une dernière subdivision peut être faite: celle-ci a traitaux angles que forme le plan de vue avec chacun des axes.
Chap. VII - Transformations visuelles des objets
13
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: tel que qortho - q = N.
Il nous reste donc à déterminer la constante .
En effectuant le produit scalaire de N par qortho - q ou par N, on obtient:
N*(qortho - q) = N = = c - N*q.On obtient donc: qortho = q + [c - N*q] N.
Projection parallèle orthographique d’un point qsur le plan d’équation N * P = c
(N est le vecteur normal unitaire à ce plan)
Chap. VII - Transformations visuelles des objets
14
Projection parallèle obliqueProjection parallèle oblique
Elles sont caractérisées par le fait que la direction de projection ne coïncide pas avecla 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 estarctan 2 = 63.4°.
Chap. VII - Transformations visuelles des objets
15
Projection parallèle oblique d’un Projection parallèle oblique d’un point Q sur le plan XZpoint Q sur le plan XZ
Y
Z
X
QQ ortho
Q oblique
Déterminer la projection en parallèle obliqued'un point Q (qx, qy, qz) sur le plan XZoù
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,
l'angle entre QQoblique et le plan XZ.
R
16
Projection parallèle oblique d’un Projection parallèle oblique d’un point Q sur le plan XZpoint Q sur le plan XZ
Qoblique = Q + QorthoR où la composante en y de Qoblique est 0.QorthoQQobliqueR
En termes de et de nous avons:Qoblique = Q + cos cos QobliqueQ|.
-sin cos sin
Y
Z
X
QQ ortho
Q oblique
R
Exemple :
|Qortho R| = cos cos |QobliqueQ|= |QobliqueQortho| |QorthoR| |QobliqueQ| |QobliqueQ| |QobliqueQortho|
Chap. VII - Transformations visuelles des objets
17
Projection parallèle oblique d’un Projection parallèle oblique d’un point Q sur le plan XZpoint Q sur le plan XZ
Puisque la composante en y de Qoblique est 0, il s'en suit que = qy / [ QobliqueQ| sin .
Qoblique = qx + cot cos qy 0
qz + cot sin qy
i) = = 90° C'est une projection parallèle orthographique.
ii) = 45° C'est une projection cavalière.
iii)cot = ½ C'est une projection cabinet.
Projection parallèle oblique (cas particuliers) :Projection parallèle oblique (cas particuliers) :
Chap. VII - Transformations visuelles des objets
18
Projections en perspectiveProjections en perspective
Nous distinguons 3 types de projections en perspective selon que le plan de vuecoupe 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
19
Projections en perspectiveProjections 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
20
Modèle visuel de base Modèle visuel de base
Projection dans le plan de vue
Passage de la fenêtre au viewport dans le système de coordonnées du dispositif graphique
Système de coordonnées 2D dans le plan de vue
Système de coordonnées 3D de l'utilisateur
Système de coordonnées 2D du dispositif graphique
Scène 3D fenêtre viewportSystème normalisé
entre 0 et 1
Chap. VII - Transformations visuelles des objets
21
Définition du plan de vue Définition du plan de vue
Afin de représenter sur un dispositif graphique bidimensionnel un objet 3D, celui-cidoit ê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
22
Définition de la fenêtre :Définition de la fenêtre :un rectangle délimitant ce qui doit être vu dans le plan de vueun rectangle délimitant ce qui doit être vu dans le plan de vue
axe U
axe V
N + R
view-up
R
N est la normale au plan de vueR est un point de référence
Système d'axes de la fenêtre
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 estdonné 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 vuei.e.le vecteur Q relativement au point de réf. R:
Q = “view-up” + (N + R)où = [N*(R - “view-up”)] / [N*(N + R)].
L'axe U est alors à 90° de l'axe V dans lesens 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).
Chap. VII - Transformations visuelles des objets
23
Définition du type de projectionDéfinition du type de projection
Le centre de projection ou la direction de projection sont définis à partir d'un point deré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
24
Modèle visuel simplifié :Modèle visuel simplifié :OBSERVE (position de l’observateur),OBSERVE (position de l’observateur),
INTÉRÊT (position où l’on regarde)INTÉRÊT (position où l’on regarde)
N est la normale au plan de vue
R est un point de référence
Principe de la perspective selon un observateur et un centre d'intérêt
Centre de projection (OBSERVE)
N
INTÉRÊT
plan de vue
R
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
25
Transformations visuelles:Transformations visuelles:projections parallèlesprojections 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
26
Transformations visuelles:Transformations visuelles:projections parallèlesprojections 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 auplan 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
où cos = “view-up”y / ||view-up||.
Y
X
-Z
view-up
Chap. VII - Transformations visuelles des objets
27
Transformations visuelles:Transformations visuelles:projections parallèlesprojections parallèles
Le système de coordonnées de l'oeil est normalement un système gauche (l'axe des Zest à 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èleVproj || = Pproj || SXY RZ RX RY
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 obliqueun cisaillement selon l'axe des Z des coefficients W1 et W2 où W1 et W2 sont lescomposantes 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 ).
Y
X
Z(0, 0, 1)
W 1
W 2
où 90 - = l'angle des projecteurs avec le plan de vue.
Chap. VII - Transformations visuelles des objets
28
Transformations visuelles:Transformations visuelles:perspectivesperspectives
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 vuedevienne 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'axedes Z.
6) Utiliser une transformation d'échelle afin que le volume de vue corresponde au troncde pyramide décrit précédemment.
Chap. VII - Transformations visuelles des objets
29
Transformations visuelles: perspectivesTransformations visuelles: perspectivespoint 6point 6
Y
Z
X
P
Q
C
Q = C = C = 0 z x y
Supposons que le centre de projection est placé sur la partie négative de l'axe des Z etle 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 retombonssur une projection orthographique avecQx = Px et Qy = Py. FIN