Teknillinen korkeakoulu 6.4.2004 Tietoliikenneohjelmistojen ja multimedian laboratorio T-111.500 Tietokonegrafiikan seminaari.



Samankaltaiset tiedostot
Laatoitukset. Tessellations. Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto

Monikulmiot 1/5 Sisältö ESITIEDOT: kolmio

Luku 6: Grafiikka. 2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat

3. Kuvio taitetaan kuutioksi. Mikä on suurin samaa kärkeä ympäröivillä kolmella sivutahkolla olevien lukujen tulo?

Muita kuvankäsittelyohjelmia on mm. Paint Shop Pro, Photoshop Elements, Microsoft Office Picture Manager

Pelivaihtoehtoja. Enemmän vaihtelua peliin saa käyttämällä erikoislaattoja. Jännittävimmillään Alfapet on, kun miinusruudut ovat mukana pelissä!

A-Tiilikate objektikirjasto

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

HB-Harkko-kirjasto asennetaan oletusarvoisesti ArchiCADin kirjastohakemiston alle (C:\Program Files\Graphisoft\ArchiCAD 13\Kirjasto 13).

JOHDATUS TEKOÄLYYN TEEMU ROOS

2016/06/21 13:27 1/10 Laskentatavat

Peliteoria luento 1. May 25, Peliteoria luento 1

Ensimmäinen osa: Rautalankamallinnus. Rautalankamallinnus

Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta.

Kenguru 2016 Student lukiosarja

Tehtävä Vastaus

5. Grafiikkaliukuhihna: (1) geometriset operaatiot

Datatähti 2019 loppu

Puzzle-SM Loppukilpailu Oulu


2017/01/22 15:12 1/6 Liittymän luonti

2.1 Yksinkertaisen geometrian luonti

PERCIFAL RAKENNETUN TILAN VISUAALINEN ARVIOINTI

JOHDATUS TEKOÄLYYN TEEMU ROOS

S Laskennallinen Neurotiede

3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö

ohjeet. AtFlow Oy, Pekka Rönkkönen, +358 (0)

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Luento 2 Stereokuvan laskeminen Maa Fotogrammetrian perusteet 1

Materiaalifysiikan perusteet P Ratkaisut 1, Kevät 2017

ONTELOLAATASTOJEN REI ITYKSET JA VARAUKSET

Välkeselvitys. Versio Päivämäärä Tekijät Hyväksytty Tiivistelmä

Turun seitsemäsluokkalaisten matematiikkakilpailu Tehtävät ja ratkaisut

Välkeselvitys. Versio Päivämäärä Tekijät Hyväksytty Tiivistelmä. Rev CGr TBo Hankilannevan tuulivoimapuiston välkeselvitys.

1 2 x2 + 1 dx. (2p) x + 2dx. Kummankin integraalin laskeminen oikein (vastaukset 12 ja 20 ) antaa erikseen (2p) (integraalifunktiot

LEHDISTÖTIEDOTE. Nikon tuo markkinoille uuden sukupolven. kuvankäsittelyohjelmiston. Capture NX2: entistä tehokkaampi ja helppokäyttöisempi

,QWHUQHWVHODLPHQNl\WWlPLQHQ±,QWHUQHW([SORUHU

Jouni Huotari OLAP-ohjetekstit kopioitu Microsoftin ohjatun OLAP-kuution teko-ohjeesta. Esimerkin kuvaus ja OLAP-määritelmä

Aki Taanila LINEAARINEN OPTIMOINTI

Partikkelit pallon pinnalla

Reaalilukuvälit, leikkaus ja unioni (1/2)

Tilanhallintatekniikat

Kuvan pienentäminen Paint.NET-kuvankäsittelyohjelmalla

Kuva 1. Jokaisen tavallisen kuvan tasotyökalussa näkyy vain yksi taso, tässä nimellä tausta.

Sukat. kuin puhdas villa mutta saman tuntuista. !!!!!!! Mitan otto sukkaa varten

Matterport vai GeoSLAM? Juliane Jokinen ja Sakari Mäenpää

2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N77 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä

Kenguru Ecolier, ratkaisut (1 / 5) luokka

Kenguru 2012 Junior sivu 1 / 8 (lukion 1. vuosi)

Sisällysluettelo. 1. Johdanto

Demo 1: Simplex-menetelmä

Hunajakakku menossa lingottavaksi

Ohjeita kirjan tekemiseen

Luento 6: Piilopinnat ja Näkyvyys

Toisessa kyselyssä alueella on 1 ruudussa A ja 3 ruudussa B, joten suosituin ehdokas on B.

Diskreetit todennäköisyysjakaumat. Kertymäfunktio Odotusarvo Binomijakauma Poisson-jakauma

T Vuorovaikutteinen tietokonegrafiikka Tentti

TornaMarket-Metsät metsätilamarkkinointisovelluksen käyttöohje (ohje tehty PC käytölle)

Puzzle SM Pistelasku

Välkeselvitys. Versio Päivämäärä Tekijät Hyväksytty Tiivistelmä

Kenguru 2014 Ecolier (4. ja 5. luokka)

Jakotaso 1. Teoriatausta. Työvaiheet. CAD työkalut harjoituksessa parting_1_1.catpart. CAE DS Muotinsuunnitteluharjoitukset

Sosiaalinen media Facebook, Twitter, Nimenhuuto

Yksinkertaistaminen normaalitekstuureiksi

TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO

Partikkelit pallon pinnalla

Geometrialtaan mielivaltaisen huonetilan pintojen näkyvyyskertoimien laskenta

The spectroscopic imaging of skin disorders

Tekstuurintunnistuksen lyhyt oppimäärä. Ts. pari tapaa erottaa tiiliseinä pensaasta.

Digitaalisen arkkitehtuurin alkeet

Nokia Lifeblog 2.5 Nokia N76-1

Harjoitus Morphing. Ilmeiden luonti

7 tapaa mallintaa maasto korkeuskäyristä ja metodien yhdistäminen

Kuva Suomen päätieverkko 1 Moottoritiet on merkitty karttaan vihreällä, muut valtatiet punaisella ja kantatiet keltaisella värillä.

1. STEREOKUVAPARIN OTTAMINEN ANAGLYFIKUVIA VARTEN. Hyvien stereokuvien ottaminen edellyttää kahden perusasian ymmärtämistä.

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa:

A* Reitinhaku Aloittelijoille

Algoritmit 2. Luento 6 Ke Timo Männikkö

TERRASOLID Point Cloud Intelligence

FlyMarker PRO merkintälaite. Mark like a Professional

Seuraavat Windowsin käyttöjärjestelmäversiot tukevat Novell Filr -työpöytäsovellusta:

LightWorks. 1 Renderoijan perussäädöt. 1.1 Sisältö. 1.2 LightWorksin käytön aloitus

Graafinen ohjeisto 1

Turun seitsemäsluokkalaisten matematiikkakilpailu Ratkaisuita

Valmistelut: Aseta kartiot numerojärjestykseen pienimmästä suurimpaan (alkeisopiskelu) tai sekalaiseen järjestykseen (pidemmälle edenneet oppilaat).

Kenguru Écolier (4. ja 5. luokka) sivu 1/5

2.3 Voiman jakaminen komponentteihin

GEOMETRIA MAA3 Geometrian perusobjekteja ja suureita

1 GDL-OBJEKTIN TUONTI...1

Pyhäjoen kunta ja Raahen kaupunki Maanahkiaisen merituulivoimapuiston osayleiskaava

Luento 3: 3D katselu. Sisältö

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

Tassu Takala pääaineinfo

Asuinalue (ruskea tausta) Kalatori Viljatori

Käyttöohje Nokia Musiikki

VIISIPALLO PELI JOKA KEHITTÄÄ YHTENÄISYYTTÄ YHTEISTYÖTÄ YHTEISÖÄ

Z O K E R OHJEET REGLER PÅ SVENSKA XL 3 XL 3 M4 1 L4 1 XL 3 M 23 XL 1 XL 4 ML 4 M 41 L4 3 L 1 S4 1 XL 2 XL M 14 M 4 XL 3 LS 4 XL 3 L 3 S L3

Transkriptio:

Teknillinen korkeakoulu 6.4.2004 Tietoliikenneohjelmistojen ja multimedian laboratorio T-111.500 Tietokonegrafiikan seminaari Wang-laatoitus Ville Leino 45323K

Ville Leino TKK, Tietoliikenne ohjelmistojen ja multimedian laboratorio Ville.Leino@hut.fi Abstrakti Esittelen laatoitusmenetelmän käyttöä tietokonegrafiikassa, sen periaatteet ja sovellusalueet. Laatoitusmenetelmissä muodostetaan pintoja käyttämällä yhtä tai useampaa laattaa ja sijoittamalla niitä vierekkäin. Laatoitusmenetelmiä voidaan hyödyntää niin 2D- kuin 3D-sovelluksissa sillä laatoitus voi bittikarttainformaation sijaan pitää sisällään myös geometriaa. Laatoituksen ongelmakohtina on toistuvat kuviot, jotka eivät näytä luonnollisilta. Tämän kiertämiseen voidaan hyödyntää Wang-laatoitusta, jossa yhdestä lähdetekstuurista luodaan joukko laattoja, jotka värikoodauksella voidaan sääntöjen puitteissa sijoittaa satunnaisprosessilla vierekkäin. Stokastista sijoitusprosessia hyödyntämällä saadaan tuloksena luonnollisen näköisiä jaksottomia laatoituksia. Wang-laatoitus ei kuitenkaan ole ongelmatonta sillä se kärsii kulmaongelmasta, johon esitetään ratkaisu. Lisäksi käydään läpi Wang-laattojen luonti ja Wang-laattojen hyödyntäminen Poissonjakauman omaavien ilmiöiden esittämisessä. Lopuksi kerron miten Wanglaatoitusta voidaan hyödyntää muiden tekniikoiden kanssa 3D renderoinnissa. 1 JOHDANTO Realististen ympäristöjen esittäminen tietokonegrafiikalla pitää sisällään useamman ongelman, joista eräs on luonnollisten pintojen luonti. Luonnollisessa ympäristössä materiaalien pinnat ovat jaksottomia ja tämä pyritään saamaan aikaan realiaikaisen tietokonegrafiikan rajoitteiden puitteissa. Tätä ongelmaa on perinteisesti kierretty käyttämällä laatoitustekniikkaa jossa yhtä tai useampaa toisiinsa sopivaa laattaa ladotaan vierekkäin ja laattoihin pyritään tekemään mahdollisimman vähän silmiin pistäviä muotoja, eli artifakteja, sisältäviksi. Wang-laatoituksessa luodaan ensin joukko laattoja, jotka rajoitteiden puitteissa sopivat toisiinsa. Wang-laatat ovat neliöitä, joiden reunat merkitään eri väreillä ja nämä reunat ilmaisevat laattojen sopivuuden muiden Wang-laattojen kanssa. Näitä laattoja voidaan tämän jälkeen satunnaisvalinnalla sijoittaa vierekkäin, siten että vierekkäisten laattojen reunojen värit sopivat yhteen ja tämän tuloksena saadaan jaksotonta laatoitettua pintaa. Wang-laattoja voidaan soveltaa myös kappaleiden sijoittamiseen 2D tai 3D ympäristössä. Tällöin Wang-laatat luodaan sellaisiksi, että saadut kappaleiden sijainnit pinnassa tai tilassa säilyttävät lähdemateriaalin ominaisuudet, kuten Poisson jakautuneisuuden. Kerron aluksi yleisesti laatoituksen taustasta ja sen käyttökohdista tietokonegrafiikassa. Tämän jälkeen esittelen Wang-laatat menetelmänä, sen ongelmat, niiden ratkaisut ja Wang-laatoituksen soveltamisen sijainti-informaation kanssa. Lopuksi kerron menetelmän muista sovellusalueista, rajoituksista ja mahdollisista jatkokehityssuunnista. 1

1.1 TAUSTA Tietokonegrafiikassa laatoitusta alettiin laajasti hyödyntää 1980-luvun alussa, jolloin bittikarttagrafiikkaa voitiin esittää viihdeteollisuuden tuotteissa. Menetelmän suurimpana etuna on muistin säästäminen esittämällä yhtä tai useampaa laattaa vierekkäin antaen vaikutelma isosta yhtenäisestä pinnasta. Laatat useimmiten koostuvat bittikarttainformaatiosta, mutta laattoja voidaan soveltaa myös toistuvan sijaintitiedon esittämiseen. 1980-luvun alussa osa kolikkopelimarkkinoiden tuotteista siirtyi verktoripohjaisen tiedon esittämisestä bittikarttojen käyttöön. Tästä hyvänä esimerkkinä on Zaxxon (kts. Kuva 1), jota pidettiin edistyksellisenä pelinä visuaalisen näyttävyytensä takia. Peli selkeästi erosi kilpailijoistaan jotka pohjautuivat rautalankavektorigrafiikkaan. Zaxxon lisäksi hyödynsi laatoitusta pelikentän rakentamisessa, mutta säilytti samalla kolmiulotteisuuden tarjoaman näyttävyyden isometrista projisointia käyttämällä. Laatoitus tuo mukanaan jaksottumisen ongelman, jossa kuvaa katsottaessa nousee esiin häiritsevä epäluonnollisuus. Tätä on voitu vähentää toisaalta taitavasti luoduilla laatoilla, kuten Diablo-pelin (Kuva 1) tapauksessa, tai käyttämällä useampaa laattaa jotka kaikki sopivat keskenään toisiinsa. Jälkimmäisessä tapauksessa päästään jo kohtuullisen hyvään tulokseen, mutta täysin satunnaisen sijoittelun ja laattojen täydellisen yhteensopivuuden vuoksi, se ei poista ilmeistä samojen piirteiden toistumista näin laatoitetuissa pinnoissa. Hao Wangin mukaan nimetty Wang-laatoitus pyrkii poistamaan toistuvien kuvaelementtien esiintymisen käyttämällä joukkoa Wang-laattoja jotka on luotu yhdestä lähdetekstuurista. Laatoitusta rajoittaa Wang-laattojen määrittelemät värireunat jotka määräävät yhteensopivuuden muiden Wang-laattojen kanssa (Wang -65, Wang -61). Jo ainoastaan kahdeksan Wang-laatan joukolla, kuten Cohan et al.(2003) esittävät, on mahdollista luoda laatoituksia, joissa jaksotteisuutta ei esiinny. Wang-laattojen käyttö on nopeaa ja yksinkertaista, mutta niiden luonti on hankalampaa. Efros ja Freeman (Efros ja Freeman 2001) esittivät menetelmän, jossa satunnaisesti valitaan otoksia lähdemateriaalista ja ladotaan vierekkäin. Näin muodostetussa laatoituksessa esiintyvät virheet korjataan sijoittamalla laatat osittain päällekäin ja korjaamalla rajavirheet pienimmän virheen algoritmilla. Tätä algoritmia hyödynnetään nyt käytettävässä Wang-laatoituksessa, jossa yhdestä lähdetekstuurista muodostetaan varsinaiset Wang-laatat. Aikaisempaa tutkimusta löytyy laatoituksesta (Grümbaum ja Shephard 1987, Glassner 1998), mutta nämä käsittelevät eri muotoisten laattojen tuomia ongelmia sekä laattojen muokkaamista. Nämä eivät varsinaisesti edistä Wang-laatoituksen käyttöä tai paranna laatoituksen laatua tässä yhteydessä. 2 WANG-LAATAT Wang-laatat koostuvat joukosta laattoja, jotka on luotu samasta lähdetekstuurista. Muodostetut Wang-laattojen reunat värikoodataan merkitsemään yhteensopivuutta muiden Wang-laattojen kanssa. Värikoodeja tyypillisesti on kaksi tai enemmän, jotta muodostettava laatoitus saadaan satunnaisprosessin kautta jaksottomaksi. Wang-laatat oletetaan neliöiksi mutta tekstuurin muodostuksen yhteydessä voidaan käyttää myös suorakulmioita neliöiden sijaan. Tästä ominaisuudesta voidaan hyötyä isometristen 2

kuvakulmien käyttämien timantin muotoisten laattojen tapauksessa, kuten kuvan 1 Diablo-pelissä on tehty. Kuva 1: Zaxxon(1982), vasemmalla, hyödynsi ensimmäisten joukossa bittikarttojen laatoitusta viihdeteollisuudessa ja saavutti näyttävyydellään suuren suosion kilpailijoihinsa nähden kuten Battlezone(1980) keskellä. Laatoitus on edelleen viihdeteollisuuden käytössä, Diablo(1998) oikealla. Jälkimmäisessä tapauksessa kuvaa on muokattu jotta laatoituksen käyttö tulisi paremmin esiin. 2.1 Stokastinen ja jaksollinen laatoitus Jaksollinen laatoitus on yksikertaisimmillaan yhden laatan käyttämistä sijoittamalla sitä vierekkäin vasemmalta oikealle, ylhäältä alas. Useasti jaksollisen laatoituksen sijaan käytetään kuitenkin useampaa laattaa, joilla kaikilla on yhteinen ominaisuus. Jaksollisessa laatoituksessa on ainoastaan pidettävä huoli siitä että kaikki laatan, tai laatojen, reunat ovat keskenään yhteensopivia. Useamman laatan tapauksessa voidaan satunnaisprosessilla valita kaikkien laattojen kesken seuraava laatoitukseen sijoitettava laatta. Vaikka näin saatu laatoitus ei ole jaksollinen, jos käytettävissä olevia laattoja on enemmän kuin yksi, esiintyy siinä kuvien artifaktit silmiinpistävästi ja ne toistuvat laatoituksessa (Kuva 2a). (a) (b) Kuva 2: Jaksollinen ja stokastinen laatoitus. (a) Yhden lähdetekstuurin avulla muodostettu jaksollinen laatoitus. (b) Kahdeksantoista Wang-laatan avulla muodostettu stokastinen laatoitus (Cohen et al. 2003). Stokastisessa laatoituksessa valitaan laattojen joukosta satunnaisprosessilla seuraava laatoitukseen valittava laatta. Jos Wang-laattoja ei käytetä, voidaan satunnaisprosessissa käyttää koko laatoituksessa käytettävää laattojen joukkoa. Wanglaattojen tapauksessa joukon rajaa laatan ylä- ja vasen naapuri, sillä seuraavan sijoitettavan laatan reunojen pitää sopia naapurilaattojen reunojen kanssa. Cohan et al. 3

(2003) esittävät käytettäväksi seuraavaa stokastista laatoitusalgoritmia: 1. Valitaan mikä tahansa laatta vasempaan yläkulmaan. 2. Laatoitetaan yläreuna kulkemalla vasemmalta oikealla ja valitsemalla seuraava laatta satunnaisesti niiden laattojen joukosta joiden vasen reuna on saman värinen kuin edellisen laatan oikea reuna. 3. Valitaan satunnaisesti seuraavan rivin ensimmäiseksi laataksi niiden laattojen joukosta laatta, joiden yläreuna on väriltään sama kuin ylemmän rivin vasemman puolimmaisen laatan alareuna. 4. Täytetään rivi satunnaisesti valitsemalla laatta niiden laattojen joukosta joiden vasen reuna on saman värinen kuin vasemmalla puolella olevan laatan oikea reuna ja yläreuna saman värinen kuin yläpuolella olevan laatan alareuna. 5. Takaisin kohtaan 3 kunnes halutun kokoinen alue on laatoitettu. Tällä algoritmilla aikaansaatu laatoitus on jaksoton ja hyvin muodostettujen Wanglaattojen kanssa käytettynä tuottaa varsin luonnollisen näköisen laatoituksen (Kuva 2b). Minkään laatoitusmenetelmän yhteydessä ei Wang-laattoja kuitenkaan saa kääntää. Kuva 3: Kaksiväristen reunojen muodostama kahdeksan Wang-laatan joukko vasemmalla, ja niillä stokastisesti rakennettu pinta oikealla. 2.2 Reunat Wang-laattojen reunat ovat yksikertaisimmassa tapauksessa kaksiväriset. Tämän perusteella muodostettavia permutaatioita on kuusitoista, mutta mikäli halutaan minimoida laattojen lukumäärä, voidaan näistä valita osa siten että kaikki vasenyläreuna yhdistelmät ovat edustettuina kahteen kertaan, jolloin tarvittavien laattojen lukumääräksi saadaan kahdeksan. Koska nämä neljä vasen-yläreuna yhdistelmää ovat kukin kahteen kertaan, voidaan edelleen suorittaa stokastisen laatoitusalgoritmin mukaisesti valinta vähintään kahden eri laatan välillä laatoituksen jokaisessa vaiheessa. Kuten kuvassa 3, laattojen vasen ja oikea reuna ovat aina joko punaisia tai sinisiä kun taas ylä- ja alareuna vihreitä tai keltaisia. Yleisessä tapauksessa laattoja tarvitaan Cohan et al. (2003) mukaan vähintään 2 2 k kappaletta, jossa k on käytettävien värien lukumäärä seinissä. Mikään ei 4

kuitenkaan estä käyttämästä pysty- ja vaakasuorissa seinissä eri määrää värejä jolloin pienimmän tarvittavan laattojen lukumääräksi saadaan 2 x y kappaletta, jossa x on käytettävien värien määrä vaakasuorissa seinissä ja y pystysuorissa. 3 TEKSTUURIEN JA NÄKYMIEN LUONTI Wang-laatoilla tekstuurien luonti onnistuu nopeasti siinä missä näkymienkin sitten kun käytettävä laattajoukko on saatu luotua. Laatat voidaan luoda käsin työkaluilla tai algoritmeilla automaattisesti. Mikäli tarvitaan ainoastaan pieni joukko laattoja, esimerkiksi kahdeksan, eikä laattojen ole tarkoitus olla kovinkaan isoja, voidaan ne hyvinkin luoda käsin. Tällöin toki tarvitaan enemmän persistenttiä tallennustilaa, mutta vältytään laattojen luonnilta, joka ei ole laskennallisesti kovinkaan kevyt operaatio. 3.1 Laattojen suunnittelu käsin Käsin suunniteltaessa paras toimintamalli on imitoida Wang-laattojen luontialgoritmia. Algoritmissa leikataan halutusta isosta lähdetekstuurista, kuten valokuvasta, x + y kappaletta mielenkiintoisia alueita, jossa x ja y ovat käytettävien värien määrä Wanglaatoissa vaaka- ja pystyseinissä. Nämä alueet sovitetaan yhteen samalla periaatteella kuin algoritmipohjaisesti toimittaessa eli käyttämällä Efros ja Freemanin(2001) esittelemää nidontamenetelmää. Algoritmissa valitaan satunnaiset kuva-alueet lähdemateriaalista (Kuva 4a) ja liitetään yhteen Wang-laatan määräämällä tavalla (Kuva 4b). Vierekkäiset kuva-alueet sijoitetaan osittain päällekäin (Kuva 4c), alueiden muodostamaa yhteiskuvaa käännetään 45-astetta (Kuva 4d) ja kuva-alueiden päällekäisten osien muodostamalta alueelta valitaan pienimmän virheen reitit (Kuva 4e). Tämä reitti siis määrää rajan, jonka vastakkaisilta puolilta lähdemateriaali valitaan. Hyvin onnistunut reitin valinta poistaa kuva-alueiden väliset rajat, jotka ovat vielä selkeästi esillä kuvassa 4d, mutta eivät enää reitin valinnan jälkeen kuvassa 4e. Lopputuloksena saadaan Wang-laatta leikkaamalla suurin mahdollinen koordinaatistoakselien suuntainen neliö vinoneliön sisältä (Kuva 4f). (a) (b) (c) (d) (e) (f) Kuva 4: Lähdetekstuurista valitaan Wang-laattojen värejä vastaavat alueet (a). Alueet yhdistetään kutakin Wang-laattaa varten erikseen (b), reunat sijoitetaan osittain päällekäin (c), kuvaa pyöritetään 45-astetta (d) ja päällekäisten reunojen muodostamien alueiden sisältä etsitään pienimmän virheen reitti (e). Tuloksena saadaan valmis Wang-laatta (f). Käsin toimittaessa reitin valitsemisessa kannattaa välttää näkyvien kuva- 5

elementtien, eli artifaktien, leikkaamista keskeltä kahteen eri osaan. Näin muodostetut laatat vastaavat reunoiltaan Wang-laattojen väriarvoja ja sopivat vierekkäin minkä tahansa Wang-laatan kanssa, jonka vastakkainen reuna on väriarvoltaan sama. Käsin suunniteltaessa voidaan taata erinomainen laattojen yhteensopiminen. Toisaalta käsin tehdyt Wang-laatat joudutaan tallettamaan, sen sijaan että ne luotaisiin lennossa, joskin luomiseen tarvittavaa lähdetekstuuria ei tällöin enää tarvita. Käsin suunnittelemista voi suositella silloin kun Efros ja Freemanin nitomisalgoritmia ei haluta toteuttaa ja Wang-laattojen lukumäärä on pieni tai jos algoritmipohjaisen nidonnan suorittaminen on liian hidasta. 3.2 Algoritmipohjainen nidonta Efros ja Freemanin nidonta-algoritmissa edetään aluksi kuten laattoja käsin tehtäessä; lähdetekstuurista satunnaisesti valituista alueista muodostetaan yhtenäinen laatta jonka reunat laitetaan osittain päällekäin. Jotta pienimmän virheet reitit voidaan algoritmilla laskea, vähennetään ensin päällekäin menevät osuudet toisistaan jolloin saadaan virhekartta, jonka avulla paras reitti haetaan. Yhdelle pisteelle virhe lasketaan vierekkäisten pisteiden väriarvojen erotusten muutoksien summana. Virhe lisätään reitille kertyneeseen kokonaisvirhearvoon ja reitti hyväksytään jos tämä kokonaisvirhearvo on alle ennalta määrätyn raja-arvon. Mikäli lähdetekstuurista alussa valitut alueet ovat keskenään hyvin erilaisia, ei algoritmi voi taata että laatoitus on esteettisesti onnistunut, jolloin voidaan joutua hylkäämään muodostettu Wanglaattajoukko, valitsemaan lähdetekstuurista uudet alueet ja muodostamaan uusi Wanglaattajoukko. Tässä joudutaan siis käymään läpi kaikki mahdolliset reitit, joka aiheuttaa suuren laskentatehon tarpeen ja reittejä joudutaan hakemaan neljä jokaista Wang-laattaa kohden. Cohen et al. (2003) ilmoittavat tämän kestävän usean sekunnin 2GHz:n prosessorilla. Vaihtoehtoisesti voidaan myös käyttää Dijkstran algoritmia (Cormen et al. 1990). 3.3 Kulmaongelma Algoritmipohjaisen nidonnan ongelmana on artifaktit, jotka osuvat Wang-laattojen kulmiin. Ongelma voidaan poistaa käyttämällä 16-kertainen määrä Wang-laattoja, joissa on reunojen väriarvojen lisäksi talletettuna kulmamerkintä. Laatassa on kulmia neljä ja jokaisessa kulmassa kulmamerkintä voi olla päällä tai poissa. Tästä saadaan permutaatioiden lukumääräksi 16, jonka tähden Wang-laattojen tarve moninkertaistuu. Wang-laattoja luotaessa kulmamerkintä huomioidaan siten että kulman alueella, jonka säde on ennalta määrätty, käytetään lähdetekstuurin sijaan toissijaista lähdetekstuuria. Toissijainen lähdetekstuuri tulisi olla väriarvoiltaan kohtuullisen lähellä ensisijaista lähdetekstuuria, jotta nidonnassa kohtuullinen reitti on löydettävissä. Laatoituksessa kulmamerkintä pitää löytyä aina vierekkäisistä kulmista, jonka tähden kaikki permutaatiot ovat tarpeen (Kuva 5). 6

Kuva 5: Kulmamerkittyjen Wang-laattojen muodostama laatoitus. Kuva 6: Valmis Wang-laatoitus kulmamerkityillä Wang-laatoilla (Cohen et al. 2003). Mikäli toissijainen lähdetekstuuri on artifaktijakaumaltaan erilainen kuin ensisijainen tekstuuri, saadaan lopullisessa laattojen laatoituksessa tuloksena epäyhdenmukaisia alueita (Kuva 6). Tämä on hyvä asia, jos esimerkiksi halutaan luoda näkymä kukkakedosta, jossa kukkia on ainoastaan alueittain eikä tasaisesti joka puolella. Kulmaongelman poistamiseen tai epähomogeeniseen laatoitukseen tarvittavien Wang-laattojen määrä on suoraan verrannollinen tarvittavaan laskentaan niitä muodostettaessa. Cohen et al. ilmoittavat tarvinneensa minuutin laskentaa 2GHz:n prosessorilta kaksiväristen seinien vaatimien 128:n Wang-laatan laskemiseen. 3.4 Laatat kappaleiden sijoittamisen keinona Sen sijaan että laatat koostuisivat bittikartoista, voivat ne esittää kappaleiden sijaintia laatan kokoisen pinnan sisällä. Laatat voidaan täyttää näillä kappaleilla satunnaisprosessilla, jolloin laatoituksen tuloksena syntyvä kappaleiden jakauma on satunnainen ja jaksoton. Tätä voidaan hyödyntää, jos kappaleiden lukumäärä on erittäin suuri ja niiden sijoittaminen realiaikaisesti on ongelma. Kuva 7: Satunnaisprosessin sijoittamia kappaleita Wang-laattoihin ja niiden vaikutusalueet. Kuva 8: Poisson-jakautuneilla Wang-laatoilla muodostettu laatoitus (Cohen et al. 2003). Varsinainen hyöty Wang-laatoista kuitenkin tässä yhteydessä saadaan, jos kappaleet 7

pyritään sijoittamaan Poisson-jakauman mukaisesti. Poisson-jakauma kappaleiden sijoittamisen perustana tarjoaa luonnollisen näköisen lopputuloksen sillä se pyrkii estämään alueiden kuormittumisen liian suurella kappalemäärällä (Kuva 8). Perinteisesti Poisson-jakauma saadaan aikaan sijoittamalla satunnaisprosessilla kappaleet yksi kerrallaan pinnalle ja kappaleen lähiympäristö tietyllä säteellä merkitään käytetyksi, jolloin merkitty alue ei ole enää satunnaisprosessin käytettävissä jatkossa. Tätä ei voida kuitenkaan suoraan siirtää Wang-laattoihin, koska sijoitetun kappaleen vaikutusalue voi ylittää Wang-laatan reunan (Kuva 7). Tällöin kaikkia Wang-laatan mahdollisia naapurilaattoja tulisi myös merkitä käytetyiksi ja tämä väärentäisi kappaleiden sijaintien jakaumaa. Kuva 9: Kappaleiden sijainnit Voronoi diagrammissa Lloydin menetelmää käytettäessä vasemmalla. Stabiloitunut Wang-laattajoukko oikealla. Ongelma voidaan ratkaista Lloydin menetelmää (Deussen et al. 2000, Hausner 2001, McCool ja Fiume 1992) käyttämällä. Lloydin menetelmä eroaa yllä kuvatusta satunnaisprosessista siten että sijoitettavat kappaleet voivat vaikuttaa jo sijoitettuihin kappaleisiin. Menetelmää hyödyntämällä Wang-laattoihin sijoitetaan ensin satunnaisprosessilla haluttu määrä kappaleita ja tämän jälkeen niitä muokataan. Muokkaus tapahtuu valitsemalla Wang-laattojen joukosta yksi ja ympäröimällä tämä kahdeksalla Wang-laatalla. Yhdeksän Wang-laatan alueella kappaleet muodostavat Voronoi diagrammin, jossa jokaista kappaletta ympäröi monikulmio siten että kappale monikulmion sisällä sijaitsee lähimpänä monikulmion keskustaa kuin mikään muu kappale naapurimonikulmioissa. Jotta tämä ehto toteutuisi, pitää kappaleita siirtää. Siirtojen jälkeen valitaan uusi laatta keskimmäiseksi ja ympäristö jälleen täytetään kahdeksalla laatalla. Tätä toistetaan kunnes sijainnit stabiloituvat ja lopputuloksena saadaan Poisson-jakautunut Wang-laatoitus (Kuva 9). 3.5 LDI kuvien käyttö laatoituksen kanssa LDI eli Layered Depth Images tekniikassa luodaan esilaskettujen kuvien avulla 2- ulotteisia pintoja. Näillä pinnoilla on karkea, esimerkiksi 2-3 bittiä pikseliä kohden, syvyysinformaatio, jotta kamerakulmaa voidaan kääntää siten että syvyyspuskurissa tapahtuva kappaleiden leikkautuminen noudattelee vastaavan kolmiulotteisen kappaleen leikkautumista. Resoluutio pidetään tässä tekniikassa usein matalana, koska se on parhaimmillaan etäisten kappaleiden esittämisessä, joiden kaikkia yksityiskohtia ei näy. Koska kuvat ovat pintoja, voidaan niihin esilaskea valaistuksen aiheuttamat varjot. Tämä tietenkin edellyttää että valaistus ei ajon aikana muutu. Näin saatu tehon säästö voi olla merkittävä, jos pyritään realiaikaisesti renderoimaan luonteeltaan monimutkaista maastoa, kuten luontoa. 8

Kuva 10: Kameran sijainti suhteessa kahdeksaan eri kuvakulmavariaatioon LDI kappaleesta vasemmalla. Kukkaniitty, jossa kuvan eri puolilla käytetään eri kuvakulmavariaatiota LDI kappaleista keskellä. Renderoinnin tulos Wang-laatoituksen ja LDI kappaleiden kanssa oikealla. (Cohen et al. 2003). Wang-laatoitusta voidaan tässä yhteydessä käyttää LDI-kappaleiden sijoittamiseen, jotta tulos näyttäisi luonnolliselta. LDI-kappaleista voidaan rakentaa useita eri versioita eri kamerakuvakulmille, jotka vaihdetaan realiajassa esiin edellisten tilalle Wanglaattojen määräämille paikoille. Menetelmän heikkoutena on mahdollinen visuaalinen muutos kun eri kamerakuvakulmaversio LDI-kappaleesta vaihdetaan esiin. Toinen ongelma tulee, mikäli kappaleiden reunat leikkaavat toisiaan, joskin luonnollisen ympäristön renderoinnissa, jossa kappaleita voi olla tuhansia, tällainen jää usein huomaamatta. Hyvin onnistuessaan tulos on kuitenkin vakuuttava ja nopea (Kuva 10). 4 SOVELLUSALUEET JA RAJOITUKSET Wang-laatoitusta voidaan hyödyntää laajalti tilanteissa joissa muutoin käytettäisiin perinteistä laatoitusta, jossa jaksotteisuutta pyritään välttämään tai tilanteissa, joissa on jouduttu turvautumaan koko geometrian peittävään tekstuuriin pelkästään sen tähden että jaksotteisuus on haluttu välttää. Wang-laattojen luonti kuitenkin vaatii suorituskykyisen prosessorin, jotta luontiajat pysyisivät kohtuullisina, erityisesti mikäli halutaan estää kulma-ongelma tai saada aikaan epähomogeenista laatoitusta. Wanglaatoituksen periaatetta ja tässä kuvattuja menetelmiä voi käyttää myös Wangkuutioiden tapauksessa, jolloin siis kuution reunat ovat värikoodattuja ja latominen tapahtuu kolmessa ulottuvuudessa. Tätä voidaan hyödyntää esimerkiksi pilviä tai galakseja mallinnettaessa. Wang-laattoja voidaan hyödyntää myös monikerrosteksturoinnissa, jossa käytettävä pintamateriaali koostuu useasta eri tekstuurikerroksesta. Usein yksi näistä kerroksista on diffuusiokerros, joka pitää sisällään pinnan väriarvot. Diffuusiokerros on tyypillinen sovelluskohde Wang-laatoitukselle, koska sillä saadaan Wang-laatoitettu teksturoitu pinta. Tämän kerroksen muodostamaan pintaan lisätään muut monikerrostekstuurin kerrokset käyttämällä jotakin aritmeettista operaatiota lopullisten väriarvojen laskemiseksi, kuten kertolaskua tai kolmipistetuloa. Monikerrosteksturointia käytettäessä ongelmia saattaa kuitenkin aiheuttaa muiden tekstuurikerrosten teko yhdenmukaisiksi diffuusio Wang-laatoituksen kanssa. Jos esimerkiksi bump-mapping menetelmää käytettäessä korkeusinformaatiokerroksen tekstuuri nidotaan diffuusiokerroksen reittejä käyttämällä, saadaan tuloksena epärealistinen renderointi, koska artifakti diffuusiokerroksessa ei välttämättä ole 9

samassa paikassa kun artifakti korkeusinformaatiokerroksessa. Bump-mapping menetelmässä jokaiselle diffuusiokerroksen kohdalle on määritelty korkeusinformaatio omaan kerrokseensa, jonka vuoksi nämä kaksi kerrosta pitää nitoa käyttämällä samoja reittejä. Ts. diffuusiokerroksessa nidonnassa laskettu reitti voi leikata korkeusinformaatiokerroksessa olevan artifaktin kahteen osaan, josta saattaa seurata epäsuotuisia varjoja renderoinnissa. Puolestaan esimerkiksi Light-mapping menetelmässä, jossa erillisessä tekstuurikerroksessa säilytetään valaistusinformaatiota, tätä ongelmaa ei ole, koska esilaskettu valaistusinformaatiokerros ei ole suoraan riippuvainen diffuusiokerroksen väriarvoista. Wang-laatoituksen vaatimattomat edellytykset mahdollistavat laajan käyttöalueen sovellusalueille joissa sitä ei vielä ole osattu hyödyntää. Erityisesti viihdeteollisuus hyötyisi Wang-laattojen käytöstä, sillä itse laatoittamisen vaatima satunnaisprosessin käyttö ei juurikaan lisää tehon tarvetta ja visuaalinen jaksottomuus ja epähomogeenisuus tekstuuripinnoissa lisäävät huomattavasti realistisuutta luonnollisissa ympäristöissä (Kuva 11). Wang-laatoituksesta voidaan hyötyä myös rajatun persistentin muistin ympäristöissä, kuten puhelinlaitteiden sovelluksissa, sillä näissä laitteissa ei välttämättä ole tilaa säilyttää useaa tekstuuria eikä yhden ainoan tekstuurin käyttö yleensä tarjoa tyydyttävää kuvan laatua. Toisaalta Poisson-jakauman mukaista kappaleiden sijoittamista voidaan hyvin hyödyntää pintojen luonnissa joissa kappaleiden lukumäärä on suuri, esimerkiksi metsät, pellot ja maantieteelliset muodot. Kuva 11: Esimerkkejä Wang-laatoituksella tuotetuista tekstuuripinnoista ja kappaleiden sijoituksista. (Cohen et al. 2003). 5 YHTEENVETO Wang-laattoja voidaan hyödyntää 2-ulotteisten pintojen luomiseen, joissa ei haluta esiintyvän jaksotteisuutta. Laatoitusalgoritmi, jonka avulla Wang-laatoitetut pinnat luodaan, on yksinkertainen ja tarjoaa tämän takia monipuoliset käyttömahdollisuudet. Wang-laatat luodaan käyttämällä nidontamenetelmää, jossa yhdistetään kuvaelementtejä lähdetekstuurista. Saadut laatat sopivat rajoittamattomasti toisiinsa värimääriteltyjen reunojen puitteissa, jonka seurauksena laatoituksesta saadaan jaksoton. Laatoituksen aiheuttama kulmaongelma voidaan ratkaista määrittelemällä painoarvot laatojen kulmille sekä niiden vaikutusalueet. Lisäksi laatoituista voidaan hyödyntää Poisson jakautuneiden kappaleiden sijaintitiedon esittämisessä, monikerrosteksturoinnissa ja LDI-kappaleiden kanssa tehokkaasti monimutkaisen kolmiulotteisen näkymän visualisoinnissa. LÄHDELUETTELO Michael F. Cohen, M., Shade, J., Hiller, S., Deussen, O. 2003. Wang Tiles for image 10

and texture generation, ACM Transactions on Graphics 22 (3), p. 287-294 Deussen, O., Hiller, S., Van Overveld, K., And Strothotte, T. 2000. Floating points: A method for computing stipple drawings. Computer Graphics Forum, Eurographics 2000 Conference Proceedings 19, 4, 40 51. Efros, A., And Freeman, W. 2001. Image quilting for texture synthesis. In Proceedings of SIGGRAPH 2001, 341-346. Glassner, A. 1998. Aperiodic tiling, part 1. IEEE Computer Graphics and Applications 18, 4 (May) Grünbaum, B., Shephard, G. C. 1987. Tilings and Patterns. W.H. Freeman and Company. ISSN 0716711931. Hausner, A. 2001. Simulating decorative mosaics. In SIGGRAPH 2001 Conference Proceedings, p. 573 578 Mccool, M., And Fiume, E. 1992. Hierarchical poisson disk sampling distributions. In Graphics Interface 92, p. 94 105. Wang, H. 1961. Proving theorems by pattern recognition II. Bell Systems Technical Journal 40, p. 1-42. Wang, H. 1965. Games, logic, and computers. Scientific American (November), p. 98-106. Cormen T., Leiserson C., Rivest R. 2001. Introduction to Algorithms, Second Edition, MIT Press, p. 595-600. 11