Geometriai modellezés

Slides:



Advertisements
Hasonló előadás
Számítógépes geometriai leíró nyelvek
Advertisements

Koordináta transzformációk
Koordináta transzformációk
2D képszintézis Szirmay-Kalos László.
Geometriai Transzformációk
Analitikus (koordináta) geometriai gyorstalpaló
Geometriai transzformációk
Inkrementális 3D képszintézis
Geometriai modellezés
Sugárkövetés: ray-casting, ray-tracing
Inkrementális 3D képszintézis Szirmay-Kalos László.
2D képszintézis Szirmay-Kalos László. Számítógépes grafika feladata képszintézis Virtuális világ modell modellezés Metafórák: 2D rajzolás világ = sík.
Számítógépes grafika Szirmay-Kalos László
Számítógépes grafika Szirmay-Kalos László
3D képszintézis fizikai alapmodellje
Virtuális világ tárolása Szirmay-Kalos László. Belső világ tárolása l Geometria: pontok koordinátái l Topológia: élek-pontok; lapok-pontok;... l hierarchia:
Bevezetés.  A számítógépes grafika inkrementális képszintézis algoritmusának hardver realizációja  Teljesítménykövetelmények:  Animáció: néhány nsec.
Regresszió számítás Mérnöki létesítmények ellenőrzése, terveknek megfelelése Geodéziai mérések – pontok helyzete, pontszerű információ Lineáris regresszió.
Klasszikus mechanikai kéttestprobléma és merev test szabad mozgása állandó pozitív görbületű sokaságon Kómár Péter témavezető: Dr. Vattay Gábor
Csoportosítás megadása: Δx – csoport szélesség
Transzformációk kucg.korea.ac.kr.
Számítógépes grafika, PPKE-ITK, Benedek Csaba, D képszintézis 4. előadás.
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
A számítógépes grafika céljai és feladatai
Modellezés és tervezés c. tantárgy Óbudai Egyetem Neumann János Informatikai Kar Intelligens Mérnöki Rendszerek Intézet Mérnöki Informatikus MSc 4. Előadás.
A virtuális technológia alapjai Dr. Horváth László Budapesti Műszaki Főiskola Neumann János Informatikai Kar, Alkalmazott.
Mérnöki objektumok leírása és elemzése virtuális terekben c. tantárgy Budapesti Műszaki Főiskola Neumann János Informatikai Kar Intelligens Mérnöki Rendszerek.
Modellezés és szimuláció c. tantárgy Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Matematikai Intézet Mechatronikai Mérnöki MSc 2. Kontextuális.
Dr. Horváth László – PLM – CCM – 2. előadás: Határfelület-ábrázolás és Euler -i topológia A CAD/CAM modellezés alapjai Dr. Horváth László Budapesti.
Modellezés és tervezés c. tantárgy Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Matematikai Intézet Mérnöki Informatikus MSc 4. Előadás A.
Modellezés és szimuláció c. tantárgy Óbudai Egyetem Neumann János Informatikai Kar Intelligens Mérnöki Rendszerek Intézet Mechatronikai Mérnöki MSc 10.
A GEOMETRIA MODELLEZÉSE
2. Koordináta-rendszerek és transzformációk 2.1. Koordináta-rendszerek 2.2. Az egyenes és a sík egyenlete 2.3. Affin transzformációk 2.4. Projektív transzformációk.
PTE PMMK Matematika Tanszék dr. Klincsik Mihály Matematika III. előadások MINB083, MILB083 Gépész és Villamosmérnök szak BSc képzés 2007/2008. őszi félév.
Számítógépes geometria
2D képszintézis és textúrák
Alapalakzatok Készítette: Varga Marianna Sáfrán Péter Stadler Kolos.
Bevezetés a Számítógépi grafikába - előadás
2. Koordináta-rendszerek és transzformációk
2. Koordináta-rendszerek és transzformációk
Bevezetés az alakmodellezésbe I. Budapesti Műszaki Főiskola Neumann János Informatikai Főiskolai Kar A Műszaki Tervezés Rendszerei 2000/2001 tanév, I.
Bevezetés az alakmodellezésbe II. Budapesti Műszaki Főiskola Neumann János Informatikai Főiskolai Kar A Műszaki Tervezés Rendszerei 2000/2001 tanév, I.
Rezgések elmélete: kétatomos molekula klasszikus leírása
Hőeloszlás háromszögelt síkrészeken Május, 2002 Bálint Miklós Vilmos Zsombori
Pixel műveletek, képek Szirmay-Kalos László.
Vektorok különbsége e-x = [ex-xx ey-xy ez-xz] e e-x x szempozíció
Játékfejlesztés.
Sugárkövetés: ray-casting, ray-tracing
2D képszintézis Szirmay-Kalos László.
Analitikus geometria gyorstalpaló
Inkrementális 3D képszintézis Szirmay-Kalos László.
Számítógépes grafika Bevezetés
3D képszintézis fizikai alapmodellje Szirmay-Kalos László Science is either physics or stamp collecting. Rutherford.
Transzformációk Szirmay-Kalos László. Transzformációk (x,y) (x’,y’) = T(x,y) l Tönkre tehetik az egyenletet l Korlátozzuk a transformációkat és az alakzatokat.
Inkrementális 3D képszintézis
3. Vetületi ábrázolások számítási eljárásai
Geometriai transzformációk
2.2. Az egyenes és a sík egyenlete
2. Koordináta-rendszerek és transzformációk
Bevezetés a számítógépi grafikába 2. Paraméteres görbék Paraméteres görbe: 2D-ben: paraméter: általában: kikötések: legyen folytonos legyen folytonosan.
Fotorealisztikus képszintézis valós időben Szirmay-Kalos László, Csébfalvi Balázs BME IIT.
Geometriai transzformációk
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
Hermite-interpoláció
A számítógépes grafika alapjai, PPKE-ITK, Benedek Csaba, 2010 Tanagyag forrás © Szirmay-Kalos László, BME A számítógépes grafika céljai és feladatai 1.
Algoritmusok és adatszerkezetek elemzése II.
Bevezetés a számítógépi grafikába 1.Bevezetés: A Számítógépi grafika tárgya 2.Képek kódolása 3.A geometrikus grafika alapjai 4.Koordináta-rendszerek és.
2. Koordináta-rendszerek és transzformációk
Görbék, felületek.
Bevezetés Tematika Számonkérés Irodalom
Előadás másolata:

Geometriai modellezés Szirmay-Kalos László

Számítógépes grafika elemei modellezés virtuális világ képszintézis

Modellezés feladatai Geometria megadása Transzformációk pont, görbe, terület, felület, test, fraktálok Transzformációk lokális modellezési és világkoordináta rendszer Színek, felületi optikai tulajdonságok

Pontok megadása Mindent számmal! Koordináta rendszerek Koordináták megadása Koordináta rendszerek Descartes Polár Homogén

Koordináta rendszerek Yh y r 1 f w Xh x 1 1 Descartes eltolás Polár elforgatás Baricentrikus Homogén vetítés

Görbék = pontok halmaza Koordinátáik (helyvektoraik) kielégítenek egy egyenletet : implicit: f(x, y) = 0, f(r) = 0 2D egyenes: ax + by + c = 0, n(r – r0) = 0 Kör: (x–x0)2 + (y–y0)2 –R2 = 0, |r – r0 |2 – R2 = 0 paraméteres: x = x(t), y = y(t), r = r(t) 2D egyenes: t  [-∞,∞] x(t) = x0 + vx t, r = r0 + v t y(t) = y0 + vy t, Kör: t  [0,1] x(t) = x0 + R cos 2t r = r0 + R(cos 2t, sin 2t) y(t) = y0 + R sin 2t

Szabadformájú görbék Definíció kontrolpontokkal Polinom: x(t) = S ai ti, y(t) = S bi ti A polinomegyütthatók származtatása: Interpoláció Approximáció

Lagrange interpoláció Kontrolpontok: r1, r2, r3,..., rn Keressük azt az r(t) = S [ai, bi ] ti-t amelyre r(t1) = r1, r(t2) = r2, … , r(tn) = rn, Megoldás: r(t) = S Li(t) ri P j  i (t-tj) Li(t) = P j  i (ti-tj)

Lagrange interpoláció bázisfüggvényei 1 1 0.33 0.67 P j  i (t-tj) r(t) = S Li(t) ri Li(t) = P j  i (ti-tj)

Görbeszerkesztés Lagrange interpolációval

Bezier approximáció Keresett görbe: r(t) = S Bi(t) ri Bi(t): ne okozzon nem indokolt hullámokat Konvex burok tulajdonság Bi(t)  0,  Bi(t) = 1 r3 r2 r4 r(t) r1 B3(t) B4(t) B2(t) B1(t)

Bezier approximáció bázisfüggvényei 1 n = 3 1 r(t) = S Bi(t) ri ( ) n Bi(t) = t i (1-t)n-i i Bernstein polinomok

BezierCurve class BezierCurve { Vector * p; int np; public: BezierCurve2D(int n) { np= n; p= new Vector[np+1];} float B(int i, float t) { float choose = 1; for(int j = 1; j <= i; j++) choose *= (float)(np-j)/j; return choose * pow(t, i) * pow(1-t,np-i); } Vector r(float t) { Vector rr(0, 0); for(int i = 0; i <= np; i++) rr += p[i] * B(i,t); return rr; };

Bonyolult görbék Nagyon magas fokszámú polinom Összetett görbék: Több alacsony fokszámú + folytonos illesztés folytonossági kategóriák G0 G1 C0: r1(tveg) = r2(tkezd) C1: r1‘ (tveg) = r2‘ (tkezd) C2: r1‘‘ (tveg) = r2‘‘ (tkezd) G0 = C0 C1  G1

Spline Spline: C2 folytonos összetett görbe Harmadfokú spline B-spline

Harmadfokú spline p(t) = a3 t3 + a2 t2 + a1t 1 + a0 Új szemléletes reprezentáció: p(0) = a0 p(1) = a3 + a2 + a1 + a0 p’(0) = a1 p’(1) = 3a3 + 2a2 + a1 C1 folytonosság: 2 paraméter közös C2 folytonosság: pi’’(1) = pi+1’’(0) pi’(1) pi (1) Pi+1’(0) pi’(0) Pi+1 (0) pi (0)

B-spline Válasszunk olyan reprezentációt, amely C2 folytonos, ha 3-t közösen birtokolnak Reprezentáció: vezérlőpontok r i(t) = B0(t)r0 + B1(t)r1 + B2(t)r2 + B3(t)r3 r i+1(t) = B0(t)r1 + B1(t)r2 + B2(t)r3 + B3(t)r4

B-spline bázisfüggvények Cirkuszi elefántok + Járulékos szempont:  Bi(t) = 1 B1(t) = (1+3(1-t)+3t(1-t)2) /6 B0(t) = (1-t)3 /6 B2(t) = (1+3t+3(1-t)t2) /6 B3(t) = t3 /6 1 1

B-spline görbeszegmens 1 konvex burok tulajdonság 1 B0(t) = (1-t)3 /6 B1(t) = (1+3(1-t)+3t(1-t)2) /6 B3(t) = t3 /6 B2(t) = (1+3t+3(1-t)t2) /6

A B-spline lokálisan vezérelhető

NUBS: Non-Uniform B-spline minden szegmens 1 hosszú paramétertartomány Akkor megy át a kontrol ponton, ha három egymás követő kontrolpont egymásra illeszkedik NUBS az i. szegmens ti -től ti+1 -ig. Egy kontrolpont többször is számíthat: A legalább 3-szoros pontokon a görbe átmegy

NUBS rekurzív konstrukciója Cox-deBoor algoritmus

NUBS konstrukció

NUBS program S Bi(t) ri r[i]: n db. Vezérlőpont t[i]: n+k db. csomópont Fokszám = k-1 Hasznos: t[k]-t[n+1] B(i, k, t) { // 0/0 = 1. if (k == 1) { if (t[i] <= t < t[i+1]) return 1; else return 0; } else return ( ( t - t[i] ) * B(i, k-1, t ) / ( t[i+k-1] - t[i] ) + (t[i+k] - t) * B(i+1, k-1, t) / ( t[i+k] - t[i+1] ) ); } NUBS(k, t) { Vector r(0, 0); for(i = 0; i < n; i++) r += r[i] * B(i, k, t); return r; S Bi(t) ri

Végpontokon átmenő NUBS k=4 (harmadfokú) t = [0,0,0,0,1,2,2,2,2] Tartomány: [0,2]

B-Spline mint NUBS n=4 k=4 (harmadfokú) t = [-3,-2,-1,0,1,2,3,4] Tartomány: [0, 1]

Bézier görbe mint NUBS n=4 k=4 (harmadfokú) t = [0,0,0,0,1,1,1,1] Tartomány: [0, 1]

NUBS rendszám

Idáig: Nem racionális B-spline r(t) r1 B3(t) B4(t) B2(t) B1(t) Idáig a súlyfüggvények: S Bi(t) = 1 Súlypont: Polinom! S (Bi(t) ri ) r(t) = = S Bi(t) ri S Bi(t)

NURBS: Non-uniform Rational B-spline r(t) r1 w3B3(t) w4B4(t) w2B2(t) w1B1(t) Polinom tört! racionális S (wiBi(t) ri) wiBi(t) r(t) = = S ri S wjBj(t) S wjBj(t) Bi*(t)

NURBS súly w=3 w=2 w=1 w=1 w=1 w=1 w=1

Területek Határ + belső tartományok azonosítása Belső tartományok:

Felületek Felület 3D pontok halmaza: Klasszikus felületek koordinátáik kielégítenek egy egyenletet implicit: f(x, y, z) = 0 gömb: (x - x0)2 + (y - y0)2 + (z - z0)2 - r2 = 0 paraméteres: x = x(u,v), y = y(u,v), z = z(u,v), u,v [0,1] gömb: x = x0 + r cos 2u sin v y = y0 + r sin 2u sin v z = z0 + r cos v u,v  [0,1] Klasszikus felületek definíció = paraméterek megadása

Kvadratikus felületek xT A x = 0 xT = [x, y, z, 1] A koordináták legfeljebb másodfokon gömb, ellipszoid, sík, paraboloid, hiperboloid, hengerfelület,... Ellipszoid x2 y2 z2 Végtelen kúp x2 y2 Végtelen henger x2 y2  +  +  -1=0  +  - z2 =0  +  - 1 =0 a2 b2 c2 a2 b2 a2 b2

Szabadformájú felületek: r(u,v) Definíció kontrolpontokkal r(u,v) = rv(u) = S Bi (u) ri (v) ri (v) = S Bj(v) ri,j r(u,v) = S S Bi (u) Bj(v) ri,j

Szabadformájú felületek 2D kontrolpont sereg: szorzatfelületek r(u,v) = S S Bi,j (u,v) ri, j = S S Bi(u) Bj(v) ri, j Súlyfüggények: Interpoláció, Approximáció

Vezérlőpontok, súlyok módosítása

Vezérlőpontcsoportok módosítása

Szobrászkodás szabadformájú felületekkel

Szobrászkodás szabadformájú felületekkel

Felületmodellezés mint Poligonháló módosítás

Felosztásos (subdivision) módszerek = 1/2 + 1/4 

Subdivision felületek (Catmull-Clark) = 1/4  = 1/4  + 1/4  = 1/2 + 1/16  + 1/16 

Durva poligon modell

Subdivision simítás: 1 szint

Subdivision simítás: 2. szint

Testek Ellenpéldák Érvényes testek: reguláris halmaz nem lehetnek alacsony dimenziós elfajulásai minden határpont mellett van belső pont Garantáltan érvényes testet építő módszerek 2.5 dimenziós eljárások speciális felületi modellezés: B-rep Konstruktív tömörtest geometria

2.5 dimenziós módszerek Kihúzás: extrude Forgatás: rotate

Felületmodellezők Test = határfelületek gyűjteménye Topológiai ellenőrzés (Euler tétel): csúcs + lap = él + 2

B-rep: Euler operátorok

Implementáció él Pont +(x,y) lap class BRepCore { … public: void MEVVF(…); void MVE(float t, Edge& e); void MEF(Vertex& v1,Vertex& v2); void Move(Vertex& v, Vector p); }; class BRep : BRepCore { void FaceExtrude( ); void FaceSplit( ); void EdgeCollapse( ); void VertexSplit( ); Pont +(x,y) lap

Gyakorlati Euler operátorok Face extrude Face split Edge Collapse Vertex split

Poligon modellezés: téglatest

Poligon modellezés: 1. extruding

Poligon modellezés: 2. extruding

Poligon modellezés: 4. és 5. extruding

Poligon modellezés: 6. extruding

Subdivision simítás

Poligon modellezés