Vous êtes sur la page 1sur 40

Infographie

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

4. ELIMINATION DES FACES CACHEES

23

5. FENETRAGE

30

6. ESTOMPAGE

33

BIBLIOGRAPHIE

36

TABLE DES MATIRES

37

1.

INTRODUCTION

L'infographie (informatique graphique) a pour objet :


- l'analyse et le traitement d'images (amlioration d'images ; reconnaissance de formes ;
cartographie thmatique, ...)
- la synthse d'image (affichage de donnes sous forme graphique, calcul et restitution d'images
raliste ou symbolique, visualisation de donnes scientifiques) sur cran cathodique (CRT) ou sur
imprimante par procd informatique.
Pour l'analyse, voir le cours de traitement d'image.
Nous consacrons cette seconde partie du cours de gomtrie algorithmique un survol rapide de outils
(mthodologie / structures de donnes / algorithmes / interfaces) pour la cration de programmes
graphiques (2D et 3D).

1.1. Les tapes de la synthse d'image.


Pour produire l'image informatique d'un phnomne mathmatique, physique, organisationnel,
etc. il est ncessaire de passer par diffrentes tapes :
MODELISER LE PHENOMENE
sous forme de nombres / relations / symboles
lois de comportement au cours du temps
AFFICHER CE MODELE SUR ECRAN EN DEUX DIMENSIONS
par composition de primitives graphiques
point, segment, courbe, surface, volume
paisseur, trame, couleur
INTERFACER L'AFFICHAGE AVEC L'UTILISATEUR
l'interaction avec le programme d'affichage permet l'utilisateur
de modifier les caractristiques d'affichage (changer de point de vue)
et/ou de modifier le modle
ANIMER LE MODELE
la sensation d'animation est obtenue
en modifiant le modle et son affichage 25 fois par seconde...

1.2. L'univers et son modle.


L'UNIVERS qui est sous-jacent tout phnomne a des caractristiques difficiles reprsenter sur
ordinateur :
infini
continu
complexe / ambig / flou
nombreuses dimensions, dont la dimension temporelle
Un MODELE d'univers consiste en une simplification mathmatique
On distingue diffrents modles
symbolique : langages, pictogrammes, ...
numrique : champs de scalaires, fonctions numriques
relationnel : schmas entits/associations et tables relationnelles
gomtrique : topologie, mtrique, dimension (1D, 2D, 3D, ...)
Infographie
1

Jean FRUITET
UMLV - 1995

physique : statique / cinmatique (mouvement) / dynamique (force)


objet : classe, hritage, ...
etc.
Sans modlisation pralable, pas de reprsentation informatique...

1.3. Le modle et sa reprsentation.


Avant tout affichage sur cran, il faut traduire/dcomposer le modle en objets graphiques (primitives
d'affichage) et le recombiner l'aide d'oprateurs (transformations spatiales, projections, fentrage...) dans
la mmoire d'affichage de l'ordinateur.
Les primitives d'affichage
Dimension
1D
2D continu
(espace
euclidien)

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

1.4. Le pipe-line de visualisation.


On dsigne sous ce terme la succession des tapes de l'affichage

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

Systme visuel physiologique


Lois de l'optique
Observateur

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

1.5. Conversion numrique / analogique.


Ce schma fonctionnel s'appuie sur un schma technologique

Unit centrale
Mmoire VIDEO
Mmoire

UAL
+
Compt. ordinal
+
Registres

Mmoire d'affichage

Conversion Digital (numrique) --> Analogique


Ecran

Rafraichissement
24 fois par secondes au moins

CRT

Cathode Ray Tube

Couche phospore luminescent

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

1.6. Thmes de l'infographie.

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

Polyligne / Polygone / Rectangle / Bote


Arc / Cercle / Ellipse
Translation / Rotation / Chgt d'chelle
en 2D / en 3D / en coordonnes homognes

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

Continu --> Discret


Pixel / Ligne / Tache / Texture / Antialiassage

ESPACE ECRAN
menu

Clture et Fentrage
Cohen & Sutherland
Cyrus Beck, ...

Localisation
et remplissage

Lois de l'optique

Rendu raliste

Propagation de la lumire Elimination des


lignes, faces
Synthse additive
et
parties caches
Modles d'clairage
Lanc de rayon
Radiosit
Fractales

Interfaces
Normes graphiques
Polling / Events
Menus droulants
X-Windows

Systmes graphiques
Mmoire Vido / DAC / CRT
Cartes graphiques
Tables de couleurs (LUT)
Priphriques

1.7. Un exemple d'application 2D


Affichage de la courbe y = cos(x).
Ce premier exemple va nous permettre de parcourir les tapes de l'affichage d'une fonction mathmatique
et de dfinir au passage les outils pour la programmation graphique en Turbo C sur PC.
Univers
IR --> IR
x --> y = cosinus(x).

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

Passage de l'espace objet l'espace image


L'espace objet (ou rel) est infini, continu, euclidien, en N-dimensions.
L'espace cran est fini, discret, en 2 dimensions.
Dans l'espace objet, on peut choisir un rfrentiel (repre) orthogonal, norm, direct (anti-horaire 2D, ou
trigonomtrique) et un systme de coordonnes cartsiennes pour reprsenter les fonctions mathmatiques
et leur graphe.
Par contre l'espace cran est dfini (pour des questions technologiques... et culturelles) selon un rfrentiel
horaire, avec origine dans le coin suprieur gauche de l'cran. Les coordonnes entires d'cran sont
donnes en (colonne, ligne).
Dfinition d'cran : c'est le nombre de lignes et de colonnes adressables.
Sur un cran PC en mode graphique standard VGA 16 couleurs :
Nombre de colonnes par ligne
640 (de 0 MaxX=639)
Nombre de lignes par page cran
480 (de 0 MaxY=479)
Si la forme du pixel (picture element) n'est pas carre les cercles sont affichs comme des ellipses et les
carrs comme des rectangles...
Il est donc ncessaire :
- de calculer par avance les coordonnes des points (x,y=f(x)) pour toutes les valeurs de l'intervalle
de dfinition
- d'initialiser le mode d'affichage graphique (caractristiques d'cran, clture et fentrage)
- d'effectuer le passage de l'espace objet l'espace image, qui peut tre par exemple dfini en
coordonnes flottantes normalises [0,1] x [0,1]
- d'effectuer le passage de l'espace image l'espace cran (changement de repre)
- pour chaque couple de coordonnes cran, d'appeler les primitives d'affichage.
Et bien sr si on ne dispose que de primitives point ou ligne, il faut dcomposer le graphe en une
succession de segments.

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

Passage de l'espace objet l'espace image


0,0

xmax, ymax
y
XMIN,YMIN

1
M (x, y)

0,0
X0,Y0

M' (X,Y)

XMAX, YMAX
xmin, ymin

Dans l'espace objet

dans l'espace image

( 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

X = ( x x min )( XMAX XMIN ) / ( x max x min ) + XMIN


Y = ( y y min) (YMAX YMIN ) / ( y max y min ) + YMIN

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

Xcran = ( x x min )( XMAX XMIN ) / ( x max x min ) + XMIN


Ycran = MaxY ( y y min )( YMAX YMIN ) / ( y max y min ) + YMIN

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

(repre main droite)


Z
Observateur

Ecran

Oeil
V
K

index

Repre global
I

pouce

X
majeur main gauche

(repre 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.

Le systme de coordonnes homognes

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.

Varits affines de IR3 en coordonnes homognes.

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

: t(x0, y0, z0, 1)


: t(a, b, c, 0)

On exprime ce produit scalaire nul :


a (x-x0) + b (y-y0) + (c (z-z0) = 0
soit, sous forme d'un produit de matrices

x
y
[a b c d ] = 0
z
1

avec d = -(a x0 + b y0 + cz0)

Puissance d'un point par rapport un plan


Soit P un plan d'quation ax + by + cz + d = 0
et M un point de coordonnes t(X, Y, Z, 1)
Le nombre rel P(M) = aX + bY + cZ + d est la "puissance de M par rapport P". Le signe de P(M)
dtermine deux demi-espaces spars par le plan P.
Intrieur d'un polydre convexe
Un point est intrieur un polydre convexe dont toutes les normales aux faces du polydre sont orientes
vers l'extrieur si la puissance de ce point par rapport toutes ces faces est ngative.
Faces visibles
Une face pour laquelle la puissance de l'oeil est ngative n'est pas visible par un observateur extrieur au
polydre... Les faces vues par l'observateur sont celles pour lesquelles PF(Oeil) >0.
2.5.

Elments de calcul gomtrique


Produit scalaire
a, b deux vecteurs d'angle a
a . b = |a| |b| cos (a)
a : t(xa ya za 0)

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

a et b deux vecteurs d' angle


a b = n a b sin( )
n normale au plan dtermin par (O, a, b)
expression analytique du produit vectoriel :

avb=

2.6.

i
xa

j
ya

k
za

xb

yb

zb

= i(ya zb-yb za)-j(xa zb-xb za)+k(xa b-xb ya)

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)

s'exprime par le produit matriciel M(tT) x X


La matrice M(tT) est donne par
1

tx

ty

M(tT)=

x
y
et X =

tz

(matrice 4x4)

(Vecteur colonne)

Les coordonnes du point translat sont donnes par X' = M(tT) x X


Matrice inverse T-1 : Translation de vecteur oppos

-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)=

dont l'inverse est

M-1(c)=

1/k1

1/k2

1/k3

Cas particulier de changement d'chelle : l'homothtie


k1 = k2 = k3 = k
Rotations autour d'un axe du repre
r : P4 --> P4 d'angle
Rotation autour de Ox d'un angle
1

cos()

-sin()

sin()

cos()

Rx() =

Rotation autour de Oy d'un angle


cos()

sin()

-sin()

cos()

Ry() =

Infographie
13

Jean FRUITET
UMLV - 1995

Rotation autour de Oz d'un angle

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

Tous calculs faits on trouve

T(-OM1) =

Rx()=

-x1

-y1

-z1

-1

c/d

-b/d

b/d

c/d

Infographie
14

Jean FRUITET
UMLV - 1995

Ry()=

-a

Et pour la rotation autour de Oz d'angle q:

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.

Modle de la camra et pipe line de visualisation

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

Pipe line de visualisation


Espace objet
Coordonnes 3D

Transformations

Dcoupage dans l'espace objet


(Cyrus-Beck)

Clture
Elimination des parties
caches dans l'espace
objet

Projection 3D/2D

Espace image

Elimination des parties


caches dans l'espace
image
Dcoupage dans l'espace
image
(Cohen-Sutherland)

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

Projection un point de fuite, deux faces parallles au


plan de projection

Deux points de fuites, quatre artes parallles au


plan de projection

Infographie
18

Jean FRUITET
UMLV - 1995

Trois points de fuite, aucune arte n'est parallle


au plan de projection

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.

Calcul des projections perspectives

Lcran est perpendiculaire la droite de vise (droite de loeil au centre du monde objet).
On connat :
Infographie
19

Jean FRUITET
UMLV - 1995

- la distance D de lobservateur lcran (plan de projection)


- la position de lobservateur dans le repre objet
- la position des points dans lespace objet
Il sagit de dterminer les positions des projets dans lespace cran.

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'

Pour le point M(x,y,z) on ramne la transformation perspective au repre observateur :


xe = x . (D/z)
ye = y . (D/z)
En coordonnes homognes la matrice de transformation scrit :
X

1/D

z
1

Infographie
20

Jean FRUITET
UMLV - 1995

=>

z/D

En passant dans IR3 on retrouve :


X = x /(z/D) ; Y=y/(z/D) ; Z = z/ (z/D) = D.

Passage de lespace objet lespace observateur


On peut dcrire la position de lobservateur en coordonnes sphriques dans le repre objet.
XE = sin() cos()
YE = sin() sin()
ZE = cos()
Xv
Yv
E

XE
YE
ZE

Zv
YE

XE

On se propose de dterminer la matrice V telle que


Xv

=V

Yv

Zv

de passage du repre objet au repre de vision (observateur).

V est un produit de matrices lmentaires.


1) Translation de vecteur -OE, fait passer le point O au point E.

T=

-xe

-ye

-ze

Infographie
21

Jean FRUITET
UMLV - 1995

1
Z'

( )

E=O'

Y'

Y"
X"
Y

(/2 )

X
A

2) Rotation daxe OZ pour amener OY dans le plan (OEA) dangle ( /2 - )

Rz( /2 - ) =

sin()

-cos()

cos()

sin()

3) Rotation daxe OX pour placer laxe OZ (OZ) dans la direction EO dangle ()

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

Puis on procde la projection perspective vue plus haut.

Infographie
23

Jean FRUITET
UMLV - 1995

4.

ELIMINATION DES FACES CACHEES

4.1.

Que voit-on de la scne

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

Objet masqu et dcoup

Ecran
Observateur

4.2.

Reprsentation fil de fer

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

--> visualisation 3D des objets opaques.


Les algorithmes dpendent beaucoup des structures de donnes et de la faon dont les objets sont
reprsents dans la mmoire de l'ordinateur.
4.3.

Reprsentation des objets 3D


B-REP : reprsentation par les bords
-> approximation des objets par des polygones plans : polydres

Table des sommets


x
y
z
10,5 -5,0
25,7
10,5 0,0
25,7
12,0 5,5
15,0

indice
0
1
2
3
4
...
n
Coordonnes relles 3D

Table des artes


S1
S2
indice
0
2
0
2
4
1
4
0
2
...
m

Table des faces


S1
S2
S3
0
2
4

Indices dans la table


des sommets

Indices dans la table des


sommets
ou dans celle des artes

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

x = f(u,v) ; v = g(u,v) ; z = h(u, v).

Infographie
25

Jean FRUITET
UMLV - 1995

u
v

Cela permet de gnrer des formes "libres", des surfaces gauches.


Par contre les calculs d'intersection sont assez coteux.
Arbres C S G [constructive solid geometry]

U
-

Sphre

Cube

Cylindre

Les noeuds de l'arbre sont des oprations ensemblistes, les feuilles des primitives solides.

4.4.

Algorithme d'limination de faces caches

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.

Caractristiques des algorithmes d'limination de faces caches


Dans l'espace objet :
- rsolution gomtrique indpendante de l'affichage, dans la clture de la pyramide de vision
- calculs en coordonnes relles 3D
- comparaison de chaque facette avec toutes les autres (o(n2))
Dans l'espace image :
- en fonction de la rsolution du priphrique d'affichage (cran)
- dans les limites de la fentre d'affichage
- en coordonnes entires si possible
- comparaison de chaque facette avec chaque pixel (o(n.r))
r : rsolution de l'cran = MAXLIGNE x MAXPIXEL_LIGNE
n : nombre de facettes
Il s'agit de dtecter si un point de coordonnes (x, y) est intrieur une facette.
La prise en compte de la cohrence spatiale amliore les algorithmes dans l'espace image.

Algorithmes dans l'espace objet


Ce sont les plus anciens. [Galimberti & Montanari 1969]
Une scne est constitue d'objets polydriques non intersectants opaques ; chaque face a une normale
oriente vers l'extrieur. On dtermine les faces arrires l'aide des normales. On supprime les artes
appartenant deux faces arrires. Pour les artes restantes, il faut tester si aucune face ne les cache.
Algorithme du peintre [Newell, Newell & Sancha]
Cet algorithme repose sur un tri des facettes selon la distance l'observateur.
Les facettes les plus loignes sont affiches en premier ; les facettes (opaques) les plus proches venant
recouvrir les facettes les plus loignes...

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

Algorithme de ligne de crte


[Wright 73 - dans l'espace image] [Williamson 72 - dans l'espace objet]
Cet algorithme est utile pour visualiser les fonctions de deux variables et les MNT (modle
numrique de terrain).
L'ide est de couper la surface reprsenter par des plans d'quation x=Cte.

Z
Y
XMIN
X0
X

Infographie
28

Jean FRUITET
UMLV - 1995

LIGNE_DE_CRETE : tableau d'altitudes relles


Fonction CRETE(altitude f(x,y))
{
/* Afficher la courbe la plus proche de l'observateur */
Pour y=YMIN YMAX faire
Afficher f(x0, y);
/* Initialiser un tableau une dimension LIGNE_DE_CRETE
avec les valeurs de f(x0,y) */
Pour y=YMIN YMAX faire
LIGNE_DE_CRETE[y]= f(x1, y);
Pour j=1 XMIN faire
Pour y=YMIN YMAX faire
Si f(xj, y) > LIGNE_DE_CRETE[y]
{
Afficher f(xj, y);
LIGNE_DE_CRETE[y]= f(xj, y);
}
}

Algorithmes dans l'espace image


Algorithme du Z-buffer [tampon de profondeur]
C'est un algorithme dans l'espace image, simple (il est souvent "cbl" sur les machines haut de
gamme), mais il est gourmand en espace mmoire et prsente des difficults d'anti-aliassage.
L'image est une matrice de pixels.
Pour chaque pixel on recherche la valeur de couleur, qui dpend de la profondeur, c'est--dire de la
distance l'oeil de l'observateur de l'objet reprsent par ce pixel.

Z0
C = NOIR

Z1
C1

Z2
C2 =
ROUGE

Z2 < Z1 donc la couleur ROUGE est affiches


Fond de l'cran ou arrire plan de la scne
Algorithme du Z-buffer
mpl : maximum de pixels par ligne d'cran ;
mlcran : maximum de lignes d'cran;
Z : tableau [mpl, mlcran] de rels ;
C : tableau [mpl, mlcran] de couleurs ;
Fonction Z_BUFFER (Scne, Oeil)
/* modifie le tableau C */
{
rel z; entiers i, j; objet E;
Infographie
29

Jean FRUITET
UMLV - 1995

Pour chaque pixel (i,j) faire


{
Z[i,j] = INFINI ;
C[i,j] = COULEUR_FOND;
}
Pour chaque objet E de la scne faire
{
Calculer la projection de E sur l'cran ;
Pour chaque pixel de cette projection faire
{
z = Profondeur de E en (i,j);
Si (z<Z[i,j])
{
Z[i,j] = z;
C[i,j] = Couleur de E en (i,j);
}
}
}
}
Les avantages du Z-BUFFER
- Rapide ; cbl ; tire profit de la cohrence de scne
- Compatible avec le lissage de Phong ou de Gouraud.
Les inconvnients du Z-BUFFER
- Les lments sont affichs dans un ordre quelconque
- L'image est connue la rsolution de la mmoire d'image, donc il peut y avoir des dfaut
d'aliassage.
- Il n'est pas possible de reprsenter les ombres portes, les transparences et les rflexions.
- Pour une image 1024 x 1024 il faut 1024 x 1024 x 2 octets pour le tampon de profondeur (2 MO).

Quelle couleur domine la frontire des deux


polygones ?

Infographie
30

Jean FRUITET
UMLV - 1995

5.

FENETRAGE

5.1.

Dcoupage dun segment [clipping]


Algorithme de Cohen et Sutherland - Hodgman

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)

A chaque point (x, y) est associ un code de 4 chiffres binaires


CODE (x, y)=
Cxmin
Cxmax

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.

Dcoupage dun polygone


Le polygone est dcrit par la liste de ses sommets qui dfinit une liste trie de ses arcs.
Lsom (s1, s2, s3, ..., sn)
Larc (s1s2, s2s3, ..., sns1)
Lalgorithme parcourt la liste de sommets et examine chaque pas la relation entre les sommets et la ligne
de dcoupe. Il cre une nouvelle liste de sommets en ajoutant 0, 1 ou 2 sommets suivant la stratgie cidessous.
-prendre un sommet S_fin dun arc (S_ini, S_fin). S_ini a dj t trait. Examiner la stratgie
concernant S_fin :
intrieur

extrieur

ajouter + 1 sommet

ajouter le point dintersection

S_fin
S_ini
intrieur

+1 sommet
extrieur

ajouter le pont dintersection et le S_fin

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

Dcoupage d'un polygone arte par arte


a)

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( )

w y = sin( )sin() avec = 1 et x 2 + y 2 + z 2 = 1


z = cos( )
2) Pour chaque triangle, calculer la normale N :
Soient A, B et C trois sommets

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

I Diffuse [1, +1] . Si IDiffuse 0, la facette est dans l' ombre


3) Calculer les coordonnes de l'observateur

xe = cos( )sin( )
e y e = sin( )sin( ) avec > 0

ze = cos( )
r

Pour chaque triangle clair calculer la visibilit :

Visible = (

u
v
e

).
u
v
e

Si Visible > 0 la facette est visible sinon invisible...


4) Pour toutes les facette claires et visibles attribuer une couleur d'intensit proportionnelle
l'clairement I ; si on dispose de 16 couleurs (ou plutt de 16 gris en valeur de luminosit croissante) :
Si I<=0
et si I>0

Couleur = 0

Couleur = 15 I avec I ]0,1]

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

Table des matires


INFOGRAPHIE
1. INTRODUCTION
1.1. Les tapes de la synthse d'image.
1.2. L'univers et son modle.
1.3. Le modle et sa reprsentation.
1.4. Le pipe-line de visualisation.
1.5. Conversion numrique / analogique.
1.6. Thmes de l'infographie.
1.7. Un exemple d'application 2D
2. NOTIONS GEOMETRIQUES
2.1. Notion de repre
2.2. Visualisation
2.3. Le systme de coordonnes homognes
2.4. Varits affines de IR3 en coordonnes homognes.
Puissance d'un point par rapport un plan
Intrieur d'un polydre convexe
Faces visibles
2.5. Elments de calcul gomtrique
Produit scalaire
Dterminant
Produit vectoriel
2.6. Transformations gomtriques
Translation
Changement d'chelle
Rotations autour d'un axe du repre
Rotation autour de Ox d'un angle a
Rotation autour de Oy d'un angle a
Rotation autour de Oz d'un angle a
Rotations inverses autour d'un axe du repre
Rotation d'angle teta autour d'un axe quelconque D
3. PROJECTIONS
3.1. Modle de la camra et pipe line de visualisation
3.2. Classification des projections
Projections perspectives
Projections parallles
3.3. Calcul des projections perspectives
Passage de lespace objet lespace observateur
4. ELIMINATION DES FACES CACHEES
4.1. Que voit-on de la scne
4.2. Reprsentation fil de fer
4.3. Reprsentation des objets 3D
B-REP : reprsentation par les bords
Patches ou carreaux
Arbres C S G [constructive solid geometry]
4.4. Algorithme d'limination de faces caches
Caractristiques des algorithmes d'limination de faces caches
Algorithmes dans l'espace objet
Algorithme du peintre [Newell, Newell & Sancha]
Algorithmes mixtes
Algorithme de ligne de crte
Algorithmes dans l'espace image
Algorithme du Z-buffer [tampon de profondeur]
Les avantages du Z-BUFFER
Les inconvnients du Z-BUFFER
5. FENETRAGE
5.1. Dcoupage dun segment [clipping]
Infographie
38

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

Algorithme de Cohen et Sutherland - Hodgman


5.2. Dcoupage dun polygone
6. ESTOMPAGE
6.1. Algorithme
BIBLIOGRAPHIE
TABLE DES MATIRES

31
32
34
35
37
38

Infographie
39

Jean FRUITET
UMLV - 1995