Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Jean Fruitet
Jean.Fruitet@univ-mlv.fr
Centre d'InfoGraphie
Universit de Marne-La-Valle
1. INTRODUCTION A L'INFOGRAPHIE
2. NOTIONS GEOMETRIQUES
3. PROJECTIONS
16
23
5. FENETRAGE
30
6. ESTOMPAGE
33
BIBLIOGRAPHIE
36
37
1.
INTRODUCTION
Jean FRUITET
UMLV - 1995
Primitive
Point
Intervalle
Point 2D
Segment
Polyligne
Arc
Courbe
Triangle
Bote
Polygone
2D raster
(espace
discrtis)
3D continu
Pixel
Tache
(connexit 4, 8)
Point 3D
Courbe gauche
Surface plane
Surface gauche
Facettes
Polydres
Volumes :
Sphre, cube, cylindre,
cne
3D raster
Voxel
Champ scalaire
Reprsentation
Semi de points
Intervalle
- Nuage de points
- Filaire
- Polygones
remplis
Structure de donnes
Liste de points
Listes d'intervalles
Ensembles
Listes
Arbres (Quad-Tree)
Fonctions
- explicites
- implicites
paramtriques
Coniques
Splines 2D
Fractales
Simplexe
Segment
- Filaire
- Par facettes
polygonales
remplies.
- Volumique
B-REP:
Liste de
- Sommets
- Artes
- Faces
Struct. hirarchique
- Octree
- Arbre CSG
MNT
Quadriques
Splines 3D
Fractales
Ttradre
Triangle
Infographie
2
Jean FRUITET
UMLV - 1995
ESPACE OBJET
UNIVERS
Modlisation
2
X + Y
=1
IR x IR
[0..1] x [0..1]
Primitives graphiques
Transformations gomtriques
3D --> 2D
Transformations de visualisation
Continu --> Discret
ESPACE ECRAN
menu
message
CERVEAU
ESPACE OBJET
UNIVERS
Rtroaction
2
X + Y =1
IR x IR
[0..1] x [0..1]
Primitives graphiques
Transformations gomtriques
3D --> 2D
Transformations de visualisation
Continu --> Discret
Interface
Clavier
Souris
Tablette digitaliser
Menus / Langage de commande
menu
R++
R-dX
dY
Infographie
3
Jean FRUITET
UMLV - 1995
Unit centrale
Mmoire VIDEO
Mmoire
UAL
+
Compt. ordinal
+
Registres
Mmoire d'affichage
Rafraichissement
24 fois par secondes au moins
CRT
Pour simuler l'animation, il faut afficher 24 images par secondes en respectant un rfrentiel culturel
(mtaphore de la camra), un modle physique simplifi (lois de l'optique et de l'lectromagntisme) et
physiologique (vision des couleurs).
Infographie
4
Jean FRUITET
UMLV - 1995
Modlisation
ESPACE OBJET
UNIVERS
Modlisation gomtrique par les bords (B-Rep)
Points / Vecteurs / Polygones / Polydres
Listes de Sommets / Artes / Faces
Primitives graphiques
Modlisation hirarchique
Quad-Tree / Octree
Affichage
Arbre CSG
Description de scne (langage symbolique)
Transformations gomtriques
Transformations de visualisation
3D --> 2D
Projection perspective
Courbes et surfaces
Fonctions explicites / implicites
Coniques / quadriques / Splines 2D / Splines 3D
MNT
Triangulation
Physiologie de la vision
Cnes et batonnets
Illusions d'optique
Observateur
Modle RVB
Modle ITS
ESPACE ECRAN
menu
Clture et Fentrage
Cohen & Sutherland
Cyrus Beck, ...
Localisation
et remplissage
Lois de l'optique
Rendu raliste
Interfaces
Normes graphiques
Polling / Events
Menus droulants
X-Windows
Systmes graphiques
Mmoire Vido / DAC / CRT
Cartes graphiques
Tables de couleurs (LUT)
Priphriques
Infographie
5
Jean FRUITET
UMLV - 1995
Modle gomtrique :
Fonction explicite
y=cos(x) sur l'intervalle ] , + [
Fonction paramtrique x = t; y = cos(t) sur l'intervalle ] , + [
Vu la parit et la priodicit de la fonction, on peut :
se ramener l'intervalle [ , + [
donner la fonction en extension, en prenant par exemple N=12 chantillons sur l'intervalle
,
[
[
Indice
x
y=cos(x)
0
-
-1
1
-5 /6
- 3 / 2
2
- /3
-1/2
...
i
(2 / N)*i -
...
N = 12
+
-1
Infographie
6
Jean FRUITET
UMLV - 1995
xmax, ymax
ESPACE OBJET
y
1
M (x, y)
y=cos(x)
IR
x
0,0
xmin, ymin
0,0
clture
Xmin, Ymin
M (X, Y)
Ox, Oy
ESPACE IMAGE
ESPACE ECRAN
Fentre
Xmax, Ymax
xmax, ymax
y
XMIN,YMIN
1
M (x, y)
0,0
X0,Y0
M' (X,Y)
XMAX, YMAX
xmin, ymin
( x x min)
( X XMIN )
=
( XMAX XMIN
sur l'axe des X ( x max x min)
( y y min)
(Y YMIN )
=
(YMAX YMIN
sur l'axe des Y ( y max y min)
Infographie
7
Jean FRUITET
UMLV - 1995
soit
et
Il faut ensuite passer dans l'espace cran, c'est--dire inverser l'orientation de l'axe des Y et en
coordonnes entires !
soit
et
Infographie
8
Jean FRUITET
UMLV - 1995
2.
NOTIONS GEOMETRIQUES
2.1.
Notion de repre
Une scne est une collection d'objets en 3 dimensions. Le repre associ la scne est le repre global
Le repre mathmatique usuel est un repre main droite (pouce -> X ; index --> Y ; majeur -> Z). En
synthse d'image on lui prfre souvent un repre main gauche avec les mmes conventions (pouce -> X ;
index --> Y ; majeur -> Z), pour lequel l'axe Z pointe dans le sens oppos du repre main droite.
majeur main droite
Ecran
Oeil
V
K
index
Repre global
I
pouce
X
majeur main gauche
2.2.
Visualisation
L'opration de visualisation est dfinie par la position de l'oeil de l'observateur (E) et un axe de vise V si
l'oeil est une distance finie.
Si l'observateur est l'infini, on parle de direction de vise.
Tous les dplacement des objets de la scne ou les dplacements de l'observateur se traduisent par le
recalcul des projections sur l'cran. Il est donc ncessaire de passer constamment d'un repre l'autre.
Ce passage est obtenu par composition de transformations spatiales lmentaires : translations, rotations,
changements d'chelle, homothtie...
Pour des raisons d'efficacit, on cherchera reprsenter ces transformations par des produits matriciels,
qui sont programms de faon efficace et mme implants par matriel sur les machines graphiques
spcialises.
Ecran
Xe
Repre local
Xv
Oeil
(main
Yv
Zv
gauche)
Ye
K
I
Repre global
(main
X
droite)
Infographie
9
Jean FRUITET
UMLV - 1995
2.3.
Les transformations de IR3 dans IR3 peuvent s'exprimer par des matrices 3x3, sauf la translation. Par
contre dans IP4, l'espace projectif de IR3, toutes les transformations s'expriment par des matrices 4x4.
Les coordonnes homognes d'un point de IR3 sont constitues d'un quadruplet (x, y, z, t).
- si t _ 0, M de coordonnes homognes (x, y, z, t) est le point de IR3 de coordonnes cartsiennes
(x/t, y/t, z/t).
- si t = 0, le point M est " l'infini" et le triplet (x, y, z) s'interprte comme un vecteur.
M3 (a, b , c, 0.5)
M2 (a, b, c, 1)
K
M1 (a, b, c, 2)
J
X
Pour tous les points distance finie de IR3 les quadruplets (x, y, z, t) et (x/t, y/t, z/t, 1) reprsentent le
mme point. On choisira donc en gnral la seconde forme.; cependant on peut choisir une valeur de t >1
pour coder avec des entiers les coordonnes relles.
Exemple : t(0.2, 1.3, 2.5, 1) = t(2, 13, 25, 10).
2.4.
La droite
Une droite est dfinie par deux points A et B
A : t(xA, yA, zA, 1);
B : t(xB, yB, zB, 1);
et un point courant par M : t(x, y, z, 1)
Reprsentation paramtrique de la droite :
x - xA = (xB-xA)
y - yA = (yB-yA)
z - zA = (zB-zA)
Segment [A B] 0< 1
Le plan
Un plan est dfini par un point M0 et une normale n au plan.
L'quation du plan est donc :
M0 M . n = 0
(. : produit scalaire)
Infographie
10
Jean FRUITET
UMLV - 1995
M0
n
x
y
[a b c d ] = 0
z
1
b : t(xb yb zb 0)
a . b = xa xb + ya yb + za zb
Dterminant
D=
a1
a2
b1
= a1b2 a2 b1
b2
a1
D = a2
a3
b1
b2
b3
i+j
n
j=1
( 1)
c1
b2
c2 = a1
b3
c3
c2
b1 c1
b1
a2
+ a3
c3
b3 c3
b2
c1
c2
aij D *ij
Infographie
11
Jean FRUITET
UMLV - 1995
avec D*ij dterminant de la matrice obtenue en supprimant la ime ligne et la jme colonne dans
(aij).
Produit vectoriel
n
j=1
( 1)
i+j
aij D *ij
avb=
2.6.
i
xa
j
ya
k
za
xb
yb
zb
Transformations gomtriques
Les transformations gomtriques usuelles en coordonnes homognes sont reprsentes par des
matrices 4x4
f : P4 --> P4
M(f) est la matrice 4x4 de f
R est le repre (O, i, j, k) associ IR3
Translation
T : t(tx ty tz 0) un vecteur de IR3
La translation de vecteur T est une application
tT :
P4 --> P4
X --> X + T
avec X t(x y z 1)
tx
ty
M(tT)=
x
y
et X =
tz
(matrice 4x4)
(Vecteur colonne)
-tx
Infographie
12
Jean FRUITET
UMLV - 1995
M-1(tT)=
-ty
-tz
0
0
0
1
Changement d'chelle
c : P4 --> P4
t(x y z 1) --> t(k1 x, k2 y, k3 z, 1)
k1
k2
k3
M(c)=
M-1(c)=
1/k1
1/k2
1/k3
cos()
-sin()
sin()
cos()
Rx() =
sin()
-sin()
cos()
Ry() =
Infographie
13
Jean FRUITET
UMLV - 1995
cos()
-sin()
sin()
cos()
Rz() =
0
0
0
1
Rotations inverses autour d'un axe du repre
Il suffit de changer le signe des termes en sin()
Rotation d'angle teta autour d'un axe quelconque D
Schma gnral
a) Amener D l'origine : Translation T
b) Rotations pour amener D concider avec l'un des axes Rx(alpha) et Ry(beta)
c) Rotation d'angle teta autour de l'axe D confondu avec Oz : Rz(teta)
d) Rotations et translation inverses pour ramener D en position initiale.
M(RD) = T x Rx() x Ry() x Rz() x Ry-1() x Rx-1() x T-1
D est donne par deux points
M1 (x1, y1, z1, 1)
M2 (x2, y2, z2,1)
u vecteur unitaire de D
u = t((x2-x1)/U, (y2-y1)/U, (z2-z1)/U, 0)
avec U = SQRT((x2-x1)2+(y2-y1)2+(z2-z1)2)
soit
avec
et
u = t(a, b, c, 0)
a = (x2-x1)/U
b = (y2-y1)/U
d = SQRT(a2+b2+c2)
c = (z2-z1)/U
T(-OM1) =
Rx()=
-x1
-y1
-z1
-1
c/d
-b/d
b/d
c/d
Infographie
14
Jean FRUITET
UMLV - 1995
Ry()=
-a
Rz()=
cos()
-sin()
sin()
cos()
On obtient la matrice
M(RD) = T x Rx() x Ry() x Rz() x Ry-1() x Rx-1() x T-1
D"
Rz ( )
M2
D'
M1
k
T(-OM1)
Y
j
i
Ry ( )
Rx ()
X
Infographie
15
Jean FRUITET
UMLV - 1995
3.
PROJECTIONS
3.1.
Une scne est une collection d'objets virtuels en 3 dimensions vus par un observateur travers la fentre
en 2 dimensions de lcran dordinateur.
La visualisation implique de dterminer les objets de la scne contenus dans la pyramide de vision
(dcoupage), puis de projeter ces objets sur le plan image (projection perspective par exemple), et enfin
dafficher cette image en la transformant en primitives graphiques dans lespace cran (pixels).
PYRAMIDE DE VISION
Clture
Ecran
Observateur
L'opration de visualisation est dfinie dans l'espace objet par la position des objets, celle de l'observateur
et un axe de vise si l'oeil est une distance finie. Si l'observateur est l'infini, on parle de direction de
vise.
Tous les dplacement (objets de la scne ou observateur) se traduisent par le recalcul des projections sur
l'cran.
La fluidit des dplacements est obtenue en recalculant et en affichant l'image au moins 25 fois par
seconde.
Infographie
16
Jean FRUITET
UMLV - 1995
Ecran
Z
Repre local
Xe
E
Repre de
l'observateur
Ye
K
(main gauche)
J
Repre global
(main droite)
X
Coordonnes
d'un point
dans le repre
objet global
y
z
Coordonnes
xv
yv
d'un point
dans le repre
zv
local de l'observateur
Transformations
Clture
Elimination des parties
caches dans l'espace
objet
Projection 3D/2D
Espace image
Changement d'chelle
Fentrage dans l'espace image
Primitives d'affichage
Coordonnes
entires
de l'espace cran
Interaction
avec l'utilisateur
3.2.
Classification des projections
Les projections se divisent en deux grandes classes suivant la position du centre de projection :
- projections perspectives ayant leur centre de projection distance finie
- projections parallles ayant leur centre de projection distance infinie.
Infographie
Jean FRUITET
17
UMLV - 1995
Projections perspectives
Le centre de projection est distance finie du plan de projection
--> vision humaine.
Exemple : projection dun cube
Infographie
18
Jean FRUITET
UMLV - 1995
Projections parallles
Le point de fuite est linfini.
- projection axonomtrique : plan de projection perpendiculaire la direction de projection
- dimtrique
- isomtrique
- orthographique
- vue de dessus
- vue de ct
- vue de face
- projection oblique : le plan de projection nest pas perpendiculaire la direction de projection.
- projection cavalire (45)
- projection cabinet : les distances fuyantes sont divises par 2.
Perspective cavalire
Projection cabinet
3.3.
Lcran est perpendiculaire la droite de vise (droite de loeil au centre du monde objet).
On connat :
Infographie
19
Jean FRUITET
UMLV - 1995
ECRAN
XE
Z
Mo
(x'0, y'0, z'0)
Me
Y'
Y
Xe
X'
Ye
Repre objet
(main droite)
Observateur
Z' (repre main gauche)
YE
Le point Mo (xo,yo, zo) dans le repre (OEIL, X', Y', Z') de lobservateur se projette en Me(xe,ye) dans le
repre image.
yo / ye = zo / D
xo / xe = zo / D
avec D distance de lobservateur lcran.
Y'
Mo
yo
ye
Me
Z'
OEIL
zo
D
X'
1/D
z
1
Infographie
20
Jean FRUITET
UMLV - 1995
=>
z/D
XE
YE
ZE
Zv
YE
XE
=V
Yv
Zv
T=
-xe
-ye
-ze
Infographie
21
Jean FRUITET
UMLV - 1995
1
Z'
( )
E=O'
Y'
Y"
X"
Y
(/2 )
X
A
Rz( /2 - ) =
sin()
-cos()
cos()
sin()
Rx() =
-cos()
sin()
-sin()
-cos()
4) Inversion de la direction de OX
Myz =
-1
Et finalement
V = T x Rz x Rx x Myz
V=
-sin()
-cos()
-xe
-cos() cos()
-cos() sin()
sin()
-ye
-sin() cos()
-sin() sin()
-cos()
-ze
Finalement
Infographie
22
Jean FRUITET
UMLV - 1995
Xv
Yv
=V
Zv
Infographie
23
Jean FRUITET
UMLV - 1995
4.
4.1.
Une scne est dtermine par un point de vue : seuls les objets contenus dans la pyramide de vision seront
affichs, aprs limination des lignes et faces caches par d'autres objets.
PYRAMIDE DE VISION
Ecran
Observateur
4.2.
Les objets sont "reprsents par les artes. C'est une reprsentation ambige.
?
L'limination des lignes (artes) caches est adapte aux priphriques vecteurs :
- tables tracer
- crans calligraphiques (vecteurs)
L'limination des faces caches convient aux crans en mode mosaque [raster]
Infographie
24
Jean FRUITET
UMLV - 1995
indice
0
1
2
3
4
...
n
Coordonnes relles 3D
GEOMETRIE
...
indice
0
1
2
...
q
TOPOLOGIE
2
0
1
Facettes triangulaires et polydres convexes permettent une reprsentation simple et efficace d'une scne
pouvant contenir plus de 10 000 facettes...
Patches ou carreaux
- de Coons
- de Bzier
- Splines
Un carreau est une partie lmentaire de surface dlimite par 4 courbes frontires.
Les courbes sont paramtres :
p(x, y, z)
avec
Infographie
25
Jean FRUITET
UMLV - 1995
u
v
U
-
Sphre
Cube
Cylindre
Les noeuds de l'arbre sont des oprations ensemblistes, les feuilles des primitives solides.
4.4.
On distingue
a) les algorithmes dans l'espace objet
b) les algorithmes dans l'espace image.
Tous utilisent la notion de tri gomtrique. Il s'agit de dfinir un ordre de priorit sur les objets pour
dterminer ceux qui sont visibles.
Tous exploitent plus ou moins la notion de cohrence d'image pour limiter les calculs d'intersection.
Quand certains paramtres varient peu ou lentement, l'image se modifie peu d'un pixel l'autre.
--> cohrence entre les artes
--> cohrence entre les faces
--> cohrence d'clairage
--> d'une ligne d'image la suivante [scan line : ligne de balayage de l'image]
Infographie
26
Jean FRUITET
UMLV - 1995
--> d'une page d'cran l'autre : les images successives d'une scne sont trs semblables si le
point de vue varie peur.
--> cohrence de profondeur : une superposition par projection correspond presque toujours des
profondeurs diffrentes.
Q'
Q
Une scne est constitue de polydres ; les faces sont des polygones classs en triant les sommets les plus
loigns de chaque face selon leur profondeur. En cas de chevauchement, les faces sont dcoupes selon
le plan contenant l'autre face.
Puis on projette les faces classes sur le plan de l'cran en commenant par celles qui sont les plus
loignes.
La force de cet algorithme est sa simplicit, mais de nombreuses faces caches sont affiches
inutilement.
Algorithmes mixtes
Infographie
27
Jean FRUITET
UMLV - 1995
Z
Y
XMIN
X0
X
Infographie
28
Jean FRUITET
UMLV - 1995
Z0
C = NOIR
Z1
C1
Z2
C2 =
ROUGE
Jean FRUITET
UMLV - 1995
Infographie
30
Jean FRUITET
UMLV - 1995
5.
FENETRAGE
5.1.
On appelle fentrage (ou dcoupage) l'opration qui consiste dcouper un objet graphique (segment)
selon les bords de la fentre de visualisation.
Pour dterminer si un segment est visible on considre les coordonnes de ses extrmits par rapport aux
droites constituant les bords de la fentre de diagonale ((Xmin, Ymin) (Xmax, Ymax))
(x4, y4)
Ymax
(x2, y2)
(x6, y6)
A (x1, y1)
Ymin
E
(x5, y5)
C
Xmin
Xmax
(x3, y3)
Cymin
Cymax
0 si y <= Ymax
1 si y > Ymax
0 si y >= Ymin
1 si y < Ymin
0 si x <= Xmax
1 si x > Xmax
0 si x >= Xmin
1 si x < Xmin
Avec cette codification les codes des points (x1, y1) et (x2, y2) est 0000 ;
le code de (x3, y3) est 1010 ; le code de (x4, y4) est 1001
le code de (x5, y5) est 0010 ; le code de (x6, y6) est 0100
Condition ncessaire et suffisante pour qu'un segment [AB] d'extrmits (xA, yA) et (xB, yB)soit
entirement visible :
- les deux codes sont nuls
((code(xA, yA)==0) && ( code(xB, yB) == 0))
Condition suffisante pour que le segment [CD] soit entirement invisible
- un bit commun diffrent de zro
(( code(xC, yC) & code(xB, yB)) != 0)
Le segment [EF] est en partie visible, pour dterminer quelle portion conserver, on peut procder comme
suit :
- partager [EF] en deux segments [EM] et [MF] gaux
- rappeler rcursivement l'opration de fentrage sur chaque nouveau segment.
Infographie
31
Jean FRUITET
UMLV - 1995
La condition d'arrt de la rcursion, cest la rsolution de lcran : un pixels d'cart entre les extrmits du
segment.
5.2.
extrieur
ajouter + 1 sommet
S_fin
S_ini
intrieur
+1 sommet
extrieur
ne rien faire
+2 sommets
+0 sommet
Il suffit de rpter cette dmarche pour chaque ligne de dcoupe. Lalgorithme stend au dcoupage par
nimporte quel polygone convexe.
Infographie
32
Jean FRUITET
UMLV - 1995
c)
b)
d)
e)
Infographie
33
Jean FRUITET
UMLV - 1995
6.
ESTOMPAGE
Soit une triangulation 3D et une source de lumire ponctuelle une distance infinie. L'clairage de chaque
facette triangulaire (assimile une surface mate) dpend de l'orientation de la normale la facette par
rapport la direction du rayon lumineux incident.
I Diffuse = I Ponctuelle (L .N )
avec L = N = 1
On peut donc exprimer l'clairement de chaque facette, un facteur Ip prs, comme un produit mixte de
trois vecteurs :
u = AB AB ; v = BC BC ; w = L L
puisque N = u v (produit vectoriel de AB par BC normaliss )
En exprimant les coordonnes de chaque vecteur
a
d
i
u b ; v e ; w j
c
f
k
le produit mixte (u v ).w est gal au dterminant
a d i
= b e j = i (bd ce ) j (af cd ) + k(ae bd )
c f k
Si > 0 la facette est claire, sinon elle est sombre...
Selon la loi de Lambert la quantit de lumire diffuse reue par l'observateur est indpendante de la
position de celui-ci, pourvu que la facette soit visible :
Pour dterminer quelles sont les facettes visibles, il suffit d'appliquer le mme raisonnement que
prcdemment en calculant le produit mixte de la normale chaque facette avec la direction de vise.
Infographie
34
Jean FRUITET
UMLV - 1995
Source ponctuelle
C
L
B
Znith
Face en lumire
rasante
N Face claire
N
Soleil
+W
W
phi
N
Rho
Face non
claire
Nord
Est
Tta
6.1. Algorithme
1) Calculer les coordonnes de la source lumineuse (ou plutt son coefficient directeur) en coordonnes
sphriques
x = cos() sin( )
Infographie
35
Jean FRUITET
UMLV - 1995
u = AB ; v = BC
r
u
v
v
u
N = r r (Si < 0 calculer r r )
u
v
v
u
puis calculer l' intensit lumineuse diffuse
r
I Diffuse
u
v r
= ( r r ). w
u
v
xe = cos( )sin( )
e y e = sin( )sin( ) avec > 0
ze = cos( )
r
Visible = (
u
v
e
).
u
v
e
Couleur = 0
5) Afficher les facettes par lalgorithme du peintre en commenant par celles qui sont le plus loignes de
lobservateur.
Infographie
36
Jean FRUITET
UMLV - 1995
Bibliographie
BURGER P., DUNCAN G., Interactive Computer Graphics, Fonctional, Procedural and Device-level
methods, Addison Wesley - 1989
FOLEY J.D., VAN DAM A., FEINER, HUGHES Computer Graphics, Principles and Practice, Addison
Wesley -1982 -1992
LIEBLING T., ROTHLISBERGER H. : Infographie et applications, Masson - 1988
PEROCHE B., GHAZANFARPOUR D., ARGENCE J., MICHELUCCI D., La synthse dimage, Herms 1990
SCHWEIZER Philippe, Infographie 1 et 2, Presses Polytechniques Romandes - 1987
Infographie
37
Jean FRUITET
UMLV - 1995
1
1
1
1
2
2
4
5
5
9
9
9
10
10
11
11
11
11
11
11
12
12
12
13
13
13
13
14
14
14
17
17
18
18
19
20
21
24
24
24
25
25
25
26
26
27
27
27
28
28
29
29
30
30
31
31
Jean FRUITET
UMLV - 1995
31
32
34
35
37
38
Infographie
39
Jean FRUITET
UMLV - 1995