Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.

Slides:



Advertisements
Hasonló előadás
FRAKTÁLOK.
Advertisements

2D képszintézis Szirmay-Kalos László.
Geometriai Transzformációk
Analitikus (koordináta) geometriai gyorstalpaló
Geometriai transzformációk
Geometriai modellezés
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.
Geometriai modellezés
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:
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ó.
Térbeli infinitezimális izometriák
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
FRAKTÁLOK.
MECHANIZMUSOK SZÁMÍTÓGÉPES MODELLEZÉSE
Számítógépes grafika, PPKE-ITK, Benedek Csaba, D képszintézis 4. előadás.
A számítógépes grafika céljai és feladatai
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 c. tantárgy Óbudai Egyetem Neumann János Informatikai Kar, Alkalmazott Matematikai Intézet 2. Előadás Tömör testek modellje.
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.
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 8.
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.
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.
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.
Matematika III. előadások MINB083, MILB083
Levegőtisztaság-védelem 7. előadás
Mérnöki Fizika II előadás
Számítógépes geometria
2D képszintézis és textúrák
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.
Koordináta-geometria
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.
B-SZPLÁJN GÖRBÉK Dr. Horváth László.
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.
Modellek besorolása …származtatás alapján: 1.Determinisztikus fizika (más tudományág) alaptörvényeire, igazolt összefüggésere alapulfizika (más tudományág)
Hőeloszlás háromszögelt síkrészeken Május, 2002 Bálint Miklós Vilmos Zsombori
Ideális folyadékok időálló áramlása
Grafikus alaphardver Szirmay-Kalos László. Jelfeldolgozási megközelítés modellezés modell képszintézis Digitális kép megjelenítés Analog Digitál Képinformáció.
Játékfejlesztés.
2D képszintézis Szirmay-Kalos László.
Analitikus geometria gyorstalpaló
Számítógépes grafika Bevezetés
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.
Pozsgay Balázs IV. évfolyamos fizikus hallgató
2.2. Az egyenes és a sík egyenlete
2. Koordináta-rendszerek és transzformációk
Fotorealisztikus képszintézis valós időben Szirmay-Kalos László, Csébfalvi Balázs BME IIT.
Egyenes vonalú mozgások
Geometriai transzformációk
2. előadás.
Készült a HEFOP P /1.0 projekt keretében
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
Variációs elvek (extremális = min-max elvek) a fizikában
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.
Modellezés és tervezés c. tantárgy Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Matematikai Intézet Mérnöki Informatikus MSc 8. Előadás A.
Kontinuum modellek 1.  Bevezetés a kontinuum modellekbe  Numerikus számolás alapjai.
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.
Görbék, felületek.
Bevezetés Tematika Számonkérés Irodalom
Előadás másolata:

Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Visszatekintő: a számítógépes grafika feladatai képszintézis Virtuális világ modell: objektumok primitívek számok modellezés számítás mérés geometria textúrák mozgás világításkamera

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME 2D geometria: pontok, görbék, síkbeli területek 3D geometria: mint 2D + térbeli felületek, 3D-s testek Magasabb dimenziójú adatok vizualizációja (mérnöki gyakorlat): alsóbb dimenziós altérbe vetítéssel Törtdimenzió: fraktálok Modellezés

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Pontok definiálása (2D) Koordináták megadása alkalmas koordináta rendszerben: x y r  XhXh YhYh w Descartes koord. rsz. eltolás Polár koord. rsz. elforgatás Baricentrikus Homogén vetítés (lásd később) 1 1 1

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Görbék definiálása (2D) 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 – r 0 ) = 0 Kör: (x–x 0 ) 2 + (y–y 0 ) 2 –R 2 = 0,|r – r 0 | 2 – R 2 = 0 paraméteres: x = x(t), y = y(t), r = r(t) 2D egyenes: t  [-∞,∞] x(t) = x 0 + v x t,r = r 0 + v t y(t) = y 0 + v y t, Kör:t  [0,1] x(t) = x 0 + R cos 2  tr = r 0 + R(cos 2  t, sin 2  t) y(t) = y 0 + R sin 2  t

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME 3D szakasz -től -ig tartó szakasz egyenlete: p1p1 p2p2 p(t) t súly 1-t súly

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Szabadformájú görbék Klasszikus görbeszegmensek – egyszerű analitikus egyenlet pl szakasz, körvonal Általános eset nem írható le klasszikus görbeszegmensekkel Szakaszok sorozatával közelítés – nem differenciálható a kapcsolódási pontokban pl mechanikai alkalmazások esetén ill. animációknál megengedhetetlen – pl út-görbe esetén, a sebesség, gyorsulás nem változhat ugrásszerűen most csak a modellezésről beszélünk (!) a végső rasztertizáció más kérdés...

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Szabadformájú görbék Polinom: vagy vektoros formában: polinomegyütthatóknak nincs szemléletes tartalma, közvetlen származtatásuk nehézkes  Definíció kontrolpontokkal: a görbe haladjon a mintapontokkal kijelölt út mentén!

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Szabadformájú görbék Kontrollpontos definíció fajtái: Interpoláció megköveteljük, hogy a görbe átmenjen a vezérlőpontokon Approximáció csak azt írjuk elő, a görbe „nagyjából” kövesse a kijelölt irányvonalat – cserébe más jó tulajdonságokat várunk

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Lagrange interpoláció Kontrolpontok: Csomópont (knot) vektor Keressük azt az -t, amelyre azaz:

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Lagrange interpoláció Megoldás: Pl n=3 ahol

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Lagrange interpoláció bázisfüggvényei t 1 = 0 1 t 4 = 1t 2 = 0.33 t 3 =0.67t L 4 (t)L 2 (t)L 3 (t)L 1 (t)

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Görbeszerkesztés Lagrange interpolációval Gond 1: egy-egy új/módosított vezérlőpont az egész görbe alakját változtatja Gond 2: nem várt görbületek

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Lagrange görbe implementációja Együttható számítás: double L( int i, double tt ) { double Li = 1.0; for(int j = 0; j < ptnum; j++) { if (i != j) Li *= (tt - knotVector[j]) / (knotVector[i] -knotVector[j]); } return Li; } Egyenletes knot vektor inicializálás: for (int i=0;i<ptnum;i++) { knotVector[i]=(double)i/(double(ptnum-1)); }

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Lagrange görbe implementációja (Csak pszeudo kód!!!) MyPoint CalcLagrangePoint(float t) { MyPoint actPT(0,0); for(int i = 0; i < ptnum; i++) actPT+=ctrlPoint[i]*L(i,t); } return actPT; }

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Approximáció vs interpoláció Cél: ne legyen felesleges hullámosság Könnyítés: nem írjuk elő hogy a görbe átmenjen az összes vezérlőponton, csupán a görbe minden pontja legyen a vezérlőpontok konvex burkán belül az első és az utolsó vezérlőpontra pontosan illeszkedjen r3r3 r1r1 r2r2 r4r4

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Bezier approximáció Keresett görbe: ne okozzon indokolatlan hullámokat Konvex burok tulajdonság elégséges feltétele: r0r0 r1r1 r3r3 B0(t)B0(t) B1(t)B1(t) B2(t)B2(t) B3(t)B3(t) r(t)r(t) r2r2

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Bézier approximáció Súlyfüggvények a Bernstein polinomok Nemnegatívitás triviális Súlyfüggvények összege mindig 1 – binomiális tétel: Kezdet-vég feltétel teljesül, mivel:

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Bezier approximáció bázisfüggvényei Bernstein polinomok n = 3

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME BezierCurve implementáció MyPoint ctrlpoints[MAXPTNUM]; int ptnum; … float B(int i, float t) { GLfloat Bi = 1.0; for(int j = 1; j <= i; j++) Bi *= t * (ptnum-j)/j; for( ; j < ptnum; j++) Bi *= (1-t); return Bi; } MyPoint CalcBezierPoint (float t) { //Pszeudo Point MyPoint actPT(0,0); for(int i = 0; i < ptnum; i++) { actPT+=ctrlpoints [i]*L(i,t); } return actPT; }

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Bezier görbe OpenGL implementációja void glMap1{fd}(Glenum target, TYPE u1, TYPE u2, GLInt stride, GLInt order, const TYPE * points) Egydimenziós leképezés, target: mit reprezentálnak a kontrollpontok: modelltérbeli pontot ( GL_MAP1_VERTEX_3 ) vagy színt ( GL_MAP1_COLOR_4 ) stb u1, u2 : paramétertartomány (nálunk [0,1]) stride : nálunk a pontok dimenziója (itt 3) order : görbe rendje (kpontok száma+1) points : kontrollpontokat tartalmazó tömb Előtte engedélyezni kell az opciót: glEnable(GL_MAP1_VERTEX_3);

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Bezier görbe OpenGL implementációja Kontroll pontok definiálása GLfloat ctrlpoints[MAXPTNUM][3]; ctrlpoints[i][j] az i-edik kontrolpont j-edik koordinátája 3D pontokkal dolgozik, a pont koordinátái rendre: [x,y,z], 2D-ben z=0-t használjunk

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Bezier görbe OpenGL implementációja void glEvalCoord1{fd}(TYPE u); az u paraméterértéknél kiértékeli a görbét, azaz meghatározza az aktuális pontot és esetünkben a glVertex*() parancsot is automatikusan végrehajtja rá (tehát azonnal meg is jeleníti)

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Bonyolult görbék Nagyon magas fokszámú polinom Összetett görbék: Több alacsony fokszámú + folytonos illesztés

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Folytonossági kategóriák C n folytonos: a két görbe szegmens n-edik deriváltig megegyezik az illeszkedési pontban: r 1 (n) (t veg )= r 2 (n) (t kezd ) G 0 = C 0 G0G0 C 0 : r 1 (t veg ) = r 2 (t kezd ) C 1 : r 1 ‘ (t veg ) = r 2 ‘ (t kezd ) G1G1 C 2 : r 1 ‘‘ (t veg ) = r 2 ‘‘ (t kezd ) C 1  G 1 pl rugó animáció: a pozíciókoordináták C n folytonossága biztosítja az erő sima változását (F=ma=mx’’)

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Spline Spline: C 2 folytonos összetett görbe Harmadfokú spline B-spline

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Harmadfokú spline p(t) = a 3 t 3 + a 2 t 2 + a 1 t 1 + a 0 Új szemléletes reprezentáció: p(0) = a 0 p(1) = a 3 + a 2 + a 1 + a 0 p’(0) = a 1 p’(1) = 3a 3 + 2a 2 + a 1 (p(0),p(1),p’(0),p’(1)), ↔ ( a 3,a 2,a 1,a 0 ) p i (0)=r i, p i (1)=r i+1 C 1 folytonosság: 2 paraméter közös C 2 folytonosság: p i ’’(1) = p i+1 ’’(0) p i (0) p i (1) p i ’(0) p i ’(1) P i+1 (0) P i+1 ’(0)

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Harmadfokú spline Pl: Két egymást követő szegmens p 1 (t), p 2 (t) paramétereinek számítása, Adott: r 1, r 2, r 3 vezérlőpontok Ismeretlen: p 1 (0),p 1 (1),p 1 '(0),p’ 1 (1), p 2 (0),p 2 (1),p 2 '(0),p’ 2 (1) paraméterek 6 egyenlet, 8 ismeretlen p 1 (0)=r 1, p 1 (1)=r 2 p 2 (0)=r 2 p 2 (1)=r 3 p’ 1 (1)=p’ 2 (0) p 1 ’’ (1) = p 2 ’’(0): p 1 ’’(t) =6a 13 t + 2a 12 = f (p 1 (0),p 1 (1),p 1 '(0),p’ 1 (1)), p 2 ’’(t) =6a 23 t + 2a 22 = f (p 2 (0),p 2 (1),p 2 '(0),p’ 2 (1)), p’ 1 (0) és p’ 2 (1) rögzítésével teljesen határozott lesz

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME B-spline Válasszunk olyan reprezentációt, amely C 2 folytonos, ha 3-t közösen birtokolnak Reprezentáció: vezérlőpontok – egy görbeszegmenst 4 egymást követő vezérlő pont definiál r i (t) = B 0 (t)r i + B 1 (t)r i+1 + B 2 (t)r i+2 + B 3 (t)r i+3 r i+1 (t) = B 0 (t)r i+1 + B 1 (t)r i+2 + B 2 (t)r i+3 + B 3 (t)r i+4

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME B-spline bázisfüggvények Cirkuszi elefántok + Járulékos szempont:  B i (t) = B 0 (t) = ( 1-t) 3 /6 B 1 (t) = (1+3 ( 1-t)+3t ( 1-t) 2 ) /6 B 2 (t) = (1+3t+3 ( 1-t)t 2 ) /6 B 3 (t) = t 3 /6

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME B-spline görbeszegmens B 0 (t) = ( 1-t) 3 /6 B 1 (t) = (1+3 ( 1-t)+3t ( 1-t) 2 ) /6 B 2 (t) = (1+3t+3 ( 1-t)t 2 ) /6 B 3 (t) = t 3 / konvex burok tulajdonság

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME A B-spline lokálisan vezérelhető

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME NUBS: Non-Uniform B-spline 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 t i -től t i+1 –ig (nem feltétlenül egységnyi hosszú). Rövid intervallum - „erősebb” mágnes a kontrolpont

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME NUBS tulajdonságok Vezérlőpont „súlyozása” – közeli paramétertartomány kicsire választása csak durva súlyozásra alkalmas, nehéz szemléletesen állítani a megfelelő hossz- paramétert Zérus hosszúságú intervallumok – a görbe interpolálja a vezérlőpont Elsőfokú (sátor) esetén elég 1 zérus hosszú intervallum Másodfokú NUBS esetén 2, harmadfokúnál 3 egymást követő intervallumot kell zérusra állítani

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Idáig: Nem racionális B-spline r3r3 r1r1 r2r2 r4r4 B1(t)B1(t) B2(t)B2(t) B3(t)B3(t) B4(t)B4(t) r(t)r(t) Idáig a súlyfüggvények:  B i (t) = 1 Súlypont:  (B i (t) r i ) r(t) = =  B i (t) r i  B i (t) Polinom!

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME NURBS: Non-uniform Rational B-spline r1r1 r2r2 r4r4 w1B1(t)w1B1(t) w2B2(t)w2B2(t) w3B3(t)w3B3(t) w4B4(t)w4B4(t) r(t)r(t)  (w i B i (t) r i ) r(t) = =  r i  w j B j (t) Polinom tört! racionális wiBi(t)wiBi(t)  w j B j (t) Bi*(t)Bi*(t)

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME NURBS súly w=1 w=2 w=3 w=1

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Nurbs görbe OpenGL implementációja Adattagok: GLUnurbsObj *theNurb; //NURBS objektum ORDER //NURBS rendje – ellentétben Bézierrel, ez tőlünk függő szabad partaméter, nálunk legyen konst 3! GLfloat ctrlpoints[MAXPTNUM][3]; //kontrollpontok GLfloat knots[MAXPTNUM+ORDER]; //kiértékelés paraméterértékeit tartalmazó vektor

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Nurbs görbe létrehozása theNurb=gluNewNurbsRenderer(); gluNurbsProperty(theNurb,GLU_SAMPLIN_TOLERANCE, 25.0); gluNurbsProperty(theNurb, GLU_DISPLAY_MODE, GLU_FILL); ptnum= >//knot vektor hasznos része mindig ptnum+ORDER elemű //Knot inicializáció: töltsük fel a KNOT vektor első ptnum+ORDER elemét osszuk be a [0 1] intervallumot egyenletesen

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Nurbs görbe OpenGL implementációja theNurb=gluNewNurbsRenderer(); … gluNurbsProperty(theNurb,GLU_SAMPLI N_TOLERANCE, 25.0); gluNurbsProperty(theNurb, GLU_DISPLAY_MODE, GLU_FILL);

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Területek Határ + belső tartományok azonosítása Belső tartományok:

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Felületek Felület 3D pontok halmaza: koordinátáik kielégítenek egy egyenletet implicit: f(x, y, z) = 0 gömb:(x - x 0 ) 2 + (y - y 0 ) 2 + (z - z 0 ) 2 - r 2 = 0 paraméteres: x = x(u,v), y = y(u,v), z = z(u,v), u,v  [0,1] gömb:x = x 0 + r cos 2  u sin  v y = y 0 + r sin 2  u sin  v z = z 0 + r cos  v u,v  [0,1] Klasszikus felületek definíció = paraméterek megadása

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Kvadratikus felületek x T A x = 0x T = [x, y, z, 1] A koordináták legfeljebb másodfokon gömb, ellipszoid, sík, paraboloid, hiperboloid, hengerfelület,...  +  +  -1=0 Ellipszoid x 2 y 2 z 2 a 2 b 2 c 2  +  - z 2 =0 Végtelen kúp x 2 y 2 a 2 b 2 Végtelen henger x 2 y 2 a 2 b 2  +  - 1 =0

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Szabadformájú felületek: r(u,v) r(u,v) =   B ij (u,v) r i,j u,v Є [0,1] Egységnégyzet leképezése a felületre (2D csomópontmátrix) Kontrolpontok 2D tömbbe rendezettek Definíció kontrolpontokkal  ij B ij (u,v) =1 minden u,v-re u v

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Szorzatfelületek Definíció kontrolpontokkal r(u,v) = r v (u) =  i B i (u) r i (v) r i (v) =  j B j (v) r i,j r(u,v) =   B i (u) B j (v) r i,j r(u,v) ri (v)ri (v) r i+1 (v) r i-1 (v) rv(.)rv(.) r i,j r i,j+1 r i,j-1

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Vezérlőpontok, súlyok módosítása

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Vezérlőpontcsoportok módosítása

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Szobrászkodás szabadformájú felületekkel

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Szobrászkodás szabadformájú felületekkel

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Felosztásos (subdivision) módszerek Durva poligonmodell simítása NURBS illesztés, majd finomabb poligon közelítés közvetlen finomítás (subdivision)

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Felosztásos (subdivision) módszerek = 1/2 + 1/4 

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME = 1/2 + 1/16  + 1/16  Subdivision felületek (Catmull-Clark) = 1/4  = 1/4  + 1/4 

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Subdivision felületek (Catmull-Clark)

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Durva poligon modell

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Subdivision simítás: 1 szint

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Subdivision simítás: 2. szint

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Progresszív hálók „Túl finom” poligonháló – nagy méret Közelítés kevesebb poligont tartalmazó hálóval Hoppe-féle progresszív háló: élzsugorítások sorozata a poligonhálót legkevésbé módosító élt töröljük élek prioritása – a legkisebb törlendő heurisztika pl: tartsuk meg azokat az éleket akik hosszúak, illetve a rájuk illeszkedő lapok normálisa által bezárt szög nagy (nem garantálja a topológia megtartását)

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Progresszív hálók Egyszerűsítés előnye: kisebb leíró adatmennyiség gyorsabb képszintézis (pl játék) több részletezettségi szintet alkalmazó geometriai modellek Progresszív tárolás: tároljuk a durva hálót és az egyszerűsítés műveletek inverzét alkalmazás: pl lassú hálózati átvitel – először a durva modell érkezik, majd ez fokozatosan finomítható

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Koch görbe Forrás: Máté László, BME

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Koch görbe hossza végtelen h 0 =1 h 1 =4/3 h 2 =(4/3) 2 h 3 =(4/3) 3 h 4 =(4/3) 4 h Koch =lim i→∞ h i = lim i→∞ (4/3) i = ∞ Görbe „hossza”:

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Koch görbe „területe” 0 lim i→∞ (2/3) i = 0 Görbe „területe”: T Koch ≤lim i→∞ T i = T 0 =1 T 1 =2/3 T 2 =(2/3) 2 T 3 =(2/3) 3 Minden sorozatelem tartalmazza a teljes görbét

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Fraktálok Hausdorff dimenzió N= 1/r D D= (logN) / (log 1/r)

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Koch görbe D= (log4) / (log 3) = 1.26 N = 4, r = 1/3

Számítógépes Grafika 2010, PPKE ITK, Benedek Csaba Tanagyag forrás ® Szirmay-Kalos László, BME Nem önhasonló objektumok dimenziója Vonalzó ( l ) db l 1 r =1/3N = 4 r 2 N 2 r m N m Hossz( l ) = l db = l N m = l (1/r D ) m = = l (1/r m ) D = 1/ l D -1 D = - log Hossz( l ) / log l + 1