Modélisation de ligne

198
Synthèse d’images I Modélisation de ligne

Transcript of Modélisation de ligne

Page 1: Modélisation de ligne

Synthèse d’images I

Modélisation de ligne

Page 2: Modélisation de ligne

Outline

2

Lignes et courbes

1. Modèles mathématiques

a. Droites

b. Courbes paramétriques

c. Splines

2. Modèles informatique

a. Modélisation par segment

b. Bressenham

c. Antialiasing

Page 3: Modélisation de ligne

Droites en 2D

3

Droites affines 2D

Coordonnées polaires d’une droite

En polaire 2 paramètres suffisent également

Mais équation plus générale, représente toutes les droites

ρ

θ

0 cbyax bxay ou

0)sin()cos(

0

yx

cbyax

Page 4: Modélisation de ligne

Droites en 2D

4

Transformée de Hough

But : à partir d’un ensemble de pixels d’une image, retrouver la

droite qui les relie

En chaque point (x,y) passent une infinité de droite.

Mais elles vérifient toute l’équation :

Espace de Hough :

Matrice NxN de valeurs des paramètres ρ et θ

Discrétisation de l’espace de Hough

)sin()cos( yx

Page 5: Modélisation de ligne

Droites en 2D

5

Transformée de Hough

Méthode :

Chaque pixel (x,y) créé une courbe dans l’espace de Hough.

Chaque case de la courbe s’incrémente de 1

La case ayant la plus grande valeur représente la droite qui représente le

mieux les pixels

)sin()cos( yx

Page 6: Modélisation de ligne

Droites en 3D

6

Représentation cartésienne :

Une ligne en dimension 3 : intersection de 2 plans

Représentation paramétrique :

O u

P

P

0

0

2222

1111

dzcybxa

dzcybxaavec

z

y

x

P

Attention : il est souvent intéressant de choisir u unitaire

zz

yy

xx

utOz

utOy

utOx

z

y

x

O

O

O

O

z

y

x

u

u

u

u

et avec

Page 7: Modélisation de ligne

Droites: exercices

7

Distance d d’un point à une droite D ?

O

u

P

On cherche la longueur bleue :

1. Calculer la projection de P sur D

2. Calculer PP’

3. Prendre sa norme

P’

uuOPOP ).(' Calcul de P’ :

D

Calcul de PP’ :

Calcul de d :

uuOPPOPuuOPOPPPP ).().(''

'PPd

Page 8: Modélisation de ligne

Droites: exercices

8

Autres problèmes :

Distance entre deux droites D1 et D2 :

Intersection droite et plan

Point moyen de 2 droites, de 3 droites...

O1

u1 P2

P1

D1

u2 O

2

D2

Résolution du système linéaire :

0.

0.

221

121

uPP

uPP

avec

2222

1111

utOP

utOP

Page 9: Modélisation de ligne

Courbes

9

Page 10: Modélisation de ligne

Courbes

10

Comment représenter les courbes ?

A l’aide de fonction pour les trois coordonnées

Représentation paramétrique :

)(

)(

)(

),,(

tfz

tfy

tfx

zyxP

z

y

x

y = sin(x) x = r cos(θ)

y = y0 + r sin(θ)

z = r cos(θ/16)

Page 11: Modélisation de ligne

Courbes

11

Comment représenter les courbes ?

A l’aide de conditions (3d) sur les coordonnées

Représentation cartésienne :

0),,(

0),,(),,(

2

1

zyxf

zyxfzyxP

y - sin(x) = 0

z = 0 ???

Page 12: Modélisation de ligne

Courbes paramétriques

12

Exemple : trajectoire

Particule soumise à accélération a, munie d’une vitesse initiale

V0 et situé à l’origine.

V0

dtvdzga

accélération de la particule :

dtdPvztgv 0

vitesse de la particule :

position de la particule : 0

2

2vtztgOP

z

y

x

vtt

gz

vtyvtx

0

20

0

2

Page 13: Modélisation de ligne

Courbes paramétriques

13

Tangente

Définie en tout point de paramètre t de la courbe par le vecteur

Repère de Fresnet :

Base orthonormale

directe

)(

)(

)(

)(

tdtdf

tdtdf

tdtdf

dttdM

v

z

y

x

vvT

N

Page 14: Modélisation de ligne

Courbes paramétriques

14

Rayon de courbure :

courbure algébrique :

Calcul de :

Rayon de courbure :

)()( tNtdtdT car T est un vecteur unitaire

)(.)()( tNtdtdTt avec >0 positif

)(1)(t

t

Page 15: Modélisation de ligne

Courbes libres

15

Page 16: Modélisation de ligne

Courbes libres

16

Courbes définies par des points

Approximation Guidée par les points

Interpolations Passe par les points

Interpolation

Linéaire, parabole, Spline Catmull-rom…

Approximation

Bézier, B-spline, β-Spline…

Page 17: Modélisation de ligne

Courbes : familles

17

Bézier

Spline

B-Spline

Natural cubique Spline

Catmul-rom Spline

nonperiodic B-spline

uniform B-spline

NURBS

Kochanek–Bartels spline

Approximation

Interpolation

Page 18: Modélisation de ligne

Courbes de Bézier

18

Courbes de Bézier :

Courbes paramétriques épousant la forme d’une ligne brisée

joignant des points prédéfinis

Définie par des polynômes

Cas particulier avec 3 points :

b0

b

1

b2

b01

b11

b02

10

1

0 )1()( btbttb

21

1

1 )1()( btbttb

Les points de la courbe sont alors définis par :

)()()1()( 1

1

1

0

2

0 tbttbttb avec 1..0t

Page 19: Modélisation de ligne

Courbes de Bézier

19

Algorithme de calcul de De Casteljau :

Soit m+1 points b0,b1, ... , bm et t Є [0..1]

)()()1()(],..0[],..1[1

1

1tbttbttbrmimr

r

i

r

i

r

i

iibtbmi )(],..0[

0

b0m(t) est le point de paramètre t sur la courbe de Bézier (de degré m)

b0m(t)

b0m-1(t) b1

m-1(t)

bm0(t) bm-1

0(t) bi+10(t) bi

0(t) b10(t) b0

0(t)

2m évaluations !

Page 20: Modélisation de ligne

Courbes de Bézier

20

Définitions :

Point bi : point de contrôle ou de Bézier

Polygone formé des bi : polygone de contrôle ou de Bézier

Propriétés :

Invariant par transformation affine On a besoin que de transformer les points de contrôle

Invariant par transformation affine du paramètre de parcours t

Passe par les points b0 et bm et courbe tangente au polygone de contrôle en ces points

Enveloppe convexe

On peut rajouter des poids associés à chaque point de contrôle

Page 21: Modélisation de ligne

Courbes de Bézier

21

Forme de Bernstein

Polynômes de Bernstein

Equation de récurrence :

Points de la courbe de

Bézier

imim

itt

i

mtB

)1()(

)()()1()(1

1

1tBttBttB

m

i

m

i

m

i

m

i

i

imim btti

mtb

0

)1()(

Page 22: Modélisation de ligne

Courbes de Bézier

22

Exemple de courbe de degré 1

Exemple de courbe de degré 2

]1...0[)()()1()()(0

1

0

0

1

0 ttbttbttbtB

]1...0[)1()(10

tbtbttBsoit

]1...0[,)1(2)1()( 2

2

10

2 tbttbtbttB

Page 23: Modélisation de ligne

Splines

23

Défaut des courbes de Bézier

M points polynômes de degré M-1

Si on modifie un point, toute la courbe est modifiée

Impossible de modifier des comportements locaux sans changer

l’ensemble de la courbe

Idée : relier des courbes entre groupes de points

Plusieurs possibilités

Approximation : B-splines …

Interpolation : Catmull-rom …

Page 24: Modélisation de ligne

Splines

24

Définition :

Soit n+1 valeurs dans [a,b] avec :

on définit la fonction spline de degré m

par S : R R si :

C’est le cas général ...

bttttann

110...

),( baS1-mC

]1...0[,],[1

nittSii mP

Pm : ensemble des polynômes de degré m

Attention : spline d’ordre m = spline de degré m-1

Page 25: Modélisation de ligne

Courbes splines

25

Définition

On a donc :

N+1 points et N+1 nœuds

N intervalles

Des polynômes de degré m sur chaque intervalle

Une courbe spline est définie par n+1 points de contrôle et n+1 fonctions de

pondération :

- Les fonctions de pondérations sont définies sur des intervalles [tk, tk+1].

T=(t0, t1,..., tn+1) est appelé vecteur de points nodaux.

- Les fonctions de pondération sont des splines d'ordre m (des polynômes par

morceaux continus d'ordre m-1 aux noeuds)

)()(00 tRPtRPP nn

Page 26: Modélisation de ligne

B-Splines

26

Page 27: Modélisation de ligne

B-Splines

27

Cas des B-Splines :

Les ti s’appellent des nœuds

On se donne donc

des polynômes à définition récursive de degré m

n+1 points de contrôles Pk

n intervalles [t0,t1] , [t1,t2] ... [tn-1,tn] et donc n+1 nœuds

Polynôme : fonction de pondération

Page 28: Modélisation de ligne

B-Splines

28

Exemple des fonctions de pondération des B-Splines

Ordre 1

Degré 0

Ordre 2

Degré 1

Ordre 3

Degré 2

Page 29: Modélisation de ligne

B-Splines

29

Quelques types de B-Spline

ti uniformément répartis : B-Spline uniforme

Dans certains cas, des ti consécutifs sont égaux

Les points associés sont identiques également

Appelés nœuds multiples

B-Spline non périodique

Nœuds placés au début et à la fin

Page 30: Modélisation de ligne

B-Splines

30

Degré d’une B-Spline : degré commun de chaque courbe de

Bézier

Degré 1 : B-Spline linéaire C0 (m = 1) Chaque courbe de Bézier est une droite. La B-Spline est le polygone

formé des points de contrôle

C0 partout (continue)

Chaque début et fin de courbe de Bézier est relié à l’autre. Points de

jonction = points de contrôle

P0

P1

P2

P3

Page 31: Modélisation de ligne

B-Splines

31

Degré 2 : B-Spline

quadratique C1 (m = 2)

Chaque courbe de Bézier

sera définie par :

L’intervalle [ ti ; ti+1 ]

2 points de Bézier interne b2i

et b2i+2

1 point de contrôle

b2i+1 = Pi+1

1211

112

11

12

iii

iii

ii

iii

btt

ttb

tt

ttb

avec b-1 = P0 et b2n+1 = Pn+2

Page 32: Modélisation de ligne

B-Splines

32

Degré 3 : B-Spline cubique C2 (m = 3)

On se donne n+3 points de contrôle

On a 3n+1 points de jonction

Chaque courbe cubique sera définie par :

L’intervalle [ ti ; ti+1 ]

2 points interne b3i+1 et b3i+2

2 points de contrôle b3i = Pi et b3i+3 = Pi+1

3312

113

12

1223

3312

13

12

213

iii

iii

ii

iii

iii

iii

ii

iii

btt

ttb

tt

ttb

btt

ttb

tt

ttb

Page 33: Modélisation de ligne

NURBS

33

NonUniform Rational B-Spline

On rajoute des poids aux nœuds (Rational)

L’équation devient :

]...[

)(

)(

)( 1

0

0

nmn

i

i

i

m

n

i

ii

i

m

ttt

wtb

Pwtb

tS

Page 34: Modélisation de ligne

Interpolation Spline Famille des splines d’interpolation

La courbe passe explicitement par les points Exemple : B-Spline linéaire ok (ordre 2 / degré 1)

Soit n+1 nœuds ti on a S défini par

n intervalles avec des polynômes de degré m :

(m+1)*n inconnues

],[

],[

],[

)(

)(

)(

)(

1

21

10

1

1

0

nnn ttt

ttt

ttt

tS

tS

tS

tS

Page 35: Modélisation de ligne

Natural cubic spline

35

On peut rajouter des conditions Interpolation : S(xi)= Pi n+1 conditions

Continuité : Si-1(xi) = Si(xi), i =1,...,n-1 n-1 conditions

Dérivable 2 fois : S'i-1(xi) = S'i(xi) & S''i-1(xi) = S''i(xi) 2*(n-1) conditions

Impose, au minimum, des polynômes de degrée 3

Cubic interpolation spline

Total : 4n – 2 conditions

pour 4n inconnues

Reste 2 choix

Page 36: Modélisation de ligne

Natural cubic spline

36

Défini par

Calcul par résolution de système linéaire

0)(''

0)('' 0

nxS

xS

Page 37: Modélisation de ligne

Spline cubique hermitienne

37

Autre stratégie :

Chaque polynôme est défini à partir de deux points p0, p1 et

deux tangentes m0 et m1

11,111,000,100,0 )()()()()( mthpthmthpthtp

23

1,1

23

1,0

23

0,1

23

0,0

)(

32)(

2)(

132)(

ttth

ttth

tttth

ttth

Page 38: Modélisation de ligne

Catmull Rom Spline

38

Très utilisées en synthèse d’images

Page 39: Modélisation de ligne

Catmull Rom Spline

39

Tangente m0 et m1 choisies telles que

Parallèle au segment [Pk-1 Pk+1]

Chaque tronçon dépend alors de 4 points

Mais aucune nécessité de stocker des tangentes

2

11 kk

k

ppm

Page 40: Modélisation de ligne

Autre spline d’interpolation

40

D’autres choix possibles

Différence finie

Cardinal spline

Kochanek–Bartels spline

Avec 3 paramètres : tension, biais et continuité

Page 41: Modélisation de ligne

Plan du cours

41

Lignes et courbes

1. Modèles mathématiques

a. Droites

b. Courbes paramétriques

c. Splines

2. Modèles informatique

a. Modélisation par segment

b. Bressenham

c. Antialiasing

Page 42: Modélisation de ligne

Modélisation de courbe

42

On travaille sur une image

Espace discret de valeur

Comment représenter les courbes ?

Déformations

Un espace discret ne peut rendre compte d’un espace continu

Calcul de chaque pixel, pour chaque petit déplacement de la courbe ?

Page 43: Modélisation de ligne

Modélisation par segment

43

Travailler pixel / pixel : trop cher

Discrétisation de la courbe

Travailler avec des segments

Segments :

Facile à dessiner sur une image

Souple, permet d’affiner uniformément, choix du nombre de segment ...

Exemple avec le cercle

Page 44: Modélisation de ligne

Modélisation par segment

44

Algorithme :

fonction dessine(C courbe paramétrique,

réel tinit,

réel tfin,

entier nb_segment);

début

réel t;

réel pas = (tfin – tinit)/nb_segment;

for(t = tinit; t < tfin; t += pas) {

segment(C(t),C(t+pas));

}

fin

Page 45: Modélisation de ligne

Bresenham

45

Un algorithme optimisé de tracé de droite

Créé en 1961 par Jack Bresenham

Algorithme rapide pour allumer les pixels d’un segment (x1,y1) –

(x2,y2)

Page 46: Modélisation de ligne

Bresenham

46

Approche naïve :

Cas 0 < dy < dx

Pour chaque colonne

Calculer son ordonnée avec :

Prendre la valeur entière la plus proche de y

Défauts :

Calcul de la valeur entière

Calcul en nombres rationnels

1 pixel par colonne ?

)(1

12

121

xxxx

yyyy

Page 47: Modélisation de ligne

Bresenham

47

Algorithme approche naïve :

fonction tracerSegment( entier x1, entier y

1, entier x

2, entier y

2)

entier x, y, dx, dy ;

réel err, decal, incr;

// Erreurs et increments

dy := y2 - y

1 ;

dx := x2 - x

1 ;

y := y1 ;

err := 0 ;

incr := dy / dx ;

decal := -1.0 ;

pour x variant de x1 jusqu’à x

2 par incrément de 1 faire

tracerPixel(x, y);

si (err := err + incr) ≥ 0,5 alors

y := y + 1 ;

err := err + decal ;

fin

fin

fin

Page 48: Modélisation de ligne

Bresenham

48

Méthode Équation :

F(x,y) : distance, erreur entre droite et point (x,y)

Si on calcule F(x+1,y+0.5), on sait quel pixel allumer

De plus on a la nouvelle erreur pour la prochaine fois

0),( 11 xdyxdyydxydxyxF

dyxFyxF )1()5.0,2(

dxdyxFyxF )1()5.1,2(

Si on allume le pixel du bas

Si on allume le pixel du haut

Page 49: Modélisation de ligne

Bresenham

49

Première erreur :

Optimisation :

Prendre que des valeurs entières

Pas de problème pour les incréments

Reste la valeur initial

On multiplie tout par 2

dydxyxF 2

)5.0,1(

Page 50: Modélisation de ligne

Bresenham

50

Algorithme

fonction bresenham(entier x1, entier y

1, entier x

2, entier y

2)

entier x, y, dx, dy ;

entier err;

// Erreurs et increments

x = x1;

y = y1;

dy := y2 - y

1 ;

dx := x2 - x

1 ;

tracerPixel(x, y);

err := -dx ;

pour x variant de x1+1 jusqu’à x

2 par incrément de 1 faire

err += 2*dy;

si (err ≥ 0) alors

y := y + 1 ;

err -= 2*dx ;

fin si

tracerPixel(x, y);

fin pour

fin

Page 51: Modélisation de ligne

Bresenham

51

Bien vu mais ...

Tout les calculs en valeur entière

Efficace mais maintenant tous les calculs se font en flottants sur les cartes

graphiques

Coût de la conversion

Problème pour gérer l’antialiasing...

Page 52: Modélisation de ligne

Antialiasing

52

Anti-crénelage

Les droites discrètes sont peu esthétiques ...

Page 53: Modélisation de ligne

Antialiasing

53

Page 54: Modélisation de ligne

Antialiasing

54

Allumer les pixels

suivant leur distance au segment à tracer

On joue sur l’illumination

Algorithme

function drawLine(x1,y1,x2,y2) {

dx = x2 - x1; // On suppose x2 > x1

dy = y2 - y1; // On suppose y2 > y1

gradient = dy / dx;

// Gérer le premier point

xend = round(x1);

yend = y1 + gradient * (xend - x1);

xgap = (1 – partie_rationnelle(x1 + 0.5));

xpxl1 = xend; // premier point entier proche de xend

ypxl1 = partie_entiere(yend);

plot(xpxl1, ypxl1, (1 – partie_rationnelle(yend)) * xgap);

plot(xpxl1, ypxl1 + 1, partie_rationnelle(yend) * xgap);

next_y = yend + gradient; // Premier point d’intersection pour y

...

Page 55: Modélisation de ligne

Antialiasing

55

function drawLine(x1,y1,x2,y2) {

...

// gerer le second point

xend = round(x2)

yend = y2 + gradient * (xend - x2)

xgap = fpart(x2 + 0.5)

xpxl2 = xend // this will be used in the main loop

ypxl2 = ipart(yend)

plot(xpxl2, ypxl2, rfpart(yend) * xgap)

plot(xpxl2, ypxl2 + 1, fpart(yend) * xgap)

// main loop

for x from xpxl1 + 1 to xpxl2 - 1 do

plot(x, ipart(intery), rfpart(intery))

plot(x, ipart(intery) + 1, fpart(intery))

intery = intery + gradient

done

}

Page 56: Modélisation de ligne

Antialiasing

56

Page 57: Modélisation de ligne

Synthèse d'images I

Modélisation de surfaces d’objets

Page 58: Modélisation de ligne

Plan du cours

58

Surfaces

1. Modèles mathématiques

a. Objets géométrique simple

b. Surfaces implicites

2. Modèles informatiques

a. Soupe de triangles

b. Ensemble de points, surfels

c. Marching cubes

Page 59: Modélisation de ligne

Cartésien / paramétrique ?

59

Différents type de coordonnées

Deux formes distinctes

Une représentation fondée sur une paramètrisation des

coordonnées

Une représentation fondée sur une contrainte liée aux

coordonnées

Deux façons de voir les courbes, les surfaces ...

Exemple : la sphère

)cos()sin()(sin)sin()(cos

rzryrx

0)()()(2222 Rzzyyxx

CCC

Page 60: Modélisation de ligne

Différentes coordonnées

60

Coordonnées cartésiennes

Celles que l’on vient de voir

Utile très souvent mais ...

... pour se déplacer sur une sphère ?

On a défini aussi 2 autres types de coordonnées

Coordonnées cylindriques

Coordonnées sphériques

Page 61: Modélisation de ligne

zyx

M coordonnées

cartésiennes

Coordonnées cylindriques

61

θ

r

M

P z

z

rM coordonnées

cylindriques

zz

ry

rx

)(sin

)(cos

Page 62: Modélisation de ligne

Coordonnées sphériques

62

M

P

φ

θ

r

zyx

M coordonnées

cartésiennes

r

M coordonnées

sphériques

)cos()sin()(sin)sin()(cos

rzryrx

Page 63: Modélisation de ligne

Objets géométriques

63

Plan :

Équation cartésienne :

Normale du plan :

Équations paramétriques : Soit O un point du plan, u et v deux vecteurs du plan non colinéaires

Normale :

0 dzcybxa

zzz

yyy

xxx

vtusOz

vtusOy

vtusOx

vun

Tcban ),,(

Page 64: Modélisation de ligne

Objets géométriques

64

Sphère : Centre C et rayon R

Équation cartésienne

Normale en P : CP

Équations

paramétriques ?

0)()()(2222 Rzzyyxx

CCC

Page 65: Modélisation de ligne

Objets géométriques

65

Cylindre : Axe (Oy), rayon R, hauteur h à partir de l’origine

hy

Rzx

0

0222

Équation cartésienne

Équations paramétriques ?

Page 66: Modélisation de ligne

Objets géométriques

66

Cône : Axe (Oy), pointe en 0, angle α

)()(cot2222

zxy

)sin(

)cot(

)cos(

z

y

x

Équation cartésienne

Équations paramétriques

Page 67: Modélisation de ligne

Objets géométriques

67

Ellipsoïdes : Sorte de triple ellipse, un axe pour chaque

direction Grand axe a, axe moyen b, petit axe c

Équation cartésienne :

Équations

paramétriques :

12

2

2

2

2

2

cz

b

y

ax

)sin(

)sin()cos(

)cos()cos(

cz

by

ax

Page 68: Modélisation de ligne

Surfaces implicites

68

Définir une surface comme un potentiel

Se munir d’une fonction de potentiel

La surface S représente tous les points ayant un potentiel précis :

f peut être une fonction analytique

Le plus souvent est défini à partir de squelette

On fixe un squelette (point, ligne ou forme)

Le potentiel « irradie » à partir de ce squelette

0),,( zyxf

isozyxfzyxPSiso

),,(),,(

Page 69: Modélisation de ligne

Surfaces implicites

69

Fonction de potentiel par squelette

Soit n formes de base

fi est la fonction de potentiel relative à la ième forme

La fonction de potentiel est :

Choix des fi

n

ii

zyxfzyxf1

),,(),,(

Page 70: Modélisation de ligne

Surfaces implicites

70

Quelques exemples :

Page 71: Modélisation de ligne

Plan du cours

71

Surfaces

1. Modèles mathématiques

a. Objets géométrique simple

b. Surfaces implicites

2. Modèles informatiques

a. Soupe de triangles, de polygones

b. Ensemble de points, surfels

c. Marching cubes

Page 72: Modélisation de ligne

Modèles de surfaces

72

6 grandes familles

B-Rep

Modélisation par point

Marching cubes

CSG

Modèles paramétriques

L systèmes / Fractales

Prochaine partie

Page 73: Modélisation de ligne

B-Rep

73

Philosophie : B-rep

Pour Boundary Representation

Modélisation des objets par leur limite, leur bord

B-rep

Géométrie + Topologie (souvent absente)

Origine :

Logiciel de CAO / CAD

Maillages très fournis, très complexe

Exemple : Airbus, Voiture…

Logiciel de création : 3DSMax, Maya …

Page 74: Modélisation de ligne

B-Rep : Soupe de polygones

74

Objets complexe représentés par un ensemble de polygones

(triangles) reliés

Exemple : Cube = 12 triangles

Autres exemples :

Page 75: Modélisation de ligne

B-Rep : Maillages

75

Maillage = soupe de polygones + adjacence

Ensemble connecté de polygone (triangles)

Incorpore la topologie : modèle riche !

Affichage facile en OpenGL Mais mauvais choix pour les surfaces courbes...

D’autres calculs possibles Courbure, normales, paramétrisation

Simplification, raffinement

Édition difficile

Modèles disponibles ?

Souvent entre la soupe de polygone et le maillage

Page 76: Modélisation de ligne

B-Rep : Maillages

76

Sommet (Vertex / Vertices) : position (et autres données)

Arête (Edge) : connexion entre 2 sommets

Face (Face) : Ensemble fini et fermé d’arête (cycle)

- Triangle : Face à 3 arêtes

- Quads : Face à 4 arêtes

Polygone (Polygon) : Ensemble de faces

Surface : regroupe des faces (polygones) représentant surface

courbe

Note : Dans les représentations supportant des faces à nombre arbitraire

d’arêtes, faces et polygones sont identiques

Page 77: Modélisation de ligne

B-Rep : Maillages

77

Plusieurs représentation

Vertex-Vertex Meshes

Face-Vertex Meshes

Winged-Edge Meshes

Render Dynamic Meshes

Différentes façons de définir /coder la topologie

Page 78: Modélisation de ligne

B-Rep : Maillages

78

✔ Compact

✘Extraction

d’information

difficile

✘ Pas de

représentation

directe de la

surface

Page 79: Modélisation de ligne

B-Rep : Maillages

79

✔ Sommets

et face en accès

direct

✔ Utilisation

par les pipeline

graphique

✘ Accès difficile

aux arêtes

✘ Accès difficile

aux faces

voisines

d’une face

Page 80: Modélisation de ligne

B-Rep : Maillages

80

✔ Topologie explicite

✔ Utilisation par les

logiciels de modélisation

✔ Split et merge rapides

✘ Taille mémoire

importante

✘ Complexité à maintenir

Page 81: Modélisation de ligne

B-Rep : Maillages

81

✔ Utilisation par

pipeline

graphique

✔ Topologie

explicite

✔ Accès directs

✘ Taille mémoire

importante

✘ Complexité à

maintenir

Page 82: Modélisation de ligne

B-Rep : Maillages

82

Page 83: Modélisation de ligne

Maillages

83

Subdivision de surface :

Créer des maillages plus lisse

Loop, Catmull-Clark, Modified butterfly, Kobbelt

Attention au respect des arêtes vives

Page 84: Modélisation de ligne

Maillages

84

Simplification de maillage

Minimiser le nombre de triangles

Plusieurs critères importants

Conservation de la topologie

Continuité entre maillages

Orientation budget ou erreur

Propriétés sur sommets

Page 85: Modélisation de ligne

Algorithme de subdivision

85

Algorithme de Catmull-clark

Sur maillage quelconque

Produit un maillage de quadrilatère

Schéma d'approximation

Peut gérer les bords

Algorithme de Loop

Sur maillage triangulaire

Schéma d'approximation

Simple d'utilisation

Gère les bords, les arêtes vives

Page 86: Modélisation de ligne

Catmull-clark (78)

86

n

ivn

f1

1

FACE

4

2121 ffvve

ARETE

SOMMET

j

jj

jii fn

vn

vn

nv 221112

Page 87: Modélisation de ligne

Loop (87)

87

8

3

8

1

8

3

8

1

n

n

n1

n

n

n

n

n

n

n

n

n

n

2

2cos2340

64

1

nn

Page 88: Modélisation de ligne

Loop: Gestion des bords

88

8

1

2

1

2

1

8

18

6

Loi d’arête Loi de sommet

Masque spécifique

Page 89: Modélisation de ligne

Algorithme de simplification

89

Algorithme statique (précalculs)

Décimation de sommet : decimation

Conserve topologie et propriété de sommet

Long

Regroupement de sommet : vertex clustering

Simple et rapide

Moche, ne conserve pas la topologie

Surface enveloppante : simplification envelopes

Maîtrise de l'erreur, de la distorsion

Très long et peu robuste

Problème de popping !

Page 90: Modélisation de ligne

Algorithme de simplification

90

Algorithme dynamique (maillages continus) Simplification avec préservation de l'apparence

Maillage + normal maps + texture / peu de réduction

Maillages progressifs (progressive meshes) de Hoppe

Le plus rapide (TR) / peu de réduction

Page 91: Modélisation de ligne

Modélisation par points

91

Des points ?

Objets de plus en plus complexe

Triangles de plus en plus petits

Si le modèle est vu de loin, ils se projettent sur 0,1 voire 2 pixels

Beaucoup de travail inutile : interpolation (couleurs, normales,

textures) et rasterisation.

Maillage inefficace

Idée : représentation par points de la surface

Rendu plus efficace, possibilité de rendu de beaucoup de points

Rajout de propriétés (couleur, texture) aux points

Page 92: Modélisation de ligne

Modélisation par points

92

Origine

Acquisition scanner

Génération automatique de géométrie (L-system)

Exemples

Page 93: Modélisation de ligne

Modélisation par points

93

Qsplat :

Les points sont projetés sur l’écran

Contribuent à plusieurs pixels

Suivant leur éloignement

Filtre gaussien, masque pour chaque point

Rendu

Point OpenGL (un carré)

Cercle (un Quad avec une texture)

Un point flou (un bilboard avec une texture gaussiène)

Page 94: Modélisation de ligne

QSplat

94

Résultats :

A.

Points

(qsplat)

B.

Polygones

même nombre

de polygones qu’en A.

même temps

C.

Polygones

même nombre

de sommets qu’en A.

temps x2

Page 95: Modélisation de ligne

Modélisation par points

95

Surfel : surface element

Construits directement à partir d’une surface

+ d’informations par rapport aux Qsplat

Textures

Profondeur, position

Normales

Ces informations permettent de projeter le point

Coordonnées de texture et les normales

Plus long que les QSplat

Page 96: Modélisation de ligne

Modélisation par points

96

Intérêts

Pas de conservation de la topologie. Données libres

Possibilité de rendu efficace de modèles complexes

Défauts

Problème lors d’un zoom trop important

Difficulté de remplir les trous Coûte cher

Encore peu temps réel Sauf si on rend un modèle précis

Applicable néanmoins en hiérarchie de points...

Page 97: Modélisation de ligne

QSplat et GPU...

97

Gaël Guennebaud, Loïc

Barthe and Mathias Paulin,

Deferred Splatting

Eurographics 2004,

Grenoble, France

Page 98: Modélisation de ligne

Marching cubes

98

Origine :

Modélisation de surfaces implicites

Données volumiques

Surface définie par

Point (x,y,z) a l’intérieur ou à l’extérieur

Données d’entrées

Ensemble d’échantillons ponctuels organisés en cubes

Voxels avec 8 sommets

Page 99: Modélisation de ligne

Marching cubes

99

Principe de base :

Détermination des éléments internes

Calcul des bords

Construction du contour

Page 100: Modélisation de ligne

Marching cubes

100

Sélection des cubes qui intersectent l'iso-surface

Au moins un sommet dedans, au moins un sommet dehors

Classification des cubes :

8 sommets, 2 états (dedans, dehors)

= 256 possibilités

Symétrie des 2 états : 128 possibilités

Symétries par rotation : 15 possibilités

Pour chaque possibilité, une seule triangulation possible

De 1 à 4 triangles par cube

Page 101: Modélisation de ligne

Marching cubes

101

Les 15 combinaisons :

Page 102: Modélisation de ligne

Marching cubes:

Calcul des normales

102

Les normales sont calculées indépendamment

Lisser la surface obtenue

Une normale par triangle

Calcul :

Gradient de la fonction : normal à l'iso-surface

Calcul du gradient aux sommets du cube

Normalisation : normale aux sommets du cube

Interpolation linéaire : normales aux sommets des triangles

Interpolation linéaire : normales sur les triangles

Page 103: Modélisation de ligne

Marching cubes

103

Gradient au sommets

Estimation par différences centrales :

ykjiDkjiD

kjiG

xkjiDkjiD

kjiG

zkjiDkjiD

kjiG

y

x

z

),1,(),1,(),,(

),,1(),,1(),,(

)1,,()1,,(),,(

Page 104: Modélisation de ligne

Marching cubes: example

104

Page 105: Modélisation de ligne

Marching cubes

105

Beaucoup de polygones :

Même ordre de grandeur que le nombre de voxels

Stockage, affichage… Parfois plus cher de stocker les polygones que de stocker le volume !

Gros problèmes liés à la précision

Sous-échantillonnage

Artefacts

Page 106: Modélisation de ligne

Synthèse d'images I

Modélisation d’objets complexes

Page 107: Modélisation de ligne

Outline

107

Objets complexes, humains

1. Modèles procéduraux

2. CSG

3. Skinning

4. Volumes

Page 108: Modélisation de ligne

Objets complexes

108

On a déjà vu des surfaces complexes :

Modélisation par points

Certaines soupes de polygones

Leur construction est :

Soit fait par acquisition directe : Laser…

Soit utilise des techniques spécifiques : Solide de révolution

Extrusion

Page 109: Modélisation de ligne

Modèles procéduraux

109

Primitives géométriques créées par une procédure

Croissance progressive de la forme

Utile pour des objets structurés

Ex : plante, paysage, villes ...

Plusieurs approches :

Fractales

L-systems

Système de particules

Page 110: Modélisation de ligne

Fractales

110

Très mathématique !

autosimilarité

3 catégories

Fonctions itérées

Relation de récurrence

des points

Fractales stochastiques

Mandelbrot

Page 111: Modélisation de ligne

L-systems

111

Grammaire décrivant la croissance

Page 112: Modélisation de ligne

Systèmes de particules

112

Peuvent être utilisés pour décrire des surfaces

Enveloppe d’un feu

Surface d’un tas de sable ...

Problème de connexion entre les particules

Pour avoir des surfaces correctes

Page 113: Modélisation de ligne

Modèles procéduraux

113

Création d’objets complexes

Difficile à créer à la main

Souvent pour des « objets » naturels

Problème de l’inversion

Non connaissance des effets des paramètres

Rendu

Contraigne à des algorithmes spécifiques

Animation

Grammaire temporelle

Système de particules

Page 114: Modélisation de ligne

Plan du cours

114

Objets complexes, humains

1. Modèles procéduraux

2. CSG

3. Skinning

4. Volumes

Page 115: Modélisation de ligne

CSG

115

CSG : Constructive Solid Geometry

Processus de construction d’objets complexes

A partir de forme de base 3D « simple » (analytiques)

Cubes, Sphère, Cylindre ...

Utilisant des opérations ensemblistes

Unions, Intersections, Différences

1982

Page 116: Modélisation de ligne

CSG

116

Exemple de construction

Page 117: Modélisation de ligne

CSG

117

Représentation par

Une grammaire

Un arbre

Rendu par

Ray tracing

OpenGL ?

Très intuitif pour modéliser

Utilisé dans le builder de Unreal

Limité

Dépend du choix des primitives de base

Applicable à des modélisation par points

exp := prim | transf prim | op exp exp

prim := cube | sphere | cone | …

transf := translation | homothétie |

rotation

op := union | intersection | difference

Page 118: Modélisation de ligne

Plan du cours

118

Objets complexes, humains

1. Modèles procéduraux

2. CSG

3. Skinning

4. Volumes

Page 119: Modélisation de ligne

Skinning

119

Et pour les humains ?

Représentation à base de squelette articulé

Michel Roger

http://mr2k.3dvf.net/

Page 120: Modélisation de ligne

Skinning

120

Page 121: Modélisation de ligne

Skinning: les maths

121

Modèle 3D plus squelette

Chaque sommet attaché à un ou plusieurs os

Somme des poids = 1

Pose « au repos »

Modèle non déformé

Pose « animée »

Position squelette donnée

trouver position des sommets

Page 122: Modélisation de ligne

Comment ça marche (1)

122

Sommet v, attaché à l’os J1. Au repos :

J1

J0

y

x

v

© J. Gregory, 2003

Page 123: Modélisation de ligne

Comment ça marche (2)

123

Nouvelle position du squelette

Trouver nouvelle position du sommet v : v’

y

x

v'

v

© J. Gregory, 2003

Page 124: Modélisation de ligne

Comment ça marche (3)

124

On a v en coordonnées « absolue »

Espace du modèle

On transforme le sommet v :

De l’espace du modèle (espace global)

Dans l’espace lié à l’os

Le sommet est fixe par rapport à l’os

Donc on peut bouger le squelette

Re-transformation dans l’espace du modèle

Donne nouvelles coordonnées du sommet : v’

Page 125: Modélisation de ligne

Comment ça marche (4)

125

Sommet, dans l’espace lié à l’os :

J1

J0

y

x

v

© J. Gregory, 2003

Page 126: Modélisation de ligne

Comment ça marche (5)

126

Sommet toujours dans la même position, quelle que soit la

position du squelette

y

x

v'

v

© J. Gregory, 2003

Page 127: Modélisation de ligne

Comment ça marche (6)

127

Retour à l’espace du modèle, position du sommet

y

x

v'

v

© J. Gregory, 2003

Page 128: Modélisation de ligne

Avec des maths

128

Xi position de la base de l’os i (translation)

X0

y

x

X1

v

© J. Gregory, 2003

Page 129: Modélisation de ligne

Avec des maths (2)

129

Qi rotation de l’os i

Q0

y

x

Q1

v

© J. Gregory, 2003

Page 130: Modélisation de ligne

Avec des maths (3)

130

Position à l’équilibre de l’os Ji

Produit matriciel des translations et rotations depuis la racine :

j

i

iij

0

QXB

Page 131: Modélisation de ligne

Avec des maths (4)

131

On déplace le squelette (animation) :

J1

J0

y

x

v'

© J. Gregory, 2003

Page 132: Modélisation de ligne

Avec des maths (5)

132

Ti la translation pour l’os i, Ri sa rotation :

T0

y

x

T1

R0

R1

v'

© J. Gregory, 2003

Page 133: Modélisation de ligne

Avec des maths (6)

133

Pose actuelle décrite par matrice :

similaire à la matrice de la pose au repos :

j

i

iij

0

RTP

j

i

iij

0

QXB

Page 134: Modélisation de ligne

Avec des maths (7)

134

Multiplication de v par Bj-1 pour se ramener dans l’espace lié

à l’os (au repos)

Peut être fait une fois pour toutes

Puis multiplication du résultat par Pj pour se ramener dans

l’espace du modèle, dans la pose actuelle

Page 135: Modélisation de ligne

Avec des maths (8)

135

Ce qui nous donne :

vBBPPv

vBPv

vBPv

1

0

1

110

1

1

ij

jj

Page 136: Modélisation de ligne

Avec des maths (9)

136

Calculs effectués pour chaque sommet du modèle

Tracé des sommets obtenus

Interpolation des positions pour les sommets qui dépendent

de plusieurs os

Chaque sommet partagé par plusieurs os possède un poids pour

chaque os

Page 137: Modélisation de ligne

Skinning: multiple bones

137

Page 138: Modélisation de ligne

Skinning

138

Un objet autour de chaque « os » :

© 1998, Darwin 3D

Attention

au trou

Page 139: Modélisation de ligne

Skinning

139

Sommets intermédiaires

© 1998, Darwin 3D

• 50/50 pour chaque os

• Pincement visible

Page 140: Modélisation de ligne

Skinning

140

Sommets intermédiaires

© 1998, Darwin 3D

Poids :

33/66, 50/50 et

66/33

Page 141: Modélisation de ligne

Avec des maths (10)

141

Interpolation pour les sommets qui dépendent de plusieurs

os :

kkjj

jii

j

iik

j

ii

j

iij

ww '''

'

'

01

0

0

1

0

vvv

vBPv

vBPv

Page 142: Modélisation de ligne

Plan du cours

142

Objets complexes, humains

1. Modèles procéduraux

2. CSG

3. Skinning

4. Volumes

Page 143: Modélisation de ligne

Modélisation des volumes

143

Problème difficile

Passer de la 2D à la 3D demande :

Plus de mémoire :

Exemple : un plan discrétisé en 10*10 fait 200 triangles, un espace

discrétisé en 10*10*10 fait 1000 cubes soit 12 000 triangles

Plus de temps de calcul

Origine :

Calcul scientifique

Gaz et fluides

Page 144: Modélisation de ligne

Modélisation des volumes

144

Trois schémas de modélisation :

Par système de particules

Adapté pour le feu, la fumée, la pluie, la neige ...

Par fonction implicite

Pour modéliser des zones homogènes

Couche de brume ...

Par projection dans une base de fonction

Adapté pour des milieux recouvrant l’ensemble de la scène

Page 145: Modélisation de ligne

Modélisation des volumes

145

Modélisation par nature d’élément

Brouillard :

Homogène ou hétérogène

Calcul direct par la carte graphique

Calcul indirect par la carte graphique

Page 146: Modélisation de ligne

Modélisation des volumes

146

Feux et fumées

A coder : densité du milieu dans l’air

Très souvent modélisé par des systèmes de particules

Bon rendu et avantage de la rapidité

On peut faire l’équivalent de fonctions implicites (3D)

Page 147: Modélisation de ligne

Synthèse d'images I

Modélisation de scènes

Page 148: Modélisation de ligne

Plan du cours

148

Scènes

1. Les objets et leur positionnement

2. Graphes de scènes

3. Structure de données de représentation de scènes

Page 149: Modélisation de ligne

Objets canoniques

149

Construction d’une scène complexe :

Tout est lié à un référentiel unique

Pour conserver les positions relatives des éléments entre eux

Pour conserver les tailles des éléments entre eux

Mais tout construire depuis ce référentiel unique est pénible

Stratégie :

construire un objet dans un repère local propre à lui

le déplacer et l’orienter dans le référentiel général

Page 150: Modélisation de ligne

Objets canoniques

150

Construction d’un objet

Constitué d’objets canoniques Brique de base. Pas forcément des primitives géométrique type triangle,

cube, sphère. Peut être plus complexe

Ne doivent pas être constitués d’éléments en déplacement les uns par rapport aux autres

Muni de repères propres

Positionnement

Déplacer et orienter les repères propres par rapport : A d’autres repères propres

Au référentiel global

Page 151: Modélisation de ligne

Objets canoniques

151

Exemple de construction : le bras articulé

Page 152: Modélisation de ligne

Positionnement

152

Positionner les repères propres :

: rotation du bras par rapport à la tige

: rotation de l’arbre par rapport au bras

Page 153: Modélisation de ligne

Pour bien comprendre

153

X0 : translation = Matrice de

passage du repère R1 au repère R0

X0

y

x

X1

v

y

x

Q1

v

R0

R1

R1

R3

R2 R3

R4

R2

Q0

X1 : translation = Matrice de

passage du repère R3 au repère R2

Q0 : rotation = Matrice de passage

du repère R2 au repère R1

Q1 : rotation = Matrice de passage

du repère R4 au repère R3

j

i

iij

0

QXB

11001QXQXB

4043322110 RRRRRRRRRR MMMMM

Page 154: Modélisation de ligne

Pour bien comprendre

154

v a 2 ensembles de coordonnées :

• celles du repère propres liées à J1

• celles du référentiel initial

y

x

v

J1 J

0

4Rproprevv

0Rrefvv

4400 RRRR vMv

40 1100 RRvQXQXv

Q1

Q0

X1

X0

Page 155: Modélisation de ligne

Plan du cours

155

Scènes

1. Les objets et leur positionnement

2. Représentation de scène

3. Structure de données de représentation de scènes

Page 156: Modélisation de ligne

Graphes de scènes

156

Idée : organiser les objets en hiérarchie

Qui est « contenu » dans quoi ?

A quel repère un objet est-il lié?

Arborescence ... graphe

Page 157: Modélisation de ligne

Modèle hiérarchique

157

Modèle divisé en morceaux

Relations entre les morceaux

Paramètres pour :

Forme des morceaux (écrasement)

Position des morceaux (inclinaison)

Hiérarchie du modèle : exemple

Base se déplace : tout suit

Torse se déplace : boutons et tête suivent

Tête se déplace : yeux et nez suivent

Page 158: Modélisation de ligne

Hiérarchie de nœuds

158

Chaque nœud :

Transformation en coordonnées locales

Modèle simple en coordonnées locales

Dessin des enfants (qui héritent des coordonnées locales)

Après le nœud :

Retour aux coordonnées locales précédentes

Couleur, matériau, style, etc. ?

Pas fixé

Page 159: Modélisation de ligne

Bonhomme de neige

159

Base

Torse

Bouton3 Bouton1 Bouton2 Tête

Œil2 Œil1 Nez

Page 160: Modélisation de ligne

Graphes de scènes

160

Différents types de noeuds :

Maillages, objets ...

Matériaux, Apparences

Nœuds de transformation

Noeuds caméras

Nœuds de groupes

Notamment des nœuds switch permettant de choisir un objet ou un autre par

rapport à une variable

Nœuds LOD

Géométrie choisie par rapport à la distance à l’observateur

Nœuds action, événement

Déclenchent des comportements, font l’animation...

Page 161: Modélisation de ligne

Graphes de scènes

161

Intérêts :

Culling (automatique)

Hiérarchie Imposé par le culling

Pour la dynamique des objets

Collision Bounding box sur chaque nœud

Optimisation de rendu En fixant des états (matériaux,

texture) sur chaque nœud

Factorisation Des nœuds « maillages » peuvent

être commun

Page 162: Modélisation de ligne

Graphes de scènes

162

Existe (notamment)

OpenSceneGraph

Le plus complet ... très bon rapport qualité/prix !

X3D

Successeur du VRML

Java 3D

3DVIA

Page 163: Modélisation de ligne

Plan du cours

163

Scènes

1. Les objets et leur positionnement

2. Représentation de scène

3. Structure de données de représentation de scènes

Page 164: Modélisation de ligne

Structures de données

164

Utilisation de structure de données (scène) accélératrice :

Grille uniforme

BSP Tree

KDTree

Octree

Hiérarchie de volume englobant

Autres variantes (Hierarchie de grille uniforme…)

Page 165: Modélisation de ligne

Grille uniforme

165

Ensemble de la scène subdivisée uniformément sur chaque

axe

Similaire à de la voxelisation d’objet

Algorithme de traversée rapide (Amanatides & Woo )

Page 166: Modélisation de ligne

BSP Tree

166

Partition binaire de l’espace

Par des plans quelconques

Chaque sous espace est

ensuite subdivisé

Structure d’arbre binaire

Page 167: Modélisation de ligne

Kd-tree

167

Partition binaire de l’espace

Mais axis oriented, dans un ordre prédéfini

Page 168: Modélisation de ligne

Octree / Quadtree

168

Souvent quadtree

Partition de l'espace en quatre /

huit suivant

Quadtree : les coordonnées x,y

relative au sol

Octree : les coordonnées x,y,z

Réparti les données

Plus il y a de données dans un

endroit, plus la décomposition est

forte

Page 169: Modélisation de ligne

BVH

169

BVH : Bounding Volume Hierarchy

Bounding volume ?

Différents types

Spherical

Axis aligned

Axis oriented

Visul Hull…

Page 170: Modélisation de ligne

BVH

170

On regroupe les bounding box en hiérarchie d’arbre binaire

(ou n-aire)

Page 171: Modélisation de ligne

Autres représentations

171

Portals

Les scènes complexes sont organisées en différentes sections

Chaque section est séparée de la suivante par une zone de

transfert

D'une section, on ne voit pas l'autre section

Par un jeu de visibilité

Autre section trop loin

Autre section cachée par des éléments de décors

Permet le chargement de quelques sections

Chacune peut avoir une représentation de scène à l'aide des structures

vues précédemment

Page 172: Modélisation de ligne

Synthèse d'images I

Modélisation lumière et Matière

Page 173: Modélisation de ligne

Plan du cours

173

Lumière et matière

1. Les énergies de la lumière

2. Les yeux : la photométrie

3. Les matériaux

Page 174: Modélisation de ligne

La lumière

174

Lumière :

Une onde électromagnétique Phénomène ondulatoire, diffraction

Porté par des photons Phénomène particulaire

A une longueur d’onde

En synthèse d’images

Peu de travail sur l’aspect ondulatoire

Focus sur comportement du photon Les photons ont une longueur d’onde

Page 175: Modélisation de ligne

La lumière

175

Grandeurs physiques

Flux énergétique e

Valeur instantanée d’un débit de rayonnement

Puissance (en Watt)

Intensité énergétique Ie

Puissance émise par unité d’angle solide (W/sr)

Angle solide ? d

dI e

e

rS

unité : stéradian (sr)

Page 176: Modélisation de ligne

La lumière

176

Éclairement énergétique Ee

Quantité de flux reçu par unité de surface (W/m²)

Une valeur analogue, appelé radiosité ou exitance, indique la quantité de

flux émis par unité de surface

Luminance Le

flux d’énergie quittant une surface dans une direction donnée

dS

dE e

e

)cos(

2

dSd

dL e

e

angle solide

projeté

Page 177: Modélisation de ligne

Plan du cours

177

Lumière et matière

1. Les énergies de la lumière

2. Les yeux : la photométrie

3. Les matériaux

Page 178: Modélisation de ligne

Le système visuel humain

178

Iris + corné + cristallin

Appareil optique

Rétine :

C'est la pellicule !

Cônes

Sensibilité différente suivant les longueur

d’onde : pour les couleurs

Peu sensible à l’intensité lumineuse

Bâtonnets :

Sensible à l'intensité lumineuse

Étude de la sensibilité de l’œil :

Domaine de la photométrie !

Page 179: Modélisation de ligne

Photométrie

179

Vision de nuit : domaine

scotopique

Bâtonnets principalement sollicités

Vision de jour : domaine

photopique

Cônes principalement sollicités

Étude de la réponse de l’œil

Fonction d’efficacité spectrale

Page 180: Modélisation de ligne

Grandeurs photométriques

180

Radiométrie Photométrie

Flux e Watt(W) v

Lumen (lm)

Intensité Ie W/sr Iv

Candela

(cd = lm/sr)

Éclairement Ee W/m² Ev

Lux

(lx = lm/m²)

Luminance Le W/m² sr Lv cd/m²

Conversion :

vD,ev

dVXKX

domaine de sensibilité de l'oeil constante = 683 lm/W

grandeur radiométrique spectrale

Page 181: Modélisation de ligne

Colorimétrie

181

Espace des couleurs CIE XYZ

Toute couleur : combinaison linéaire de 3 couleurs

monochromatiques

Ce sont les couleurs primaires

Décomposition de toute couleur C()

dzCZ

dyCY

dxCX

)(

)(

)(

Page 182: Modélisation de ligne

Colorimétrie

182

Espace Lxy

Dissocier la teinte de la luminosité :

D'autres espaces

Luv

Lab

ZYXYy

ZYXXx

YL

Page 183: Modélisation de ligne

Colorimétrie

183

Espace dépendant du matériel

Passage des couleurs RGB à XYZ par une matrice

Matrice donnée par le fabriquant

Autre jeux de couleur

CMYK

Page 184: Modélisation de ligne

Plan du cours

184

Lumière et matière

1. Les énergies de la lumière

2. Les yeux : la photométrie

3. Les matériaux

Page 185: Modélisation de ligne

Matériaux

185

3 comportements des matériaux

Absorption

Très peu utilisée en synthèse d’images

Émission

Peu de dépendance à la température

Réflexion

Capacité de la matière de réfléchir, d’une direction donnée vers une autre

direction donnée, une partie de la lumière reçue

),,( uTa

),,( uT

''cos)',,(

),,()',,,(

dudSL

udSLuudS

e

ebd

Page 186: Modélisation de ligne

Matériaux

186

La réflexion Lambertienne

La réflexion ne dépend pas de l’angle d’incidence, ni de l’angle

de réflexion

Matériaux isotrope

Réflexion Lambertienne ou réflexion diffuse

dbd uu )',(

Page 187: Modélisation de ligne

Matériaux

187

Réflexion spéculaire pure

Propre aux surfaces très réfléchissantes

Induit une réflexion de lumière symétrique par rapport à la

normale de la surface

Seule une proportion est réfléchie indiquée par le coefficient de

réflexion spéculaire

N I R Calculez R !

),( dSs

Page 188: Modélisation de ligne

Matériaux : FDRB

188

FDRB (BRDF) :

Fonction de répartition spatiale de

l’énergie reçue en fonction de son

angle d’incidence

Indique une proportion

(entre 0 et 1)

Obéi aux lois de réciprocité

d’Helmholtz

L’intégrale doit être égale à 1-

absorption

),,,()',( rriibdbd uu

Page 189: Modélisation de ligne

Matériaux : FDRB

189

Page 190: Modélisation de ligne

Matériaux : FDTB

190

FDTB (BTDF) :

Même chose mais pour la

transmission

C’est l’hémisphère « sous » la

surface concerné

A l’opposé de la normale

Transmission pure :

Obéi aux lois de Descartes

)sin()sin( 2211 nn

Page 191: Modélisation de ligne

Matériaux : textures

191

Certains détails complexes à représenter géométriquement

et radiométriquement

Fissures

Salissure

Détails de revêtement

Utilisation d’une image « plaquée » sur la surface

Représente la couleur

Peut représenter aussi des déformations géométriques

Page 192: Modélisation de ligne

Matériaux : textures

192

Principe

Chaque sommet est associé à une position dans l’image

Ce sont les coordonnées de texture (2D)

La partie de l’image correspondant aux sommets est appliquée

sur la surface

Page 193: Modélisation de ligne

Matériaux : textures

193

Application des textures

Peuvent se combiner avec la couleur déterminée par

l’éclairement

Peuvent se combiner entre elles

La plupart du temps : réutilisation ...

Quake

Id Software

Page 194: Modélisation de ligne

Matériaux : textures

194

Autres types de texture :

Bump mapping : rajouter de la granularité

Réalisé avec une texture

On souhaite conserver une surface simple

+ =>

Page 195: Modélisation de ligne

Matériaux : textures

195

Bump Mapping : algorithme initial

A l'aide de la carte de bump

En chaque point, perturber la normale suivant la "hauteur" du point et de

ses voisins sur la carte de bump

Équation de perturbation de la normale :

Avant : Fonctionnalité dépendante de la carte

Maintenant : Utilisable directement via un "pixel shader"

F : bump map

P : surface

N : normale

Page 196: Modélisation de ligne

Matériaux : textures

196

Exemple de bump mapping

Documentation technique Matrox

http://www.matrox.com/mga/francais/products/tech_info/ Marek Mizanin : http://www.zanir.szm.sk

Page 197: Modélisation de ligne

Matériaux : textures

197

Cartes de normales (normal maps)

Similaire au bump mapping ... en plus simple

La texture code directement la variation de la normale en

chaque point : offset vector D

DNN '

Page 198: Modélisation de ligne

Matériaux : textures

198

Displacement mapping

A priori peu utilisées encore

Permet de « décaler » la géométrie par texture

Création de nouveaux points

Devient envisageable grâce aux geometry shader, tesselation shaders