Documente Academic
Documente Profesional
Documente Cultură
a aplicaţiilor grafice
Mihai-Sorin Stupariu
0 Motivaţie 3
0.1 Cum reprezentăm? . . . . . . . . . . . . . . . . . . . . . . . . . . 3
0.2 Cum putem crea efecte realiste? . . . . . . . . . . . . . . . . . . . 4
0.3 Ce reprezentăm? . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1
Bibliografie 27
2
Capitolul 0
Motivaţie
'$
}
&%
Comentarii:
(i) Fonturile sunt de fapt elemente grafice.
(ii) În proiectare este nevoie de forme cât mai variate, fie la nivel de schiţă,
fie ı̂ntr-un stadiu mai avansat de proiectare.
Scop: Cum generăm elementele de grafică vectorială? (Curbe Bézier).
Cum putem manevra grafica rasterială? (Tehnici de procesare a imaginilor)
3
0.2 Cum putem crea efecte realiste?
Tehnica Ray Tracing
0.3 Ce reprezentăm?
Obiectele utilizate ı̂n grafica 3D sunt bazate pe reţele de poligoane şi triun-
ghiuri (polygon / triangle meshes)
4
Capitolul 1
unde (aij )i,j sunt coeficienţi reali astfel ca (a11 , a12 , a22 ) 6= (0, 0, 0).
Pentru conica descrisă de ecuaţia (1.1) vom nota
a11 a12 a13
a11 a12
a= , A = a12 a22 a23 .
a12 a22
a13 a23 a33
Exemple.
x2 x2 1 1
(i) 1 + 2 − 1 = 0. Avem δ = ,∆=− , r = 2, R = 3.
9 25 225 225
5
(ii) 2x21 + 8x1 x2 + 10x22 − 2x1 + 2x2 − 5 = 0. Avem δ = 12, ∆ = −140, r = 2,
R = 3.
(iii) x21 − 2x1 x2 − x22 + 4x1 − 4 = 0. Avem δ = −2, ∆ = 12, r = 2, R = 3.
(iv) x22 − 6x1 = 0. Avem δ = 0, ∆ = −9, r = 1, R = 3.
(v) x21 + 2x1 x2 + x22 − 4 = 0. Avem δ = 0, ∆ = 0, r = 1, R = 2.
Definiţii.
O conică se numeşte nedegenerată dacă ∆ 6= 0. În cazul ı̂n care ∆ = 0,
conica se numeşte degenerată.
Un punct P0 ∈ R2 se numeşte centru al unei conice dacă simetria de centru
P0 invariază conica.
Un punct PO = (x10 , x20 ) este centru al conicei dacă şi numai dacă perechea
(x10 , x20 ) este soluţie a sistemului
a11 x10 + a12 x20 + a13 = 0
a21 x10 + a22 x20 + a23 = 0.
Rezultate:
(i) Mulţimea centrelor unei conice formează o varietate liniară (mulţimea
vidă, un punct sau o dreaptă).
(ii) O conică are centru unic dacă şi numai dacă δ 6= 0.
Definiţie. O cuadrică este un loc geometric din spaţiul R3 dat prin anu-
larea unui polinom de gradul II, adică printr-o ecuaţie analoagă lui (1.1), ı̂n
care apar coordonatele x1 , x2 , x3 . În mod similar se construiesc matricele a, A
şi definesc numerele r şi R, fiind aplicate considerente şi raţionamente analoage
6
celor din cazul conicelor. Mai jos sunt câteva exemple de cuadrice scrise sub
forma canonică.
R r Forma canonică afină a cuadricei Denumire
4 3 x21 + x22 + x23 − 1 = 0 Elipsoid
x21 + x22 − x23 − 1 = 0 Hiperboloid cu o pânză
x21 − x22 − x23 − 1 = 0 Hiperboloid cu două pânze
4 2 x21 − x32 − 2x3 = 0 Paraboloid hiperbolic
3 3 x21 + x22 − x23 = 0 Con
3 2 x21 + x22 − 1 = 0 Cilindru eliptic
x21 − x22 − 1 = 0 Cilindru hiperbolic
3 1 x21 − 2x2 = 0 Cilindru parabolic
2 2 x21 + x22 = 0 Dreaptă dublă
x21 − x22 = 0 Pereche de plane secante
2 1 x21 − 1 = 0 Pereche de plane paralele
1 1 x21 = 0 Plan dublu
Algoritmul de Casteljau
7
Fie b0 , b1 , . . . , bn ∈ Rm . Pentru t ∈ [0, 1] se notează b0i (t) := bi (i =
0, . . . , n) şi se definesc inductiv punctele de Casteljau
r r−1 r−1 r = 1, . . . , n
bi (t) := (1 − t)bi (t) + tbi+1 (t), (1.3)
i = 0, . . . , n − r
Teoremă. Punctul bn0 (t) descrie, când t variază, curba Bézier asociată poligo-
nului de control (b0 , . . . , bn ) dată de ecuaţia (1.2).
Proprietăţi elementare
Fie (b0 , . . . , bn ) un poligon de control din Rm . Curba Bézier asociată b :
[0, 1] → Rm are următoarele proprietăţi:
(i) b este o curbă polinomială, având gradul mai mic sau egal cu n;
(ii) curba b interpolează extremităţile poligonului de control, i.e. b(0) = b0 ,
b(1) = bn ; ı̂n particular, dacă poligonul de control este ı̂nchis, curba Bézier
asociată este ı̂nchisă;
(iii) proprietatea acoperirii convexe: punctele curbei Bézier b se află ı̂n
acoperirea convexă a punctelor de control;
(iv) invarianţa la schimbări afine de parametru: dacă ϕ : [0, 1] →
[α, β], ϕ(t) = α + t(β − α) este o schimbare afină de parametru şi dacă b[α,β]
este curba Bézier asociată poligonului de control (b0 , . . . , bn ), dar definită pe
intervalul [α, β], atunci b = b[α,β] ◦ ϕ;
(v) invarianţă afină: dacă τ : Rm → Rm este o aplicaţie afină, atunci
curba Bézier asociată poligonului de control date de (τ (b0 ), . . . , τ (bn )) este
curba τ (bn );
(vi) (Invarianţa la combinaţii baricentrice): fie (b0 , . . . , bn ), respectiv
(b0 , . . . , b
e e n ) două poligoane de control şi b, respectiv b e curbele Bézier cores-
punzătoare. Pentru orice α ∈ R, curba Bézier asociată poligonului de control
((1 − α)b0 + αb e 0 , . . . , (1 − α)bn + b
e n ) este curba (1 − α)b + αb.
e
(vii) dacă b e : [0, 1] → Rm este curba Bézier asociată poligonului de control
(bn , . . . , b0 ), atunci b(t)
e = b(1 − t), ı̂n particular, cele două curbe au aceeaşi
imagine geometrică.
o matrice ale cărei elemente sunt puncte din R3 , numită reţea Bézier (po-
liedru de control). Suprafaţa Bézier de tip produs tensorial asociată
acestor date este dată de formula:
m X
X n
3
: [0, 1] × [0, 1] → R , ( u, v) = Bim (u)Bjn (v)bij .
i=0 j=0
8
Proprietăţi elementare
(i) Prin analogie cu curbele Bézier, suprafaţa de tip produs tensorial are
următoarele proprietăţi:
- interpolarea punctelor b00 =( 0, 0), b0n =( 0, 1), bm0 =( 1, 0), bmn =( 1, 1);
- imaginea suprafeţei este inclusă ı̂n acoperirea convexă a punctelor polie-
drului de control;
- invarianţă la transformări afine.
(ii) Curbele frontieră, i.e. curbele de coordonate ( 0, ·), ( 1, ·), ( ·, 0) şi ( ·, 1) sunt
curbe Bézier având poligoane de control respectiv (b00 , b01 , . . . , b0n ),
(bm0 , bm1 , . . . , bmn ), (b00 , b10 , . . . , bm0 ), (b0n , b1n , . . . , bmn ). Restul curbelor
de coordonate sunt, la rândul lor, curbe Bézier. Totuşi, acestea din urmă nu au
drept puncte de control linii sau coloane din matricea (bij )i,j .
Exemplu. Dacă m = n = 1 avem
1 X
1
X b00 b01 1−v
( u, v) = Bi1 (u)Bj1 (v)bij = (1 − u u) .
b10 b11 v
i=0 j=0
De exemplu, dacă
b00 = (0, 0, 0), b01 = (1, 0, 0), b10 = (0, 1, 0), b11 = (1, 1, 1),
un calcul direct arată că ( u, v) = (v, u, uv).
1.3 Exerciţii
Exerciţiul 1.2 Considerăm poligonul de control (b0 , b1 , b2 , b3 ), unde
b0 = (2, 3), b1 = (4, 3), b2 = (4, 5), b3 = (−2, 9).
Scrieţi schema de Casteljau corespunzătoare acestui poligon de control şi valorii
t = 21 a parametrului.
9
Capitolul 2
Grafică rasterială -
procesarea imaginilor
2.1 Motivaţie
Sunt considerate trei imagini digitale (Fig. 2.2), una este originalul, (149604
bytes - Image B); a doua şi a treia utilizează tehnici de compresie şi contin
12253 bytes (Image C), respectiv 4452 bytes (Image A) (8%, respectiv 3% din
original). Deşi dimensiunea imaginilor este diferită, diferenţele sunt greu de
sesizat. Scopul capitolului este de a detalia, pe scurt, tehnicile folosite pentru
compresia imaginilor.
Figura 2.1: O imagine digitală şi două variante obţinute folosind tehnici de com-
presie. Sursa: C. Bénéteau, C. Haddad, D. Ruch, P. Van Fleet, Why Wavelets?,
IMA Wavelet Workshop, 2011
10
Sunt două principii ce trebuie avute ı̂n vedere:
a) O imagine este un semnal digital discret, ce poate fi modelat cu ajutorul
matricelor. Cu aceste matrice pot fi efectuate diferite operaţii. De exemplu,
dacă c = 0.5 şi A este semnalul iniţial, atunci c × A este o imagine cu un
contrast mai redus; dacă T este matricea care are toate elementele 255 / 1
(valoarea maximă admisă), atunci T − A este negativul imaginii iniţiale A, etc.
b) În loc de a transmite semnalul ı̂n forma sa originală, transmitem o medie
semnalului şi anumite diferenţe, adică semnalul modificat.
11
2.2.1 Cazul 1D
a) Notaţii. Semnale discrete şi continue
Semnal continuu:
Semnal discret:
a : Z → R; i 7→ a[i]
12
Filtrul liniar.
1 − |x| x ∈ [−1, 1)
flin : R → R; flin (x) =
0 ı̂n rest
flin ( xr )
flin,r : R → R; flin,r (x) = .
r
Filtrul Gaussian.
1 x2
fG : R → R; fG (x) = √ e− 2 .
2π
Pentru σ > 0 se defineşte
1 x2
fG,σ : R → R; fG,σ (x) = √ e− 2σ2 .
σ 2π
13
Filtrul Ricker (Mexican Hat).
Pentru σ > 0 se defineşte
x2
2 x2
ψσ : R → R; ψσ (x) = √ √ 1− 2 e− 2σ2 .
3σ 4 π σ
2.2.2 Cazul 2D
a) Convoluţie 2D − cazul discret
Definiţie. Fie a, b : Z2 → R semnale discrete (cu suport finit). Convoluţia
a ? b este semnalul a ? b : Z2 → R dat de formula
X
(a ? b)[i, j] = a[i0 , j 0 ]b[i − i0 , j − j 0 ],
i0 ,j 0
unde b poate fi privit ca semnal de intrare, iar a ca filtru (mască, nucleu, ...).
Exemplu pentru convoluţia 2D.
14
2D Mexican Hat (dilation factor equal to 6)
0.6
0.4
0.2
-0.2
40
30 40
20 30
20
10
10
0 0
100 10
50 5
0 0
−50 −5
−100 −10
−150 −15
0 5 10 15 20 25 30 0 5 10 15 20 25 30
15
Transformata Fourier continuă
• Fapt: orice semnal periodic f : R → R poate fi scris ca
∞
X
f (x) = a0 + [ak cos(kx) + bk sin(kx)]
k=1
– Semnificaţie:
– Este indicată o bază B a unui spaţiu vectorial (infinit dimensional)
de funcţii (1, cos(n·), sin(n·))
– Semnalul este ”descompus” ı̂n raport cu această bază:
– a da un semnal este echivalent cu a da coeficienţii a0 , a1 , a2 , . . . ; b0 , b1 , b2 , . . ..
– Pentru a ”comprima” / aproxima semnalul este suficient să fie indicaţi
un număr finit de coeficienţi!
• Exemplu: Pentru funcţiile periodice pe [−π, π] au loc relaţiile
Z π Z π
1 1
an = f (x) cos(nx)dx, n ≥ 0; bn = f (x) sin(nx)dx, n ≥ 1.
π −π π −π
Relaţii fundamentale
• Au loc egalităţile:
Z π 0, m 6= n
cos(mx) cos(nx)dx = 2π, m = n = 0
−π
π, m = n 6= 0
Z π
0, m 6= n
sin(mx) sin(nx)dx =
−π π, m=n
Z π
cos(mx) sin(nx)dx = 0
−π
• Semnificaţie:
• Baza B este o bază ortogonală a spaţiului de funcţii considerat! (produsul
scalar este dat de integrare)
Aplicare
• Semnalul: transformat, coeficienţii Fourier ai frecvenţelor ı̂nalte: eliminaţi.
• Fast Fourier Transform (FFT) eficientizează algoritmul (O(n log n) ı̂n loc
de O(n2 ))
• Discrete Cosine Transform (DCT): ”partea reală”
• Implementare: formatul JPEG
• Exemplu
• Dezavantaje:
– Nu orice semnal este periodic.
– Unele semnale sunt ”localizate”
16
2.4 Transformate wavelet (Undine)
(i) Semnal discret 2D
(ii) Semnal discret 1D
Şir de numere reale x = (x1 , x2 , . . . , xN ) cu N par. Trebuie transmisă o
aproximare s a acestor date.
• Pentru a reduce timpul de transfer, lungimea aproximării trebuie să fie
N/2. Cum se procedează?
• Este posibil să fie trimis şi un set de date adiţionale. De exemplu, poate fi
trimisă o a doua listă d. Ce listă ar putea fi trimisă aşa ı̂ncât lista iniţială
x să poată fi recuperată din s şi d?
sk = (x2k+1 + x2k+2 )/2; sk = (−x2k+1 + x2k+2 )/2.
Transformarea x 7→ (s|d) se numeşte transformarea Haar discretă (Discrete
Haar Wavelet Transform).
• Intuitiv: Baza de funcţii periodice de la transformata Fourier este ı̂nlocuită
cu altă bază (alte baze)
• Mecansimul de generare: prin divizare
• Esenţiale: ϕ (”scaling function”), ψ (”wavelet”) cu ajutorul acestora este
construită baza spaţiului de funcţii
• Diverse alegeri pentru ϕ&ψ (Haar, Daubechies, Meyer, ”mexican hat”) şi
aplicaţii ı̂n domenii variate.
• Avantaje:
– Utilizarea ı̂n analize multi-rezoluţie, datorită percepţiei ”multi-scale”
– Pot fi utilizate şi pentru semnale cu discontinuităţi / care nu sunt
periodice.
2.5 Exerciţii
Exerciţiul 2.1 Fie f filtrul continuu constant nenul pe (−2, 2). Determinaţi
intervalul pe care va fi nenulă convoluţia f ? f .
Exerciţiul 2.4 Fie f = 2φ20 + 3φ21 + 3φ22 + 5φ23 ı̂n spaţiul V 2 . Determinaţi
f ( 81 ) + f ( 38 ) + f ( 58 ) + f ( 78 ).
17
Figura 2.9: Analiză multirezoluţie - exemplu. Sursa: Institute of Mathematics
and Its Applications, University of Minnesota, IMA Special Workshop Wavelets
and Applications: Project Building Workshop http://www.ima.umn.edu/2010-
2011/SWb7.13-16.11/
18
Capitolul 3
19
• se duce o rază prin punctul P0 care uneşte acest punct cu centrul unui
pixel virtual;
• se găseşte primul obiect intersectat (eventual se găsesc toate obiectele
intersectate) de rază;
Implementarea are doi paşi, aplicaţi pentru fiecare pixel virtual: (i) repre-
zentarea razelor şi (ii) determinarea intersecţiilor.
(i) Pentru t < 0 punctul curent r(t) se află ”ı̂n spatele” observatorului;
(ii) Pentru 0 < t1 < t2 punctul r(t1 ) este mai aproape de observator decât
punctul r(t2 ), etc.
3.1.2 Intersecţii
Interecţii cu sfere. Fie S o sferă de centru C ∈ R3 şi rază R > 0. Datorită
invarianţei ecuaţiei sferei la izometrii, se poate lucra direct ı̂n coordonate de
20
vizualizare, fiind necesară cel mult o translaţie. Fie X = (uX , vX , nX ) un
punct; atunci el aparţine sferei dacă şi numai dacă
(X − C) · (X − C) − R2 = 0.
raza r dată de (3.2) intersectează sfera dacă şi numai dacă există t ∈ R astfel
ı̂ncât
(r(t) − C) · (r(t) − C) − R2 = 0.
Notând d = P − P0 , ecuaţia de mai sus este echivalentă cu
adică la o ecuaţie de gradul II ı̂n t. Pentru aceasta este verificată mai ı̂ntâi
condiţia de existenţă a soluţiilor reale (∆ ≥ 0), apoi, dacă admite soluţii se
găseşte cea mai mică soluţie pozitivă, etc.
(1 − β − γ)a + βb + γc, β, γ ∈ R,
iar un punct situat pe laturile triunghiului sau ı̂n interiorul său poate fi repre-
zentat sub formă de combinaţie convexă
În coordonate, ecuaţia (3.3) reprezintă un sistem de trei ecuaţii cu trei necu-
noscute. Compatibilitatea sa şi natura soluţiilor (dacă există) dau informaţii
despre intersecţia dintre rază şi triunghi:
21
Intersecţii cu poligoane convexe. Fie P1 P2 . . . Pm un poligon convex; fie
p normala la planul triunghiului (este bine definită, deoarece poligonul este
convex!). Un punct arbitrar X aparţine planului poligonului dacă şi numai dacă
vectorul format de X şi unul dintre vârfuri (de exemplu P1 ) este perpendicular
pe p, deci
(X − P1 ) · p = 0.
Intersecţia dintre raza r şi plan este dată de condiţia
(r(t) − P1 ) · p = 0,
care este o ecuaţie ı̂n t. Soluţia (dacă există) poate fi scrisă sub forma
P1 − P0 ) · p
t0 = .
d·p
Pasul următor este de a stabili dacă, pentru t0 astfel determinat, punctul r(t0 )
este pe laturile sau ı̂n interiorul poligonului, ceea ce revine la a stabili dacă
r(t0 ) poate fi exprimat sub formă de combinaţie convexă a trei dintre vârfurile
poligonului. Din punct de vedere practic, dat fiind faptul că poligonul este
convex, el poate fi triangulat folosind un evantai de triunghiuri având un vârf
comun (de exemplu P1 ), fiind suficiente m − 2 teste.
ρ − δ = w = 2(−δ · s)s,
22
unde (−δ · s)s este proiecţia ortogonală a lui δ pe dreapta direcţionată de s.
Aşadar, direcţia de reflexie este
ρ = δ − 2(δ · s)s.
Aplicând Ray Tracing sub forma RT(P, ρ, ε, ∞), se poate stabili ce obiecte ı̂ntâlneşte
raza reflectată.
ν sin θ = ν 0 sin ϕ.
Aplicând Ray Tracing sub forma RT(P, %, ε, ∞), se poate stabili ce obiecte ı̂ntâlneşte
raza refractată.
3.3 Exerciţii
Exerciţiul 3.1 Fie P0 = (0, 2, 1) şi punctele a = (−1, 1, −1), b = (4, 0, −1), c =
(−1, 4, −1). Daţi exemplu de vector r astfel ca raza dusă prin P0 având direcţia
dată de r să intersecteazeinteriorul triunghiului abc.
23
Capitolul 4
Modelare geometrică 3D
aplicată ı̂n grafică - teme de
interes şi repere
bibliografice
24
• Progressive meshes [Hoppe, 1996]
• Quadric error metric [Garland & Heckbert, 1997]
25
v
ni
ni−1
θi
ηi
vi−2
vi+2
vi−1
αi
βi vi+1
vi
26
Bibliografie
27