ift3355: infographie courbes et surfaces © pierre poulin dép. i.r.o. université de montréal
TRANSCRIPT
![Page 1: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/1.jpg)
IFT3355: Infographie Courbes et surfaces
© Pierre Poulin
Dép. I.R.O.
Université de Montréal
![Page 2: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/2.jpg)
Courbes et surfaces
• Beaucoup de trajectoires sont définies par des courbes, et beaucoup de vrais objets sont définis par une surface lisse– typographie, dessins, trajectoire de la caméra,
graphes, interpolation de mouvement, CAD, etc.
![Page 3: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/3.jpg)
Polygones
• Solution polygonale consiste à augmenter le nombre de polygones (maillage plus fin) pour mieux approximer la surface
+ diminue l’erreur de représentation
+ hardware déjà disponible pour des polygones– augmente l’espace mémoire– augmente le temps requis pour le rendu– augmente le nombre de points à manipuler pour
modifier la surface
![Page 4: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/4.jpg)
Courbes et surfaces paramétriques
• Solution paramétrique polynômiale– courbe (cubique): – surface ou patche (bicubique):
• Solution implicite– contrôle plus complexe pour la modélisation de
grande précision– discutée plus tard dans la modélisation avancée
)(),(),( tztytx
),(),,(),,( tsztsytsx
0),,( =zyxF
![Page 5: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/5.jpg)
Degré d’un polynôme
• Linéaire– deux points définissent le segment– dérivées définies par la ligne elle-même
zz
yy
xx
btatz
tbtaty
btatx
+=
≤≤+=+=
)(
10 )()(
![Page 6: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/6.jpg)
Degré d’un polynôme
• Quadratique– deux points– une autre condition
• pente
• troisième point
– courbe est planaire en 3D (trois points)
zzz
yyy
xxx
ctbtatz
tctbtaty
ctbtatx
++=
≤≤++=
++=
2
2
2
)(
10 )(
)(
![Page 7: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/7.jpg)
Degré d’un polynôme
• Cubique– deux points– deux conditions
• 2 points
• 2 dérivées
– non-planaire en 3D• Plus élevé
– oscillations souvent indésirables– plus coûteux à évaluer
![Page 8: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/8.jpg)
Courbe cubique
€
x(t) = axt3 + bxt
2 + cxt + dx
y(t) = ayt3 + byt
2 + cyt + dy 0 ≤ t ≤1
z(t) = azt3 + bzt
2 + czt + dz
Q(t) = x(t) y(t) z(t)[ ] = t 3 t 2 t 1[ ]
ax ay az
bx by bz
cx cy cz
dx dy dz
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
= T ⋅G
dQ(t)
dt= 3t 2 2t 1 0[ ] ⋅G
= 3axt2 + 2bxt + cx 3ayt
2 + 2byt + cy 3azt2 + 2bzt + cz[ ]
![Page 9: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/9.jpg)
Continuité
• Une courbe paramétrique est continue partout sauf à ses extrémités
• Les continuités entre deux segments sont:
Géométriques:– : le point de jonction est commun– : … et la direction du vecteur tangent
(pas la longueur)
vitesse d’un point sur la courbe par rapport à t
kBkA <= 0 pour rr
0G1G
1et 0 == tt
![Page 10: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/10.jpg)
Continuité
• Les continuités entre deux segments sont:
Paramétriques:– : … et la longueur du vecteur tangent (k = 1)
implique excepté lorsque– : … et la direction et la longueur de– : accélération d’un point sur la courbe par
rapport à t
1C
nC
1C 1G )0,0,0(=tg
n
n
dt
tQd )(
2C
![Page 11: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/11.jpg)
Contraintes
• Points aux extrémités du segment• Vecteurs tangents• Continuité entre les segments
Une courbe cubique est définie par 4 coefficients, donc requiert 4 contraintes pour résoudre le système
![Page 12: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/12.jpg)
Courbes d’après les contraintes
• Hermite– deux points– deux tangentes
• Bézier– deux points– deux points contrôlant les tangentes
• Splines– quatre points
B-splines (uniformes et non-uniformes) -splines
![Page 13: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/13.jpg)
Interpolation linéaire
€
Q(t) = t 1[ ] m11 m12
m21 m22
⎡
⎣ ⎢
⎤
⎦ ⎥
g1x g1y g1z
g2x g2y g2z
⎡
⎣ ⎢
⎤
⎦ ⎥
T ⋅ M ⋅ G
€
M =−1 1
1 0
⎡
⎣ ⎢
⎤
⎦ ⎥
€
x(t) = g1x (1− t) + g2xt
y(t) = g1y (1− t) + g2yt
z(t) = g1z(1− t) + g2zt€
x(t) = g1xm11 + g2xm12( ) t + g1xm21 + g2xm22( )
![Page 14: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/14.jpg)
Interpolation cubique
€
Q(t) = t 3 t 2 t 1[ ]
m11 m12 m13 m14
m21 m22 m23 m24
m31 m32 m33 m34
m41 m42 m43 m44
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
g1x g1y g1z
g2x g2y g2z
g3x g3y g3z
g4x g4 y g4 z
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
T ⋅ M ⋅ G
G : contraintes géométriquesM : matrice de la baseTM : blending (poids de chaque contrainte pour t)
![Page 15: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/15.jpg)
Transformations
• Transformer les contraintes G est équivalent à transformer la courbe parce que la courbe est définie par une combinaison linéaire des 4 contraintes
• Donc la courbe est invariant sous rotation, changement d’échelle et translation
• Mais la courbe varie après une projection en perspective
![Page 16: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/16.jpg)
Courbe d’Hermite
• Contraintes– points aux extrémités– tangentes aux extrémités
41 et PP
41 et RR
1P
4P
1R
4R
![Page 17: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/17.jpg)
Courbe d’Hermite
HxH GMTtx ⋅⋅=)(
€
t = 0 x(0) = P1x = 0 0 0 1[ ] ⋅M H ⋅GHx
t =1 x(1) = P4x = 1 1 1 1[ ] ⋅M H ⋅GHx
t = 0 x '(0) = R1x = 0 0 1 0[ ] ⋅M H ⋅GHx
t =1 x '(1) = R4x = 3 2 1 0[ ] ⋅M H ⋅GHx
€
GHx = [ ] ⋅M H ⋅GHx
![Page 18: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/18.jpg)
Courbe d’Hermite
€
GHx = [ ] ⋅M H ⋅GHx
€
[ ] ⋅M H = I ⇒ M H = [ ]−1
=
2 −2 1 1
−3 3 −2 −1
0 0 1 0
1 0 0 0
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
€
Q(t) = x(t) y(t) z(t)[ ] = T ⋅M H ⋅
P1
P4
R1
R4
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
![Page 19: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/19.jpg)
Courbe d’Hermite fonctions deblending d’Hermite
)(
)2(
)32(
)132(
234
231
234
231
ttR
tttR
ttP
ttP
−
++−
++−
++− 1P 4P
1R
4R
1
1
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
↔
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
7
7
4
4
1
4
1
0 :
R
R
P
P
R
R
P
P
C
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
↔
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
7
4
7
4
4
1
4
1
1 :
R
kR
P
P
R
R
P
P
G
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
↔
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
7
4
7
4
4
1
4
1
1 :
R
R
P
P
R
R
P
P
C
€
BH = T ⋅M H = t 3 t 2 t 1[ ]
2 −2 1 1
−3 3 −2 −1
0 0 1 0
1 0 0 0
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
![Page 20: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/20.jpg)
Courbe de Bézier
• Contraintes– points aux extrémités– tangentes aux extrémités sont déterminées par
deux points de contrôle
41 et PP
1P
4P
2P
3P
32 et PP
![Page 21: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/21.jpg)
Tangentes sur Bézier
• Les deux tangentes d’Hermite sont déterminées par les deux points de contrôle additionnels 32 et PP
)(3)1('
)(3)0('
3443
1221
PPQPP
PPQPP
−=
−=→
→
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
4
3
2
1
4
1
4
1
3300
0033
1000
0001
P
P
P
P
R
R
P
P
1P 4P2P 3P
facteur 3: vitesse constante
BBHH GMG ⋅=
![Page 22: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/22.jpg)
De Hermite à Bézier
BB
BBHH
BBHH
HH
BBHH
GMT
GMMT
GMMT
GMTtQ
GMG
⋅⋅=⋅⋅⋅=⋅⋅⋅=
⋅⋅=⋅=
)()(
)(
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−
=
0001
0033
0363
1331
BM
![Page 23: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/23.jpg)
0C
distance même la àet ... 1 :
scolinéairesont ,, 0 )(:1
54354431
=
<−=−
kC
PPPkPPkPPG
Contraintes de Bézier
1G
1C
![Page 24: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/24.jpg)
Courbe de Bézier
fonctions de blending de Bézier
)(
3)1(
3)1(
)1(
34
23
22
31
tP
ttP
ttP
tP
+−
+−
+−1B 4B
2B 3B
1
1Polynôme de Bernstein
€
BB = T ⋅MB = t 3 t 2 t 1[ ]
−1 3 −3 1
3 −6 3 0
−3 3 0 0
1 0 0 0
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
![Page 25: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/25.jpg)
Propriétés de Bézier
• (1) et (2) impliquent que– Q(t) est une somme pondérée des 4 points
– la courbe est complètement comprise dans l’enveloppe convexe (convex hull) des 4 points
• Enveloppe convexe (convex hull) peut servir à– subdivision (planarité de la courbe)
– clippage (acceptation/rejet trivial)
€
(1) BB
4
∑ (t) =1
(2) BB (t) ≥ 0
⎫ ⎬ ⎪
⎭ ⎪ 0 ≤ t ≤1
![Page 26: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/26.jpg)
Cubique par morceaux: propriétés désirées
• Chaque segment est une cubique• La courbe interpole les points de contrôle• La courbe a contrôle local• La courbe a une continuité
• Les différentes familles de représentations ne peuvent satisfaire au plus que trois de ces quatre propriétés
€
C2
![Page 27: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/27.jpg)
Splines
• baguette flexible de métal avec des attaches pour la déformer
• utilisée pour mesurer des surfaces courbes• équivalent mathématique est la spline cubique
naturelle
![Page 28: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/28.jpg)
Spline cubique naturelle
+ interpole les points de contrôle
+ donc plus lisse que Hermite et Bézier à - les coefficients dépendent des n points de contrôle,
donc contrôle global seulement- doit inverser une matrice de
code dans Numerical Recipes in C
Impossible d’avoir , interpoler les points et un contrôle local avec des courbes cubiques
2C 1C
)1()1( +×+ nn
2C
![Page 29: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/29.jpg)
B-spline uniforme non-rationnelle
+ les coefficients ne dépendent que de quelques points, donc contrôle local
+ même continuité que la spline naturelle
- n’interpole pas les points de contrôle
points de contrôle :
segments de courbes
1+m2−m
3 ,...,0 ≥mPP m
mQQ ,...,3
![Page 30: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/30.jpg)
B-spline uniforme non-rationnelle
est défini par 4 points de contrôle
• Propriété de l’enveloppe convexe
• affecte 4 segments
iiii PPPP ,,, 123 −−−iQ
iQ
3−iP
2−iP1−iP
iP
€
(1) BS
4
∑ (t) =1
(2) BS (t) ≥ 0
⎫ ⎬ ⎪
⎭ ⎪ ti ≤ t ≤ ti+1 ti+1 − ti =1 (uniforme)
iP
![Page 31: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/31.jpg)
B-spline uniforme non-rationnelle
2−BsB1
1
1−BsB
3−BsB 0BsB1/6
4/6€
Qi(t) = (t − ti)3 (t − ti)
2 (t − ti) 1[ ] ⋅1
6
−1 3 −3 1
3 −6 3 0
−3 0 3 0
1 4 1 0
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
Pi−3
Pi−2
Pi−1
Pi
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
BsiBsii GMTtQ ⋅⋅=)(
![Page 32: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/32.jpg)
B-spline non-uniforme non-rationnelle
+ les intervalles entre les noeuds n’ont pas à être uniformément espacés en t
- ceci entraîne que les fonctions de blending diffèrent dans chaque intervalle
+ possible de réduire de à à et même non-
+ à la courbe interpole les points de contrôle sans hacking (i.e. sans introduire des segments linéaires)
+ peut ajouter des noeuds intermédiaires pour un contrôle encore plus local
2C 1C 0C 0C0C
![Page 33: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/33.jpg)
B-spline non-uniforme rationnelle (NURBS)
• Points de contrôle sont définis en coordonnées homogènes
• Invariant sous rotation, changement d’échelle, translation et projection en perspective (projette les points de contrôle)
• Définit aussi les coniques (alors que non-rationnelle approxime seulement les coniques)
[ ])()()()()( tWtZtYtXtQ =
[ ]11/)(1/)(1/)( 1)( tZtYtXtW ⇒=
![Page 34: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/34.jpg)
Spline Catmull-Rom
+ Interpole les points de contrôle à l’exception du premier et du dernier point
+ Contrôle local
+ Tangente à est parallèle au segment
- Ne possède plus la propriété de l’enveloppe convexe
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−−
−−
⋅=−
−
−
i
i
i
i
ii
P
P
P
P
TtQ1
2
3
0020
0101
1452
1331
2
1)(
iP 11 −+ − ii PP
![Page 35: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/35.jpg)
-spline
• Ajoute deux variables de contrôle valide sur toute la courbe
• : biais
• : tension
• mais seulement
1
2
2G 0C
direction autrel' dans biais ; 1 si
desupérieur côtédu ngente ta
lapar influencéeest spline la ; 1 si
1
1
<
<
t
contrôle de points ses de
rapprochéeest spline la ; 1 si 2<
![Page 36: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/36.jpg)
Contrôle de courbe
• On peut modifier la forme d’une courbe en manipulant ses points de contrôle (G)
• Mais la forme peut ne pas correspondre aux attentes de l’usager dues aux limites de la cubique et du nombre de segments
![Page 37: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/37.jpg)
Contrôle de courbe - Solutions
• Augmenter le degré du polynôme (>3)– plus de points d’inflections (oscillations)– plus coûteux à évaluer
• Subdiviser en plus de segments– construction de de Casteljau pour évaluer une
courbe de Bézier à la position t– diminution de variation des enveloppes
convexes de la courbe
![Page 38: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/38.jpg)
Construction de de Casteljau
1- t
1- t
1- t
1- t1- tt
t
t
t
tt
1 - t
![Page 39: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/39.jpg)
Diminution de variation (variation diminishing)
• Les nouveaux points de contrôle sont à l’intérieur de l’enveloppe convexe des points de contrôle de la courbe non-subdivisée
![Page 40: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/40.jpg)
Conversion entre différentes représentations
€
Q(t) = T ⋅M2 ⋅G2 = T ⋅M1 ⋅G1
M2 ⋅G2 = M1 ⋅G1
G2 = (M2−1 ⋅M1) ⋅G1
G2 = Mconversion ⋅G1
![Page 41: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/41.jpg)
Traçage de courbe
• Evaluation à de Q(.)– naïf (11x, 10+)
– règle de factorisation de Horner (9x, 10+)
– incrémental (forward differences) (9+, init)
δ+t
€
x(t) = axt3 + bxt
2 + cxt + dx
€
x(t) = ((axt + bx )t + cx )t + dx
![Page 42: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/42.jpg)
Forward differences
€
x(t + δ) = x(t) + Δx(t)
€
Δx(t) = x(t + δ) − x(t)
= ax (t + δ)3 + bx (t + δ)2 + cx (t + δ) + dx − axt3 − bxt
2 − cxt − dx
= (3axδ)t 2 + (3axδ2 + 2bxδ)t + δ(axδ
2 + bxδ + cx )
€
Δx(t + δ) = Δx(t) + Δ(Δx(t))
Δ(Δx(t)) = Δx(t + δ) − Δx(t)
= 6axδt + 6axδ3 + 2bxδ
2
€
Δ(Δ(Δx(t))) = Δ(Δx(t + δ)) − Δ(Δx(t))
= 6axδ3
![Page 43: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/43.jpg)
Forward differences
€
x(0) = dx
Δx(0) = axδ3 + bxδ
2 + cxδ
Δ(Δx(0)) = 6axδ3 + 2bxδ
2
Δ(Δ(Δx(0))) = 6axδ3
€
x+ = Δx
Δx+ = Δ(Δx)
Δ(Δx)+ = Δ(Δ(Δx))
segment(x,y,z)
à t=0:
boucle:
![Page 44: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/44.jpg)
Traçage de courbe
• Evaluations à des intervalles fixes en t– Des intervalles réguliers en t ne correspondent
pas à des intervalles réguliers en espace 3D– Si l’intervalle est trop grand, la courbe
ressemble à des segments de lignes; si l’intervalle est trop petit, on fait trop de calculs
• Subdivision récursive basée sur la longueur– Si la distance entre Q(t) et Q(t+dt) est plus
grande que le seuil désiré, subdivise dt
![Page 45: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/45.jpg)
Traçage de courbe
• Subdivision récursive sur la linéarité– critère d’arrêt lorsque la portion de la courbe
est suffisamment plate pour être remplacée par un simple segment de ligne
– basé sur la propriété de l’enveloppe convexe et de la diminution de variation
1P
2P
3P
4P2d
3d
remplace parsi
41PPεε << 32 et dd
![Page 46: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/46.jpg)
Surfaces bicubiques
1D courbe
)(
4
3
2
1
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅⋅=⋅⋅=
x
x
x
x
x
gggg
MTGMTtx
3D courbe
)(
4
3
2
1
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅⋅=⋅⋅=
gggg
MTGMTtQ
3D surface
)(
)(
)(
)(
)(),(
4
3
2
1
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅⋅=⋅⋅=
tgtgtgtg
MStGMStsQ
![Page 47: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/47.jpg)
Surfaces bicubiques
(0,0)
(0,1) (1,0)
(1,1)
st
(0.5,0)
(0.5,0.5)
(0,0.5)
(0.5,1)
(1,0.5)
![Page 48: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/48.jpg)
Surfaces bicubiques
• G(t) est constante: courbe cubique• G(t) n’est pas constante: surface• G(t) est cubique en t:
Afin de conserver t en vecteur ligne:
€
Qi(t) = T ⋅M ⋅Gi
€
(T ⋅M ⋅Gi)T = Gi
T ⋅MT ⋅TT
€
Q(s, t) = S ⋅M ⋅G ⋅MT ⋅TT
où G =
g11 g12 g13 g14
g21 g22 g23 g24
g31 g32 g33 g34
g41 g42 g43 g44
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
![Page 49: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/49.jpg)
Surfaces bicubiques
€
Q(s, t) = S ⋅M ⋅G ⋅MT ⋅TT
où G =
g11 g12 g13 g14
g21 g22 g23 g24
g31 g32 g33 g34
g41 g42 g43 g44
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
t
s 4 contraintes en tpour s = 0
4 contraintes en spour t = 0 16 points de contrôle
4 contraintes en tpour s = 1
4 contraintes en spour t = 1
![Page 50: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/50.jpg)
Surface de Bézier
![Page 51: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/51.jpg)
Surface de Bézier
€
x(s, t) = S ⋅MB ⋅GBx ⋅MBT ⋅TT
€
∂Q(s, t)
∂s=
∂(S)
∂s⋅M ⋅G ⋅MT ⋅TT
= 3s2 2s 1 0[ ] ⋅M ⋅G ⋅MT ⋅TT
∂Q(s, t)
∂t= S ⋅M ⋅G ⋅MT ⋅
∂(TT )
∂t
= S ⋅M ⋅G ⋅MT ⋅
3t 2
2t
1
0
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
€
rN =
∂Q(s, t)
∂s×
∂Q(s, t)
∂t
![Page 52: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/52.jpg)
Notes sur les surfaces bicubiques
• Affichage par subdivision– lorsque les subdivisions ne sont pas uniformes
dans une des directions paramétriques s ou en t, des craques peuvent apparaître entre les polygones résultants
• Textures– paramétrisation ),(),( vuts →
![Page 53: IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal](https://reader035.vdocuments.net/reader035/viewer/2022062307/551d9dbf497959293b8e0927/html5/thumbnails/53.jpg)
Standards historiques