TEKNILLINEN KORKEAKOULU 4.4.2003 Tietoliikenneohjelmistojen ja multimedian laboratorio T-.500 Tietokonegrafiikan seminaari Kevät 2003 Light Field Mapping Mitro Kuha 453T
Light Field Mapping Mitro Kuha TKK, Tietoliikenneohjelmistojen ja Multimedian Laboratorio mkuha@cc.hut.fi Tiivistelmä Light Field Mapping (LFM) valokenttien kartoitus on Intelin työryhmän kehittämä menetelmä, jolla kolmiulotteisen kappaleen valaisuominaisuuksia tallentavia pinnan valokenttiä (surface light fields) voidaan esittää, pakata ja renderöidä reaaliaikaisesti. Pinnan valokentät talletetaan 4D tekstuureihin, jotka sisältävät pintaelementin valaisutiedot ja heijastusominaisuudet eri suuntiin. Tässä paperissa esitellään valokenttien kartoituksen pääperiaatteet, kaksi vaihtoehtoista algoritmia valokenttädatan käsittelyyn, valokenttädatan pakkaaminen ja renderöinti. Lisäksi esitellään esimerkkilaitteisto ja LFM:n sovelluksia sekä sen käytöstä saatuja tuloksia. JOHDANTO Valokenttien kartoitus LFM (Light Field Mapping) on uusi Intelin työryhmän kehittämä fotorealististen kolmiulotteisten näkymien mallinnusmenetelmä. Kappaleen tai ympäristön ulkonäkö voidaan esittää eri suunnista katsottuna pinnan valokentän SLF (Surface Light Field) avulla. (Richmond, 200) Valokenttien kartoitus on menetelmä, jolla pinnan valokenttiä voidaan tehokkaasti esittää ja käyttää niitä kolmiulotteisten kappaleiden valaisuominaisuuksien mallintamiseen. Kuten muutkin kuviin perustuvat pinnan valokentän mallintamismenetelmät, LFM tuottaa näytteisiin (kuvat) perustuvan esityksen pinnan valokentästä Valokentän data ositetaan pieniä mallinnettavan pinnan kappaleita (pinnan primitiivejä) vastaavaksi ja approksimoidaan jokaiselle pintaprimitiiville erikseen. Saatu data voidaan lopulta reaaliaikaisesti renderöidä mielivaltaisesta katsomissuunnasta. (Chen et al., 2002) Menetelmää voidaan käyttää fotorealistista kolmiulotteista reaaliaikaista mallinnusta tarvitsevissa sovelluksissa, kuten peleissä ja erilaisissa virtuaaliympäristöissä. Valokenttien kartoitus ei tue dynaamisasti valaistujen ympäristöjen mallinnusta. (Chen et al., 2002)
2 PINNAN VALOKENTTÄ SURFACE LIGHT FIELD Kolmiulotteisen valaistun kappaleen pinnan heijastukset ja pinnan ulkonäkö eri suunnista katsottuna voidaan esittää pinnan valokentän - SLF:n (Surface Light Field) - avulla. SLF on yhtälö, joka liittää värin jokaiseen pinnasta lähtevään säteeseen (Wood et al., 2000). SLF voidaan esittää seuraavana neliparametrisena yhtälönä: K f ( r, s, θ, φ) g ( r, s) ( θ, φ). () k = k h k jossa parametrit r ja s määrittävät tarkasteltavan pinnan pisteen, ja θ ja Φ katsomissuunnan. Sama piste voi näyttää eri suunnista katsottuna erilaiselta pinnan heijastusominaisuuksista ja valaisuolosuhteista riippuen. Pinnan jokaisen pisteen esittäminen kaikkiin suuntiin johtaisi äärettömään rakenteeseen, joten käytännön ratkaisussa tyydytään riittävään määrään näytteitä, joiden avulla pinnan valokenttä approksimoidaan (Chen et al., 2002; Richmond, 200). Kuva havainnollistaa pintaelementin eri katsomissuunnista riippuvaa ulkonäköä. Kuva. Mallinnetun kappaleen pintaelementin heijastukset eri suuntiin. (Grzeszczuk, 2002) Yhtälön () oikean puolen funktiot g k (r,s) ja h k (θ,φ) koodaavat valokenttädatan, joka on talletettu tekstuurikartan muodossa. Funktioita g k (r,s) kutsutaan pintakartoiksi (surface maps) ja funktioita h k (θ,φ) näkymäkartoiksi (view maps). (Chen et al., 2002) Aikaisemmat pinnan valokarttoihin perustuvat menetelmät ovat perustuneet heijastusominaisuuksiltaan homegeenisten kappaleiden mallintamiseen; LFM:llä pystytään mallintamaan myös heijastusominaisuuksiltaan vaihtelevia pintoja ja geometrialtaan mielivaltaisia kappaleita. (Chen et al., 2002) 2
3 DATAN TALLENTAMINEN JA PINNAN JAKAMINEN OSIIN SLF:n muodostaminen edellyttää kappaleen muodon ja sen pinnan heijastusten kuvaamista ja tallentamista. Kappale voidaan skannata kolmiulotteisella skannauksella, jolloin kappaleesta saadaan kolmioista koostuva polygonimalli. Pinnan ulkonäkö saadaan talletettua kuvaamalla kappaletta eri suunnista, ja liittämällä saatuihin kuviin informaatio myös kuvaussuunnasta. (Chen et al., 2002; Richmond, 200) Kappaletta ei luonnollisestikaan voida kuvata kaikista suunnista, vaan kuvaussuuntien väliin jäävien suuntien valaisuarvot approksimoidaan käyttämällä approksimoitavaa suuntaa lähellä olevia kuvaussuuntia. Valokuvaamalla saatu data käsitellään siten, että jokaiseen pintaelementtiin liittyvä valaisuinformaatio kerätään yhteen. (Chen et al., 2002) 3. Pinnan valokentän jakaminen osiin (SLF partitioning) Mallinnetun kappaleen geometria esitetään kolmioista koostuvalla rautalankamallilla. Valokentän jakaminen pintaa mallintavien kolmioiden mukaan aiheuttaisi valokenttäapproksimaation epäjatkuvuutta kolmioiden rajakohtiin. Jatkuvan valokentän saamiseksi pinnan valokenttä jaetaan suhteessa vertekseihin (kolmion kärkiin). Verteksiin liittyvät kolmiot muodostavat verteksin ympärille kolmiorenkaan; näiden verteksiin liittyvien kolmioiden valokentistä lasketaan verteksikohtainen valokenttä. Verteksikohtaista osaa valokentästä sanotaan verteksin valokentäksi (vertex light field) ja se voidaan ilmaista verteksille v j painotettuna pinnan valokentän funktiona f v j v j ( r, s, θ, φ) = Λ ( r, s) f ( r, s, θ, φ), (2) jossa Λ vj on verteksin v j ympärillä olevien kolmioiden painotuskerroin. Jokaisen verteksin valokenttä lasketaan siis kyseiseen verteksiin liittyvien kolmioiden valokentistä. Verteksiä ympäröivistä kolmioista laskettujen verteksin valokenttien avulla lasketaan renderöintivaiheessa kolmion valokenttä. Kuva 2 havainnollistaa kolmion valokentän approksimointia kolmion verteksien viereisten kolmioiden valokenttien summana: kolmion i verteksien v, v 2 ja v 3 valokenttä lasketaan kutakin verteksiä ympäröivien kolmioiden avulla. Verteksikohtaista osuutta kolmion valokentästä merkitään hattufunktiolla Λ vj ja kolmion kaikkien verteksien yhteisvaikutus vastaa kolmion alkuperäistä valokenttää, eli kolmion verteksien painokertoimien summasta tulee yksi. (Chen et al., 2002; Richmond, 200) Koska valokenttä lasketaan kolmion verteksien suhteen, eikä jokaisen kolmion pinnalle erikseen, kolmiosta toiseen siirtymästä tulee jatkuva. Mikäli valokenttää approksimoitaisiin yksittäisten kolmioiden pinnan mukaan, valokenttäapproksimaatioon tulisi kolmioiden reunojen kohdalle epäjatkuvuuskohtia. (Chen et al., 2002) 3
Kuva 2. Kolmion valokentän laskeminen verteksien viereisten kolmioiden valokenttien summana. Verteksien valokenttien yhteisvaikutus kolmion alueella summautuu alkuperäisen valokentän arvoksi (kerroin =). (Chen et al., 2002) Jokaisen verteksin valokenttä esitetään kyseisen verteksin paikallisessa koordinaattijärjestelmässä siten, että kulmat θ ja Φ määrittelevät katselusuunnan vektorin. θ merkitsee kiertokulmaa (azimuth) ja Φ korkeuskulmaa verteksin paikallisen koordinaatiston suhteen. Verteksin koordinaatiston z-akseli on yhdensuuntainen verteksin kohdalla pinnan normaaliakselin kanssa. (Chen et al., 2002) 3.2 Verteksin valokentän approksimointi Verteksikeskeinen valokentän osiin jakaminen mahdollistaa jokaisen verteksin valokentän itsenäisen approksimoinnin. Samalla säilytetään koko mallin valokentän jatkuvuus. Jokaisen eri verteksin valokentän approksimaatio voidaan esittää seuraavalla yhtälöllä f v j K v j v j ( r, s, θ, φ) g ( r, s) h ( θ, φ). (3) k = k k Yhtälön (3) muuttujat vastaavat aikaisemmin selitettyjä. Verteksin valokenttä approksimoidaan siis jokaisen verteksiin liittyvän kolmion valokenttien arvoista. Verteksien valokentistä lasketaan edelleen renderöintivaiheessa kolmioiden valokenttien uudet arvot. (Chen et al., 2002) Verteksien valokenttien approksimointiin on kaksi eri menetelmää: PCA (principal component analysis) ja NMF (non-negative matrix factorization). Molemmat menetelmät approksimoivat valokentän datan pienen kuvajoukon lineaarikombinaationa, mutta tarjoavat eri ominaisuuksia. (Chen et al., 2002) Chen et al., (2002) mukaan PCA:aan perustuva kuva antaa globaalin approksimaation kuvalle ja kuva pystytään muodostamaan jatkuvana osasta dataa; approksimaatiotermien lisääminen parantaa mallin laatua, mutta mallia voidaan käyttää jo ensimmäisen kertaluvun approksimaatiotermeillä. PCA soveltuu siis etenkin vaihteleviin 4
olosuhteisiin ja tietoverkkojen kautta ladattavaksi; nopeammalla yhteydellä voidaan ladata suurempi määrä dataa ja saadaan parempi lopputulos, ja pienemmällä datamäärällä saadaan kuitenkin aikaan jatkuva approksimaatio. PCA sallii approksimaatiokertoimien olevan erimerkkisiä. Tämä tekee renderöinnistä vaikeampaa ja edellyttää erityistä grafiikkapiiriä, jotta mallia voidaan renderöidä. NFM:aan perustuva ratkaisu edellyttää kaikkien saatujen kuvien käyttämistä, jotta syötetystä datasta saadaan jatkuva approksimaatio. NFM käyttää vain positiivisia kertoimia, joten siihen liittyvät laskut ovat nopeampia laskea kun PCA:ssa. NFM:n laskeminen voidaankin suorittaa tavallisella grafiikkaraudalla.(chen et al., 2002) 3.3 Valokenttien approksimointi matriisikertolaskulla Valokenttien approksimointi perustuu matriisien kertolaskuun. Ensin diskretisoidaan verteksin valokenttäfunktio 4-ulotteiseen ruudukkoon (grid), jossa indeksi p=,,m viittaa [r p,s p ]:n diskreetteihin arvoihin kuvaten pinnan paikan verteksin v j kolmiorenkaassa, ja indeksi q=,,n viittaa katselukulmien [θ q,φ q ] diskreetteihin arvoihin. Diskretisoitu verteksin valokenttä voidaan esittää matriisilla F v j f = v f j v j v j [ r, s, θ, φ ] L f [ r, s, θ, φ ] v j [ r, s, θ, φ ] L f [ M M M O r M, s M M N, θ N N, φ N, ] (4) jossa M on kolmiorenkaan pintanäytteiden kokonaismäärä ja N on jokaista näytettä vastaavien kuvaussuuntien lukumäärä. Matriisia F vj kutsutaan verteksin valokentän matriisiksi (vertex light field matrix). Jokainen matriisin sarake esittää verteksirenkaan ulkonäköä eri kuvaussuunnista nähtynä. Diskreetistä valokenttädatasta tehdään jatkuvaa kohdassa 6.2 esitellyllä datan uudelleen näytteistyksellä. (Chen et al., 2002) Sekä PCA, että NMF rakentavat approksimaatiojaon seuraavaan muotoon: ~ v j K T F = u v (5) k = k k jossa u k on diskreetin pintakartan (surface map) g vj k[r p,s p ] ja v k diskreetin näkymäkartan (view map) h vj k [θ q,φ q ] vektoriesitys. Menetelmien ero syntyy vektoreiden u k ja v k kertoimien muodostamista rajoituksista. PCA rajoittaa u k :t ortonormaaleiksi, ja v k :t ortogonaalisiksi toisiinsa nähden. NMF taas hyväksyy vain positiivisia matriisikertoimia u k ja v k. Neliparametrinen verteksin valokenttäfunktio f vi approksimoidaan siis kahden funktion tulona, nämä kaksi funktiota ovat pintakartan ja näkymäkartan vektoriesitykset. (Chen et al., 2002) 5
Valokenttien jakaminen verteksien suhteen varmistaa sen, että jokainen kolmio jakaa näkymäkarttansa viereisten kolmioiden kanssa. Tällöin, vaikka jokaisen verteksin valokenttä jaetaan osiin muista riippumatta, saadaan kolmiosta toiseen siirryttäessä jatkuva approksimaatio riippumatta approksimaatiotermien K lukumäärästä. Approksimaatiotermien lisääminen parantaa lopputuloksen laatua, mutta laadukas lopputulos saadaan jo muutamalla termillä. (Chen et al., 2002) Olkoon g vj [r p,s p ] ja h vj [θ q,φ q ] verteksin valokarttaa f vj [r p,s p, θ q,φ q, ] vastaavat pintakartta ~ ja näkymäkartta. Olkoon f [r i p,s p, θ q,φ q, ] kolmion i approksimaatiotermiä vastaava valokenttädata. Yhtälö f ~ i 3 v j v j [ rp, s p, θ q, φ q ] = g [ rp, s p ] h [ θ i q, φ q j = ] (6) on voimassa, kun indeksi j käy läpi kaikki kolmion i verteksit ja g i vj [r p,s p ] kuvaa kolmiota vastaavaa pintakartan osaa. Yhtälö (6) on voimassa kaikille approksimaatiotermeille. (Chen et al., 2002) 4 VALOKENTTÄKARTTOJEN PAKKAUS Valokenttäkartoissa on paljon toisteisuutta, joten niitä voidaan pakata tehokkaasti. Valokenttiä pakkaamalla voidaan saavuttaa useita kertalukuja oleva tilansäästö alkuperäiseen datamäärään nähden. Valokenttädätaa voidaan tiivistää usealla eri menetelmällä ja useassa eri vaiheessa. Valokuvaamalla saata raakadataa ositettaessa saavutetaan luokkaa 00: oleva pakkaussuhde, lisäksi voidaan käyttää hardware-tekstuurinpakkausmenetelmiä, kuten S3TC:ää. Kuva 3 esittelee valokenttädatan pakkaamisen eri vaiheet. Kuva 3. Valokenttien pakkaaminen. Suluissa olevat numerot ilmaisevat kyseisessä pakkausvaiheessa saavutetun pakkaussuhteen. (Chen et al., 2002) 6
Kohdassa 2.2 kuvattu matriisin kertoimilla suoritettu approksimointi voidaan ajatella valokentästä paikallisesti toistuvaa dataa poistavana pakkausmenetelmänä. Menetelmän pakkauskerroin (compression ratio) riippuu pintaprimitiivien koosta. Tiivis verkko vaatii enemmän näkymäkarttoja, toisaalta harvalla verkolla mallinnettaessa tarvitaan enemmän approksimointitermejä, jotta päästäisiin samaan laatuun kuin tiiviimmällä verkolla. (Chen et al., 2002; Grzeszczuk 2002) Kuvina esitetyt pintakartat ja näkymäkartat sisältävät paljon toisteisuutta, joten niiden pakkaamiseen voidaan hyvin käyttää olemassa olevia kuvanpakkausmenetelmiä. Jokaisen kolmion pintakartta i ja näkymäkartta h vj [θ q,φ q ] esitetään vektoreilla. Käytetty pakkausalgoritmi ryhmittelee vektorit niiden kokoon perustuen. Pakkausmenetelmä on tehokas ja valokarttojen kokoa pystytään pienentämään jopa neljä kertalukua alkuperäiseen kokoonsa nähden. 5 LFM:N REAALIAIKAINEN RENDERÖINTI LFM:n renderöintialgoritmi perustuu yhtälön (6) kuvaamaan verteksikeskeiseen jaotteluun: jokaisen mallin sisältämän kolmion valokenttä voidaan esittää itsenäisesti sen kolmen verteksin verteksien valokenttien summana. Tällöin voidaan muodostaa tehokas renderöintialgoritmi, joka toistaa samat toimenpiteet kolmiulotteisen mallin jokaiselle kolmiolle yksi kerrallaan. (Chen et al., 200; Richmond 200) 5. Renderöintialgoritmi Kuvassa 4 käytetään kuutta valokentän karttaa kolmion i valokentän approksimointitermin laskemiseksi. Kuvassa keskimäisessä sarakkeessa on pintakartat g vj i [r p,s p ]. Pikselit, jotka on peitetty varjostetulla kolmiolla vastaavat niitä pisteitä kolmion i sisällä, joissa valokenttäfunktio näytteistettiin. Näiden pisteiden tekstuurikoordinaatteja kuvataan koordinaattipisteillä (s,t). Kuvan 4 oikeassa sarakkeessa on näkymäkartat h vj [θ q,φ q ]. Jokaisen kuvan ympyrän sisällä olevat pisteet vastaavat ortografista projektiota puolipallolta katselusuunnan mukaisesti verteksin v j paikallisen xyz koordinaattijärjestelmän xy-tasolle ja skaalattuna välille (0,) (katso kuva ). Tekstuurin koordinaatit ilmaistaan (x,y) pisteinä, jolloin seuraavan yhtälön mukaiset tekstuurin koordinaattien laskeminen on mahdollista: x = ( d x +) / 2, y = ( d y +) / 2 (7) Yhtälössä d on normalisoitu paikallinen katsomissuunnan vektori ja vektorit x ja y vastaavat paikallisia koordinaattiakseleita. 7
Kuva 4. Yhden kolmion verteksien valokenttäapproksimaatiot. Pintakartat ovat samat jokaiselle vertekslle ja näkymäkartat erilaiset. (Chen et al., 2002) Valokenttien approksimaatioiden renderöinti suoritetaan tekstuurimappauksella. Kameran sijainnista riippuen renderöintialgoritmi käyttää aina eri 2D-osajoukkoa 4Dvalokenttäfunktiosta. Tämä tapahtuu laskemalla uudet näkymäkarttakoordinatit (x i,y i ) aina kun kamera liikkuu. (Chen et al., 2002) 5.2 Hardware-toteutus LFM:n renderöinti voidaan toteuttaa reaaliaikaisesti sitä varten toteutetulla multiteksturointia ja laajennettua väriskaalaa hyödyntämään pystyvällä grafiikkakortilla. Yksi renderöintialgoritmin perustoiminnoista on pintakartan ja näkymäkartan kertominen keskenään pikseli pikseliltä. Multiteksturointiin pystyvä rauta mahdollistaa useiden tekstuurifragmenttien modulaation laskemisen yhdellä renderöintikierroksella. NMF:ään pohjautuvassa LFM-sovelluksessa tarvitaan enintään kolme renderöintikierrosta jokaisen valokentän approksimaatiotermin laskemiseksi. Ilman multiteksturointitukea renderöintialgoritmi voidaan toteuttaa käyttämällä yhteenlaskubufferia. (Chen et al., 2002) Negatiivisia arvoja sisältäviä valokenttiä tekevälle PCA approksimaatiolle renderöinti voidaan toteuttaa grafiikkaraudalla, joka sallii värialueen (color range) olevan välillä [min, max] perinteisen [0,] alueen sijasta; esimerkiksi välillä [-,]. PCA-perustainen matriisien kertominen edellyttää, että valokenttämatriisista vähennetään keskinäkymä (mean view) ennen alueisiin jakoa. Tämä muuttaa renderöintiä hieman; kolmion tekstuurikartta lasketaan ensin käyttäen sen keskinäkymää, johon lisätään sitten modifioitu valokenttämatriisi. Yksi keskinäkymän erottamisesta ja sen renderöinnistä erikseen syntyvä hyöty on se, että useissa tapauksissa tämä näkymä edustaa pinnan materiaalin diffuusikomponenttia, joka näin voidaan erottaa muusta katsomissuunnasta riippuvasta valokenttädatan komponentista. (Chen et al., 2002) 8
6 ESIMERKKILAITTEISTO JA KOETULOKSIA Light Field Mapping -tekniikan toteuttaminen käytännössä vaatii seuraavia toimenpiteitä: mallinnettavavasta kappaleesta täytyy tehdä digitaalinen rautalankamalli, kappaleen heijastamat valaisuarvot täytyy tallentaa, saatu data täytyy näytteistää, ja valokenttäkartat täytyy järjestää tekniikan vaatimalla tavalla. Seuraavassa esitellään eräs LFM-toteutus. 6. 3D kuvausjärjestely Mallinnettavasta kappaleesta otetaan N kappaletta (200 < N < 400) valokuvaa digitaalikameralla. Kuvattava kappale on asetettu erityiselle alustalle, jonka merkkipisteiden mukaan pystytään automaattisesti määrittämään kuvaussuunta ja etäisyys. Kuvaamisen tuloksena saadaan N tunnetuista kuvaussuunnista otettuja valokuvia. Kuvassa 5 on esimerkki kuvausjärjestelystä sekä kuvista yhdistelemällä saadut mallit. (a) (b) (c) (d) Kuva 5. Esimerkki kuvausjärjestelystä. (a) kappaletta kuvataan erityisellä alustalla. (b) skannausta varten valaistu kohde. (c) valmis 3D-kolmioverkko. (d) kolmioverkko projisoituna valokuvan päälle. (Chen et al., 2002) Kappaleen geometria lasketaan erityisissä valaisuolosuhteissa kuvattujen kuvien perusteella. Skannauksen tuloksena saadaan joukko kappaleen pintaa kuvaavia pisteitä, joiden välille muodostetaan kolmioverkko. Koska samaa järjestelmää käytetään sekä kappaleen heijastusominaisuuksien, että geometrian tallentamiseen, kuvainformaatio ja geometria voidaan sovittaa helposti toisiinsa.(chen et al., 2002) 6.2 Datan uudelleennäytteistys Tehokkuuden kannalta on oleellista, että vain kustakin suunnasta näkyvien kolmioiden valaisuominaisuudet mallinnetaan. Kolmio lasketaan näkyväksi tietystä suunnasta vain jos se on kokonaan näkyvissä; osittain peittyneitä kolmioita ei lasketa. Näkyvät kolmiot vastaavat joukkoa erikokoisia tekstuuripaloja (texture patch), jotka on kuvattu eri suunnista. Approksimointialgoritmit edellyttävät, että data on matriisien muodossa. Jokainen tekstuuripala täytyy siis normalisoida saman muotoiseksi ja kokoiseksi toisten kanssa. Näkymäkartta muodostetaan kuvan 6 mukaisesti rajallisesta määrästä näytteitä; 9
näytteiden perusteella approksimoidaan näytepisteiden välisten alueiden valaisuarvot ja näkymäkartta täydennetään aukottomaksi.(chen et al., 2002) Kuva 6. Näkymien uudellennäytteistys. Vasemmalla alkuperäiset näkymät, keskellä projisoidut näkymät ja oikealla alkuperäisestä näkymästä saatu tasainen näkymäkartta. (Chen et al., 2002) 6.3 Valokenttäkarttojen ryhmittely Renderöintitehokkuuden parantamiseksi yksittäisiä valokenttäkarttoja ryhmitellään yhteen. Ryhmittely tapahtuu valokarttojen koon perusteella siten, että valokartoille on ennalta määritelty sallitut koot ja samankokoiset valokartat kerätään yhteen. Kuvassa 7 on koon mukaan ryhmiteltyjä pintakarttoja ja näkymäkarttoja.(chen et al., 2002) Kuva 7. Ryhmiteltyjä pintakarttoja ja näkymäkarttoja. (Chen et al., 2002) 6.4 Koetuloksia LFM-menetelmän kehittänyt Intelin työryhmä on myös tutkinut tekniikan toimivuutta käytännössä. Ryhmä tutki menetelmää kuvaamalla useita erilaisia kohteita kohdassa 6. esitetyllä laitteistolla ja käsittelemällä saadut valokuvat esitellyn näytteistysmenetelmän mukaisesti. Tulosten perusteella tiheämmällä verkolla, eli pienemmillä kolmioilla mallinnettu kappale tarkoittaa parempaa approksimaatiolaatua, mutta pakkaamisen hyötysuhde on huonompi. Pienistä kolmioista koostuva malli on lisäksi hitaampi renderöidä. (Chen et al., 2002) Pinnan valokartan approksimaation laatua mitattiin laskemalla RMS-virhe (root mean squared error) näytteistetyn valokenttämatriisin ja approksimaatiosta tuotetun matriisin välillä. Tulosten mukaan LFM-tekniikka tuottaa laadukkaan approksimaation alkuperäisestä kappaleesta. Kahta eri algoritmia verratessa PCA tuottaa NFM:aa paremman lopputuloksen RMS-virheellä mitattuna. Kuvan laadussa kahta menetelmää verrattaessa tosin ei ole silminnähtävää eroa. (Chen et al., 2002) 0
NFM :ään perustuvien ratkaisujen renderöinti on noin 50% nopeampaa kuin yhtä monta approksimaatiotermiä sisältävien PCA:han perustuvien. Renderöintinopeus riippuu jonkin verran valokenttäkarttojen koosta, mutta valokenttäkarttojen koon kasvattaminen kaksinkertaiseksi hidastaa renderöintiä vain 20%. (Chen et al., 2002) 6.5 Sovelluksia Valokenttien kartoitusta voidaan käyttää peleissä ja muissa sovelluksissa, joissa tarvitaan kolmiulotteista reaaliaikaista mallintamista. Menetelmä sopii oikeiden kappaleiden kuvaamiseen, mutta sillä voidaan mallintaa myös täysin keinotekoisia ympäristöjä, esimerkiksi virtuaalisia huoneita tai taloja. Menetelmää voidaan käyttää myös tietokoneanimaatioiden tekemiseen. (Chen et al., 2002; Grzeszczuk 200; Richmond, 200) LFM:n eräs puute on se, ettei sillä voi mallintaa muuttuvia valaisuolosuhteita; esimerkiksi liikkuvia valoja. Menetelmän kehittäneen työryhmän tavoitteena on laajentaa LFM:ää siten, että tulevaisuudessa sen avulla voitaisiin mallintaa myös muuttuvia valaisuolosuhteita. Lisäksi tavoitteena on laajentaa LFM-tekniikka käsittelemään myös mallin osittain näkyvien kolmioiden näkyvien osien valaisuinformaatio. (Chen et al., 2002) LFM on osa MPEG4 standardia ja sen voidaan olettaa yleistyvän tulevaisuudessa osana erilaisia 3D-mallinnusympäristöjä. (Chen et al., 2002) 7 YHTEENVETO Light Field Mapping valokenttien kartoitus on menetelmä, jolla voidaan fotorealistisesti mallintaa kolmiulotteisia esineitä ja ympäristöjä. Mallinnettava kappale kuvataan useista eri suunnista, jolloin saadaan talteen kappaleen pinnan valaisuominaisuudet eri suunnista katsottuna. Kuvaamalla saatu valokenttädata ositetaan verteksikohtaisesti tekstuurielementeiksi, joita kutsutaan valokenttäkartoiksi. Valokenttäkartat koostuvat pintakartoista ja näkymäkartoista. Valokenttäkarttoja voidaan tehokkaasti pakata ja niiden sisältämä data voidaan renderöidä reaaliaikaisesti. Valokenttäkarttojen renderöinti tapahtuu kertomalla tekstuurimuodossa olevia kolmion verteksin pintakarttoja ja näkymäkarttoja keskenään pikseli pikseliltä. Näin saadaan renderöityä kullekin mallin kolmiolle ja edelleen koko mallinnettavalle kappaleelle tai ympäristölle alkuperäistä vastaava valaisuinformaatio. Valokenttien kartoitus tukee vain staattisia valaisuympäristöjä, eli se esittää mallin siinä valaistuksessa, jossa malli kuvattiin. Dynaaminen valaisumalli olisi mahdollista saada aikaan yhdistämällä valokenttien kartoitus johonkin toiseen mallinnusmenetelmään.
LÄHDEVIITTEET Chen W-C., Bouguet J-Y., Chu M. H., Grzeszczuk R. (2002). Light field mapping: efficient representation and hardware rendering of surface light fields. Proceedings of the 29th annual conference on Computer graphics and interactive techniques. San Antonio. Texas. USA. pp 447-456. Grzeszczuk R. (200). Light Field Mapping - New Appearance For 3D Scanning? CADspaghetti verkkolehti, artikkeli. Saatavissa: http://www.businessadvantage.co.uk/spaghetti/lightfield.htm Grzeszczuk R. (2002). Presentation on Light Field Mapping. SIGGRAPH 2002 Course Notes for Course Image-based Modeling. Richmond R. (200). Light Field Mapping - An in-depth analysis. Romulus2 wwwsivusto, artikkeli. Saatavissa: http://www.romulus2.com/articles/guides/lfm/lfm.htm Wood D. N., Azuma D. I., Aldinger K, Curless B. (2000). Surface Light Fields for 3D Photography. Proceedings of the 27th annual conference on Computer graphics and interactive techniques. pp.287-296. 2