Tietokonegrafiikan perusteet T-111.4300 3 op Luento 6: Geometrinen mallinnus Lauri Savioja, Janne Kontkanen 11/2007 Geometrinen mallinnus / 1 Sisältö Mitä on geometrinen mallinnus tietokonegrafiikassa Ulottuvuuksia < 3 Piste, viiva, jana ja polygoni Parametriset käyrät Implisiittiset käyrät Kolmiulotteinen mallinnus Polygoniverkko Parametriset pinnat Alijakopinnat Pistemallit Muita: CSG, Hilaesitys, Octree-esitys, Proseduraalinen geometria Lyhyesti: Transformaatiohierarkiat Hienorakenteen esittämisestä Geometrinen mallinnus / 2 1
Piste Tasossa piste esitetään kahdella koordinaatilla [x,y] tai homogeenisissa koordinaateissa [xh, yh, h] [x,y] Geometrinen mallinnus / 3 Viiva Viiva voidaan esittää viivayhtälöllä y = kx + c c Geometrinen mallinnus / 4 2
Viiva Tai määritellä kahden pisteen avulla [x0,y0]-[x1,y1] [x1,y1] [x0,y0] Geometrinen mallinnus / 5 Viiva Tai pisteen [x,y] ja suunnan [dx,dy] avulla [dx,dy] [x,y] Geometrinen mallinnus / 6 3
Jana Jana on suoran osa alkupisteestä [x0,y0] loppupisteeseen [x1,y1] [x1,y1] [x0,y0] Geometrinen mallinnus / 7 Monikulmio eli Polygoni Monikulmio eli polygoni määritellään luettelona reunapisteitä p 0, p 1 p n Pisteet määrittelevät polygonin reunaviivan p 4 p 3 p 2 p 0 p 1 Geometrinen mallinnus / 8 4
Erilaisia Polygoneja Ei-konveksi (kovera) polygoni Konveksi (kupera) polygoni Polygoni joka ei ole yksinkertainen (simple) Täytetty polygoni Geometrinen mallinnus / 9 Parametriset käyrät Parametrisella käyrälla tarkoitetaan esitystä joka on muotoa: p (t) = [ x (t), y (t) ] ; t : [0 1] x() ja y() voivat olla mitä tahansa funktiota Matala-asteiset (2-3 ) polynomit ovat kuitenkin käyttökelpoisimpia Korkeampiasteiset funktiot käyttäytyvät epäennustettavasti Geometrinen mallinnus / 10 5
Paloittaiset parametriset käyrät eli splinit Useita parametrisia käyriä voidaan liittää yhteen ketjuksi Jotta yhdistelmä näyttäisi sileältä täytyy leikkauskohdissa vaatia vähintään C 1 jatkuvuus (ensimmäisen derivaatan jatkuvuus) Geometrinen mallinnus / 11 Paloittaiset parametriset käyrät eli splinit Käyrien määrittelemisestä ja muokkaamisesta Polynomikerrointen määritteleminen manuaalisesti hankalaa (kuinka säilyttää jatkuvuus ja saada haluttu muoto) Kertoimet voidaan määrittää automaattisesti, perustuen käyttäjän asettamiin kontrollipisteisiin ja jatkuvuusehtoihin Sovitus voi olla interpoloiva tai approksimoiva Tarkka menetelmä riippuu käytettävästä splinityypistä Splinityyppejä Natural Cubic Spline Hermite Spline Cardinal Spline Bezier B-Spline NURBS Geometrinen mallinnus / 12 6
Implisiittiset käyrät Käyrä voidaan määritellä myös implisiittisessä muodossa olevalla yhtälöllä, esimerkkinä ympyrä: [x,y] 2 2 x + y = r 2 Muita tavallisia muotoja: parabeli, ellipsi, jne. Implisiittisessä muodossa ei ole helppo esittää millaisia käyriä tahansa, vaan sopiva yhtälö on pystyttävä muodostamaan Geometrinen mallinnus / 13 Kolmiulotteinen Mallinnus Geometrinen mallinnus / 14 7
Monikulmioverkko (mesh) Erittäin tavallinen tapa pinnan esittämiseksi kolmessa ulottuvuudessa Renderöinti tehokasta Muokkaaminen hieman kömpelöä Paloittain lineaarinen esitys: saavutetaan ainoastaan C 0 jatkuvuus Geometrinen mallinnus / 15 Monikulmioverkko (mesh) Monikulmioverkko voidaan tallettaa monella tapaa muistiin Tapa 1: Pistelista: p 0,p 1 p n, jossa p i = [ x i, y i, z i ] Monikulmiolista: m 0,m 1,m 2 m k, jossa kukin m i sisältää yhtä monta indeksiä pistelistaan kuin monikulmiossa on kulmia Tapa 2: Pistelista: p 0,p 1 p n, jossa p i = [ x i, y i, z i ] Särmälista: e 0,e 1 e q, jossa kukin e i sisältää kaksi indeksiä pistelistaan Monikulmiolista: m 0,m 1,m 2 m k, jossa kukin m i sisältää yhtä monta indeksiä särmälistaan kuin monikulmiossa on särmiä Usein monikulmioverkkoon talletetaan muutakin tietoa Esim. kulmapisteiden normaalivektorit (erityisesti jos verkolla approksimoidaan kaarevaa pintaa) Geometrinen mallinnus / 16 8
Parametriset Pinnat Parametrinen käyrä kolmessa ulottuuvudessa p (u) = [ x (u), y (u), z(u) ] ; u : [0 1] Parametrinen pinta puolestaan p(u,v) = [ x(u,v), y(u,v), z(u,v) ] ; u,v : [0 1] Pintatilkku, joka saadaan yhdistämällä kaksi kolmannen asteen parametrista käyrää on hyvin suosittu mallinnusprimitiivi (bi-cubic patch) Mallien rakentaminen tilkuista ja tilkkujen yhteenliittäminen ei ole täysin ongelmatonta Lähde: http://fuzzyphoton.tripod.com/rtref/rtref_b.htm Geometrinen mallinnus / 17 Alijakopinnat (subdivision surfaces) Pintaa voidaan muokata useilla eri tarkkuustasoilla Voidaan määritellä minkä vain monikulmioverkon avulla Lopputulos on sileä (ainakin C 1 jatkuva) Esitystapa kasvattaa suosiotaan jatkuvasti Lähde: http://grail.cs.washington.edu/projects/subdivision/ Geometrinen mallinnus / 18 9
Pistemallit Malli voidaan ilmaista pelkkinä pisteinä ja niihin assosioituina pintanormaaleina Mallin pinta voidaan rekonstruoida käyttäen nk. surface splatting tekniikkaa, joka virittää kuhunkin pisteeseen naapuripisteistä riippuvaisen rekonstruktiokernelin Kehitteillä oleva tekniikka, jota pidetään polygoniverkkoesityksen kilpailijana Lähde: Surface Splatting: Theory, Extensions and Implementation (Jussi Räsänen 2002) Geometrinen mallinnus / 19 Muita Esitystapoja CSG = Constructive Solid Geometry Määritellään uusia kappaleita tekemällä joukko-opillisia operaatioita primitiivikappaleiden välillä Kolmiulotteinen hilaesitys Mikä vain äärellisen osa-avaruuden määrittelevä malli voidaan esittää myös diskretoidussa hilassa, joka on kaksiulotteisen rasterikuvan kolmiulotteinen vastine + - = Octree-esitys Hilaesitys voidaan rakentaa hierarkisesti, jolloin kokonaan tyhjät tai samaa ainetta olevat solut voidaan ilmaista karkealla tasolla (ohessa 2D havaintokuva eli itse asiassa quadtree) 1 2 3 4 1 2 3 4 NIL NIL 1 2 3 4 NIL NIL 1 2 NIL 3 4 NIL NIL 1 2 3 4 NIL NIL NIL Geometrinen mallinnus / 20 10
Muita Esitystapoja: Proseduraalinen Geometria Fraktaalit Sopivat hyvin luonnollisten rakennelmien mallintamiseen (esim. vuoristot) Hyvin yksinkertaisilla säännöillä voidaan saada vaikuttavan näköisiä tuloksia L-systeemit Kielioppi joka sopii esimerkiksi kasvien kasvusäännöstön määrittelyyn (oheinen puu tuotettu yksinkertaisella L-systeemillä) Geometrinen mallinnus / 21 Lyhyesti: Transformaatiohierarkia AKA scene graph Tarpellinen silloin kun malli koostuu useammasta osasta jotka voidaan luontevasti järjestää hierarkiaan Esim. Auto koostuu korista ja renkaista, tällöin voi olla luontevaa järjestää mallit seuraavasti: Auto Kori Rengas 1 Rengas 2 Rengas 3 Rengas 4 Jos Auto-objektiin tehdään jokin koordinaattimuunnos, tämä heijastuu myös hierarkiassa alapuolella oleviin objekteihin Lisäksi samaa geometrista mallia käyttävät objektit voivat sisältää viittauksen yhteen ainoaan instanssin varsinaisesta geometriasta Geometrinen mallinnus / 22 11
Hienorakenteen esittämisestä Usein ei ole mielekästä esittää kaikkein hienojakoisimpia yksityiskohtia edellä kuvatuilla tavoilla Hienorakenteen esittämiseen voidaan käyttää geometrian pinnalle liitettävää tekstuuria Tekstuurin ei välttämättä tarvitse sisältää ainoastaan pinnan värejä, vaan voidaan tallettaa myös Normaalivektoreita (normal mapping) Geometrian poikkeutukseen tarkoitettuja arvoja (displacement mapping) LoD - Level of Detail Geometrinen mallinnus / 23 12