HELSINGIN TEKNILLINEN KORKEAKOULU Tietoliikenneohjelmistojen ja Multimedian Laboratorio Tik Tietokonegrafiikan seminaari Kevät 2003

Samankaltaiset tiedostot
HELSINKI UNIVERSITY OF TECHNOLOGY Telecommunications Software and Multimedia Laboratory Tik Tietokonegrafiikan seminaari Kevät 2003

Luento 10: Näkyvyystarkastelut ja varjot. Sisältö

Luento 6: Piilopinnat ja Näkyvyys

10.2. Säteenjäljitys ja radiositeettialgoritmi. Säteenjäljitys

Tilanhallintatekniikat

Luento 4: Näkyvyystarkastelut ja varjot

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on

RATKAISUT: 16. Peilit ja linssit

Seguinin lauta A: 11-19

Matematiikan tukikurssi

3 Raja-arvo ja jatkuvuus

6 GEOMETRISTA OPTIIKKAA

Potentially Visible Set (PVS)

Matematiikan tukikurssi

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

Nspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen

5. Grafiikkaliukuhihna: (1) geometriset operaatiot

PERCIFAL RAKENNETUN TILAN VISUAALINEN ARVIOINTI

Kenttäteoria. Viikko 10: Tasoaallon heijastuminen ja taittuminen

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Demo 1: Simplex-menetelmä

Pysähdy! Nyt on syytä miettiä tämä asia uudelleen. Kiinnitä huomiosi tähän. Hienoa, jatka samaan malliin. Innokylän arviointimittari

Tietokonegrafiikka. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2014

Yleistä vektoreista GeoGebralla

Visualisoinnin perusteet

KOLMIULOTTEISEN TILAN AKUSTIIKAN MALLINTAMINEN KAKSIULOTTEISIA AALTOJOHTOVERKKOJA KÄYTTÄEN

VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA SÄHKÖTEKNIIKKA. Lauri Karppi j SATE.2010 Dynaaminen kenttäteoria DIPOLIRYHMÄANTENNI.

Liite: Verkot. TKK (c) Ilkka Mellin (2004) 1

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

Luento 3: 3D katselu. Sisältö

10. Globaali valaistus

Hakusuosikit. Unifaun Online

Lego Mindstorms NXT. OPH oppimisympäristöjen kehittämishanke (C) 2012 Oppimiskeskus Innokas! All Rights Reserved 1

Excel syventävät harjoitukset

Matematiikan tukikurssi

MAB3 - Harjoitustehtävien ratkaisut:

Laskuharjoitus 9, tehtävä 6

Tietotekniikan valintakoe

Ryhmät. Pauliina Munter/Suvi Junes Tampereen yliopisto/ Tietohallinto 2014

Harjoitus 3 ( )

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

v 8 v 9 v 5 C v 3 v 4

Matematiikan tukikurssi

Ohjeita fysiikan ylioppilaskirjoituksiin

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

REUNAEHTOJEN TOTEUTUSTAPOJA AALTOJOHTOVERKOSSA

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Martingaalit ja informaatioprosessit

Liite 2: Verkot ja todennäköisyyslaskenta

Työ 2324B 4h. VALON KULKU AINEESSA

23 VALON POLARISAATIO 23.1 Johdanto Valon polarisointi ja polarisaation havaitseminen

KUVAN LIITTÄMINEN TOISEEN KUVAAN PHOTOSHOP ELEMENTS 6 - OHJELMALLA

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Älypuhelinverkkojen 5G. Otto Reinikainen & Hermanni Rautiainen

Luku 8. Aluekyselyt. 8.1 Summataulukko

MAB3 - Harjoitustehtävien ratkaisut:

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

Tee-se-itse.fi Ja saat sellaisen, kuin sattuu tulemaan!

7.4 PERUSPISTEIDEN SIJAINTI

KUVANKÄSITTELY THE GIMP FOR WINDOWS OHJELMASSA

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015

Scratch ohjeita. Perusteet

OHJEET LUE TÄMÄ AIVAN ENSIKSI!

Möbiuksen nauha. Välineet: paperisuikaleita, paperiristejä (liitteenä) lyijykynä, teippiä, sakset, värikyniä, liimaa ja värillistä paperia

AKUSTINEN SUUNNITTELU HUONETYYPIN PERUSTEELLA

MOODLE-OHJE: Liitetiedoston lisääminen ja päivittäminen

Algoritmit 2. Luento 13 Ti Timo Männikkö

1. Johdanto Todennäköisyysotanta Yksinkertainen satunnaisotanta Ositettu otanta Systemaattinen otanta...

Valon havaitseminen. Näkövirheet ja silmän sairaudet. Silmä Näkö ja optiikka. Taittuminen. Valo. Heijastuminen

Software product lines

Malliratkaisut Demot

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

Matematiikan tukikurssi, kurssikerta 3

Algoritmit 1. Luento 2 Ke Timo Männikkö

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori

Passiivista toistinantennia voidaan käyttää myös esimerkiksi WLAN-verkon laajentamiseen toiseen kerrokseen tai kantaman kasvattamiseen ulkona.

Pauliina Munter/Suvi Junes Tietohallinto/Opetusteknologiapalvelut 2015

T Luonnollisten kielten tilastollinen käsittely Vastaukset 11, ke , 12:15 14:00 Puheentunnistus ja kielimallien evaluointi Versio 1.

Vektoreita GeoGebrassa.

Kahden suoran leikkauspiste ja välinen kulma (suoraparvia)

Harjoitus 3 ( )

T Vuorovaikutteinen tietokonegrafiikka Tentti

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

Algoritmit 1. Luento 8 Ke Timo Männikkö

AUTOCAD-TULOSTUSOHJE. Tällä ohjeella selitetään Autocadin mittakaavatulostuksen perusasiat (mallin mittayksikkönä millimetrit)

Paretoratkaisujen visualisointi

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

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

Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f )

Matematiikan tukikurssi

3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta.

Puzzle-SM Loppukilpailu Oulu

Kuva 1. Valon polarisoituminen. P = polarisaattori, A = analysaattori (kierrettävä).

Kenguru 2017 Cadet (8. ja 9. luokka)

S09 04 Kohteiden tunnistaminen 3D datasta

Matematiikan tukikurssi

Avaruuslävistäjää etsimässä

l s, c p T = l v = l l s c p. Z L + Z 0

Kuvan etäisyys tässä tapauksessa on ns. polttoväli (focal length): ja kuvausyhtälö (6.3.2) voidaan kirjoittaa mukavaan muotoon + =. (6.3.

Tehtävä 3: Ongelmanratkaisutehtävä

Transkriptio:

HELSINGIN TEKNILLINEN KORKEAKOULU 4.5.2003 Tietoliikenneohjelmistojen ja Multimedian Laboratorio Tik-111.500 Tietokonegrafiikan seminaari Kevät 2003 Portaalit ja peilit Aki Sirelius 45374c

Portaalit ja peilit Aki Sirelius TKK, Tietoliikenneohjelmistojen ja Multimedian Laboratorio asireliu@cc.hut.fi Johdanto Nykyaikaiset arkkitehtuuriset mallinnukset monimutkaistuvat alati etenevän kehityksen mukana. Etenkin tietokonepeleissä yksityiskohtien määrä on kasvanut kovasti ja samalla niiden todenmukaiseen ulkoasuun on kiinnitetty entistä enemmän huomioita. Lisääntyneiden yksityiskohtien myötä on malleissa näkyvien objektien määrä huomattavasti kasvanut. Tämän johdosta ovat entistä useammat objektit toistensa takana, joko osittain tai kokonaan. Monet näkyvyysalgoritmit pyrkivätkin käyttämään hyväksi tätä tosiasiaa laskiessaan mitkä objektit piirretään ruudulle ja mitkä jätetään piirtämättä. Arkkitehtuuristen graafisten mallien monimutkaistuminen on samalla luonut uusia haasteita ja vaatimuksia niin ohjelmoijille, käytettäville tekniikoille kuin fyysisille tietokoneillekin. Tässä työssä keskitytään soluihin, portaaleihin sekä peileihin, jotka ovat yksi tapa jäsentää näitä alati monimutkaistuvia tietokonemalleja. Työssä tullaan selvittämään mihin soluja, portaaleja sekä peilejä käytetään, minkälaisiin sovelluksiin ne sopivat parhaiten, kuinka ne toimivat sekä kerrotaan mitä ongelmia niihin liittyy. 1 YLEISTÄ Arkkitehtuurisissa malleissa on ratkaisevaa, että pystytään määrittelemään potentiaaliset näkyvät objektit. Näiden objektien löytämiseksi on kehitetty menetelmä, jossa malli jaetaan sekä soluihin että portaaleihin. Termistä, potentiaaliset näkyvät objektit, käytetään tunnetummin lyhennettä PVS. PVS tulee englanninkielisistä sanoista: Potentially Visible Sets. Menetelmän tavoitteena on pystyä määrittelemään ne solut, jotka ovat katsojan nähtävissä renderöinti aikana. Tekniikka soveltuu parhaiten arkkitehtuurisiin malleihin, joissa on paljon toinen toisiaan peittäviä seiniä, sekä päällekkäisiä esineitä. Todellisuudessa katsojalle näkyvien objektien lukumäärä onkin huomattavasti pienempi, kuin teoriassa katsojalle näkyvien objektien lukumäärä. Hyväksikäyttämällä tätä tietoa saadaan piirrettävien objektien lukumäärää vähennettyä merkittävästi, mikä vaikuttaa suoraan sovelluksen suoritusnopeuteen. (ref. Luebke 2003) 1

2 PORTAALIT JA SOLUT Solulla tarkoitetaan moniulotteista tilaa, kun taas portaali on kaksiulotteinen kehys solun reunalla, joka yhdistää kaksi solua toisiinsa. Arkkitehtuurisessa mallissa solut voidaan siis ajatella rakennuksen yksittäisinä huoneina. Portaalit sijaitsevat yleisesti ottaen huoneen seinillä ja ne ilmentävät huoneen ovia tai ikkunoita. Solut ovat siis yhteydessä toiseen soluun ainoastaan portaalin kautta. (Luebke and Georges 1995) Edellä mainittua tilajakoa hyväksikäyttäen pystymme määrittelemään, mitkä solut ovat potentiaalisesti näkyvissä katsojalle (PVS). Näin ollen voimme välttää tuhlaamasta tietokoneen laskentatehoa niihin soluihin, jotka eivät kuitenkaan ole näkyvissä katsojalle. Mitkä solut sitten kuuluvat PVS:ään? Tietysti solu, jossa katsoja on kyseisellä hetkellä, on näkyvissä. Lisäksi kaikki ne naapurisolut, jotka jakavat portaalin katsojan solun kanssa, ovat potentiaalisesti näkyviä. Tämä johtuu siitä että katsojan on mahdollista nähdä naapurisoluihin portaalin kautta. Ongelma voidaankin rajata sanallisesti seuraavan kaltaiseksi: Mitkä ovat ne portaalit, jotka ovat näkyvissä sen solun portaalien kautta, jossa katsoja on? (Luebke and Georges 1995) Kuva 1 havainnollistaa hieman tilannetta. Kuvassa katsoja on solussa E ja kysymys kuuluukin: Mitkä ovat ne solut jotka ovat katsojan nähtävissä solusta E? (Katso kuva 1a) a) b) c) d) e) f) Kuva 1: Kuvasarja havainnollistaa, kuinka määritellään potentiaalisesti näkyvät solut. (Leubke 2002) 2

On aika selvää että katsoja näkee tietenkin se kyseisen solun, jossa hän itse on (Kuva 1b). Seuraavaksi edetään solun E portaalien kautta kaikkiin niihin viereisiin soluihin, jotka ovat yhteydessä E soluun (Katso kuva 1c). Näin ollen renderöidään viereiset solut D,F sekä G. Seuraavaksi käydään rekursiivisesti läpi solujen D,F sekä G viereiset solut, joilla on yhteinen portaali edellä mainittujen solujen kanssa. Tarkastelussa huomataan, että katsoja näkee solun A solun D portaalien läpi (Katso kuva 1d). Seuraavaksi huomataan, että solulla D on myös yhteinen portaali solun H kanssa ja tarkastellaan onko katsojalla näköyhteys soluun H (Katso kuva 1e). Koska katsojalla ei ole suoraa linjaa portaalien läpi solusta E soluun H, ei katsojalla ole myöskään näköyhteyttä soluun H (Katso kuva 1f). 2.1 Historiaa Ajatus arkkitehtuuristen mallien jakamisesta portaaleihin ja soluihin ei ole kovin uusi. Ensimmäiset tutkimukset tehtiin jo 1970-luvun alussa ja siitä lähtien tekniikkaa on kehitelty eteenpäin pikkuhiljaa. Seuraavissa kappaleissa kerrotaan historiaa kuinka tekniikka on kehittynyt ajan myötä. 2.1.1 C.B. Jones Ensimmäiset tutkimukset arkkitehtuuristen mallien jakamiseksi pienempiin osakokonaisuuksiin, teki Jones 1970-luvun alussa. Algoritmissaan hän jakoi mallinsa manuaalisesti konvekseihin soluihin sekä portaaleihin. Konveksilla solulla tarkoitetaan solua, jonka jokaisesta pisteestä on näköyhteys saman solun kaikkiin muihinkin pisteisiin. Lisäksi mallista tehdään yhteysdiagrammi, joka kertoo miten solut ovat yhteydessä toinen toisiinsa (Katso kuva 2). Yhteysdiagrammi muodostetaan siten, että jokainen mallin solu edustaa yhteysdiagrammin yhtä solmua. Solmut ovat yhdistetty yhteysdiagrammissa toisiinsa nuolten avulla ja jokainen nuoli diagrammissa edustaa yhtä portaalia alkuperäisessä mallissa. Kuva 2: Kuvassa näytetään kuinka yhteysdiagrammi muodostetaan. (Crowfis 2002) 3

Renderöinti lähtee liikkeelle kantasolusta jossa katsoja on, piirtämällä kyseisen solun kaikki seinät sekä portaalit. Kun solu on käsitelty, siirrytään käsittelemään rekursiivisesti portaalin vastapäätä olevaa solua. Mikäli kantasolun portaalista näkyvä alue leikkaa jonkin alasolun portaalin kanssa, on tuolloin myös alasolun portaalin viereinen solu renderöitävä. Muussa tapauksessa solu voidaan jättää huomioimatta. Näin edetään kunnes kaikki yhteysdiagrammin solut on käyty läpi. Lopuksi kantasolun portaalin kohdalle liitetään kuva, eräänlainen tekstuuri, siitä mitä on nähtävissä portaalin toisella puolella. (Luebke and Georges 1995) 2.1.2 Seth Teller Myöhemmissä tutkimuksissa on hylätty yritykset laskea graafisen mallin todellinen näkyvä informaatio. Tämän sijaan on keskitytty laskemaan ensin potentiaalisesti näkyvä informaatio. Sitten vasta Z-bufferin avulla määritellään tarkasti todelliset näkyvät alueet sekä objektit. John Airey oli ensimmäinen, joka kehitti monia erilaisia tapoja määritellä solujen välisiä näkyvyysmäärityksiä. (Luebke and Georges 1995) Hieman myöhemmin 1990-luvu alussa Teller kehitti asiaa eteenpäin ja löysi analyyttisen ratkaisun portaalien väliseen näkyvyysongelmaan. Ratkaisussaan Teller valitsee suurenjoukon mielivaltaisia pisteitä etukäteen. Seuraavaksi ratkaisussa käydään, jokainen piste läpi ja kullekin pisteelle lasketaan näkyvyys pisteestä soluun, sekä pisteestä objektiin. Renderöinti aikana käytetään hyväksi etukäteen luotua mallia ja sen mukaan päätetään mitkä portaalit ovat potentiaalisesti näkyvillä. (Luebke and Georges 1995) Kuvassa 3 on havainnollistettu kuinka pisteet on valittu etukäteen (Katso kuva 3). Kuvassa 3a on pisteet valittu riippumatta itse mallista. Pisteitä on enemmän ja ne antavat kohtuulliset mahdollisuudet laskennalle. Kuvassa 3b on pisteet valittu siten, että ne ovat sopivia tähän kyseiseen tilanteeseen. Tämä vaatii tietoa itse mallista, sen muodoista ja siitä kuinka katsoja yleensä lähestyy kyseistä portaalia. Esimerkiksi kuvan tapauksessa katsoja lähestyy portaalia yleensä jossain tietyssä kulmassa. Yleensä jälkimmäisenä kuvattu tapa, jossa pisteet valitaan riippuen senhetkisestä mallista, antavat paremman tuloksen. Syy tähän on se, että käyttämällä hyväksi tietoa mallin luonteesta, saadaan vähennettyä epätodennäköisten pisteiden lukumäärää ja voidaan tarkentaa otosta todennäköisemmillä pisteillä. Ajonaikana ainoastaan valitaan se piste, joka parhaiten vastaa kyseistä tilannetta. (Aliaga, Lastra 1997) Kuva 3: Esimerkki eri pisteistä, joille on laskettu etukäteen näkyvyysmäärityksiä. Kuvassa a) pisteet on valittu satunnaisesti, kuvassa b) pisteet on valittu siten, että ne vastaavat todennäköisiä katsontakulmia. (Aliaga and Lastra 1997) 4

Tellerin lähestymistapa on matemaattisesti todella raskas ja mallin rakentaminen etukäteen vaatii useiden tuntien prosessoinnin. Raskas esiprosessointi ei kuitenkaan sovellu kaikkiin interaktiivisiin sovelluksiin. Esimerkiksi rakennuksen arkkitehtuuria suunniteltaessa, on toivottavaa että seiniä voidaan poistaa, liikutella tai vaikkapa lisäillä mielivaltaisesti. Myös ovien tai ikkunoiden paikat tulevat muuttumaan useaan otteeseen, ennen kuin suunnitelma on valmis. Tellerin ratkaisu vaatisi jokaisen muutoksen jälkeen pitkän uudelleenlaskennan, jotta potentiaalisesti näkyvät kohteet saataisiin uudelleenmääriteltyä. (Luebke and Georges 1995) 2.2 Nopeampi Dynaaminen PVS evaluointi Ajan myötä tuli tarpeelliseksi kehitellä tapa, jonka avulla pystyttäisiin määrittämään potentiaalisesti näkyvät objektit dynaamisesti ajonaikana. Leubke ja Georges käyttivät uudenlaisen variaation Jonesin kehittelemästä menetelmästä. Leubken ja Georgesin menetelmässä jokaisen portaalin sisällä olevat verteksit projisoidaan kuvaruudun tasoon ja niiden ympärille rajataan kaksiulotteinen laatikko. Tätä rajattua laatikkoa kutsutaan valintalaatikoksi ja se kuvaa laajennettuna portaalin rajoja. Ne objektit, joiden projektio kuvaruuduntasoon jää kokonaan valintalaatikon ulkopuolelle eivät ole näkyvissä portaalin kautta ja voidaan turvallisesti jättää huomiotta. Näin jatketaan kunnes jokainen peräkkäinen portaali on käsitelty ja jokaisesta sisäkkäisestä portaalista on muodostettu oma valintalaatikko. (Luebke and Georges 1995) Kuvassa neljä havainnollistetaan hieman tilannetta (Katso kuva 4). Vasemmalla on kuvattu katsojan näkökenttä, sellaisena kuin se ruudulla näyttää. Oikealla on sama kuva ylhäältäpäin katsottuna. Pohjapiirustuksen korostetut alueet ovat niitä, jotka ovat katsojalle näkyvissä vasemmanpuoleisessa kuvassa. Mallissa on kolme portaalia, jotka ovat katsojan kanssa samassa solussa. Nämä ovat ovi vasemmalle, peili keskellä sekä ovi oikealla. Jokaisessa portaalissa on lisäksi seuraavan tason sisäkkäisiä portaaleita yksi tai useampi. Erikoisuutena voidaan mainita kuvan keskellä oleva peili. Se on portaali takaisin soluun, jossa katsoja on. Pohjapiirustuksessa peilin rajaama näkyvä alue on korostettu punaisin ääriviivoin. (Luebke and Georges 1995) Kuva 4: Kuvassa on seitsemän portaalia, joista yksi on peili ja loput ovat ovia tai muita huoneen rajoja. (Luebke and Georges 1995) 5

Läpikäynnissä jokaista objektia verrataan vuoron perään kuhunkin sisäkkäiseen valintalaatikkoon. Mikäli objekti leikkaa valintalaatikon rajoja, on objekti potentiaalisesti näkyvissä. Jotta objekti tulisi piirretyksi ruudulle, tulee objektin olla kaikkien niiden valintalaatikoiden sisäpuolella tai leikata valintalaatikon rajoja, jotka ovat objektin ja katsojan välissä. Koska objekti voi olla näkyvissä monen eri sisäkkäisen portaalin läpi, tulee jokainen renderöitävä objekti merkitä. Tällä vältetään renderöimästä yksittäistä objektia useampaan kertaan. (Luebke and Georges 1995) Toinen konsti on renderöidä jokainen objekti kerran jokaista sisäkkäistä portaalia kohti, mutta tämän jälkeen liitetään objekti yhteisvalintalaatikkoon. Tässä menetelmässä objektia saatetaan käydä tarkastelemassa useasti, mutta koska minkään portaalin reunat eivät leikkaa toinen toisiaan, ei mitään objektia renderöidä useimmin kuin kerran. (Luebke and Georges 1995) 3 ERILAISIA PORTAALEITA Portaalit voidaan jakaa fyysisiin portaaleihin sekä virtuaalisiin portaaleihin, riippuen niiden käyttötarkoituksesta. Fyysinen portaali yhdistää konkreettisesti kaksi eri solua toisiinsa ja sen läpi voi kulkea. Virtuaalinen portaali puolestaan yhdistää kaksi portaalia toisiinsa ja sitä käytetään yleensä erikoisefekteissä, kuten peileissä sekä teleporteissa. Suurin ero virtuaalisen sekä fyysisen portaalin välillä on se, että virtuaalinen portaali voi kääntää valonsäteitä, toisinkuin fyysinen portaali. (Aila, Miettinen 2001) Kuinka sitten toteutetaan kokonaan tai osittain heijastavat portaalit? Ensiksi renderöidään kaikki solun objektit. Tämän jälkeen kirjoitetaan heijastava pinta stencil bufferiin ja tyhjennetään z-bufferi, käyttämällä hyväksi stencil testiä. Seuraavaksi muutetaan katsonta kulmaa heijastavan pinnan toiselle puolelle ja renderöidään solu uudelleen. Tällä kertaa käytetään hyväksi stencil testiä. Lopuksi sekoitetaan heijastunut ja taittunut kuva keskenään. Näin syntynyt kuva on totuudenmukainen yhdistelmä sekä heijastuneesta, että mahdollisesta pinnan läpi tulleesta kuvasta. (Aila, Miettinen 2001) 3.1 Peilit Peilit ovat virtuaalisia portaaleita, ne heijastavat valoa, eikä niiden kautta ole tarkoitus kulkea. Peilit voidaan ajatella portaaleina takaisin alkuperäiseen soluun. Peili avaakin erilaisen kuvan solusta, riippuen katsonta kulmasta, siitä näkyykö peili peilikuvana vai kenties peilikuvan peilikuvana. Peileihin liittyy muutamia ongelmatilanteita. Malli saattaa olla muodostettu niin, että peilit ovat sopivasti vastakkain ja heijastavat toinen toisiaan. Tällöin syntyy tilanne, jossa portaalista on yhteys toiseen samankaltaiseen portaaliin, josta puolestaan yhteys takaisin edelliseen portaaliin. Kuvassa 5 esimerkki tilanteesta. Kuvaan on piirretty käytävä, jonka seinillä on viisi kappaletta peilejä. Lisäksi kuvaan on merkitty kameran paikka (Katso kuva 5). Kuvan tilanteessa käy niin, että peilistä numero yksi näkyy peili numero kaksi, josta puolestaan näkyy peili numero yksi. Tämänkaltaisten silmukoiden poistamiseksi on kehitetty erilaisia ratkaisumalleja. Seuraavassa käydään kaksi tavanomaista tapaa poistaa peilien aiheuttamia silmukoita. (Imagination Techniques Ltd (PowerVR) 1999) 6

Kuva 5: Kuvassa tilanteesta jossa peilit heijastavat toinen toisiaan. (Imagination Techniques Ltd (PowerVR) 1999) 3.1.1 Heijastuspuu Tämänlaisten silmukoiden välttämiseksi on kehitelty muutamia ratkaisumalleja. Eräs tapa on rakentaa heijastuspuu, josta käy ilmi mahdollisesti toinen toisiaan heijastavat peilit (katso Kuva 6). Kuvan 6 heijastuspuu on rakennettu pohjautuen kuvan 5 malliin. Heijastuspuusta käy ilmi kuinka kuvan 5 peilit heijastuvat toinen toisiinsa nähden. Heijastuspuun syvyyden määritys lähtee liikkeelle puun juuresta ja jokainen peili, tai peilin heijastus, lisää syvyyttä aina yhdellä. Toteutuksessa rajoitetaan puun syvyyttä siten, ettei turhan pitkiä silmukoita pääse syntymään. Esimerkissä kolmannen tason jälkeistä kuvaa ei enää näytetä. Heijastuspuusta käy hyvin ilmi kuinka peilit yksi ja kaksi heijastuvat toinen toisistaan. (Imagination Techniques Ltd (PowerVR) 1999) Kuva 6: Kuva heijastuspuusta, joka on rakennettu kuvan 5 pohjalta. (Imagination Techniques Ltd (PowerVR) 1999) 7

3.1.2 Heijastuskerroin (Importance Decay) Toinen ratkaisu on käyttää heijastuskerrointa (Importance Decay). Heijastuskertoimilla pyritään myös poistamaan rekursiota. Tekniikassa virtuaalisille portaaleille annetaan pienempi heijastuskerroin kuin fyysisille portaaleille. Fyysisen portaalin heijastuskerroin on 1.0, joka vastaa tilannetta jossa portaalin läpi tulevasta informaatiosta 100% vaikuttaa renderöitävän kuvan väreihin. Virtuaalisessa portaalissa vastaava heijastuskerroin voisi olla esimerkiksi 0,2. Kun kuva heijastuu virtuaalisesta portaalista niin heijastuneesta kuvasta ainoastaan 20% vaikuttaa lopullisesti renderöidyn kuvan väreihin. Mikäli kuva heijastuu toistamiseen pienenee vaikutus jällen 20% edellisestä heijastuksesta. Näin ollen ketjun pidetessä heijastuksen merkitys vähenee. Kun heijastuksen vaikutus on alittanut sopivan raja-arvon, niin heijastus jätetään kokonaan huomiotta. (Aila, Miettinen 2001) 3.2 Ikkunat Ikkunat ovat myös virtuaalisia portaaleita. Ne eroavat kuitenkin jossain määrin peileistä. Useimmiten ikkunat toimivat tavallisenkaltaisena portaalina, josta näkee viereiseen naapurisoluun. Toisaalta samanaikaisesti ikkuna voi toimia myös peilinä. Useinhan on niin, että ikkunasta näkee läpi, mutta samalla ikkuna heijastaa kuvan siitä solusta jossa ikkuna on. Kuvassa 7 on esimerkki tilanteesta. Kuvan portaali on ikkuna, joka sekä heijastaa, että taittaa valoa (katso Kuva 7). Katsoja on kuvan kohdassa VP 0. Kohtaan VP 0 muodostuva kuva on yhdistelmä sekä solusta itsestään, että ikkunan takana olevasta solusta. (Aila, Miettinen 2001) Kuva 7: Kuva ikkunasta, jossa on nähtävissä sekä heijastuvat säteet, että ikkunan läpi näkyvä toinen solu. (Aila, Miettinen 2001) C 1 on ikkunan heijastus, joka näkyy katsojalle. Heijastus C 1 yhdistetään taittuneeseen kuvaan C 2, joka muodostuu ikkunan läpi tulevasta solusta. Katsojan kohdan VP 0 sekä VP 1 :n välinen kulma kertoo kuinka paljon ikkunan läpi tuleva kuva taittuu ikkunan pinnasta. (Aila, Miettinen 2001) 8

4 YHTEENVETO Kuten aikaisemmin jo todettiin niin portaalit sekä solut soveltuvat erityisen hyvin erilaisiin arkkitehtuurisiin malleihin. Portaalit on helppo mieltää maalin oviksi, ikkunoiksi sekä peileiksi. Solut puolestaan vastaavat hyvin arkkitehtuurisen mallin huoneita. Lisäksi monien viimeaikaisten uutuuspelien toimintaympäristö kannustaa portaalien käyttöön. Vaikka idea sinänsä ei ole kovinkaan uusi, on kehitys ollut portaalien saralla kuitenkin aika vähäistä. Jo 1970-luvulla alkanut tutkimustyö on tuonut yllättävän vähän uusia ulottuvuuksia viimeisen kymmenen vuoden aikana. Myös ongelmia liittyy portaalien käyttöön. Automaattista menetelmää portaalien asettamiseen ei ole keksitty, joten ne joudutaankin asettamaan monissa sovelluksissa paikoilleen käsin. Portaalit eivät myöskään sovellu kaikkiin tilanteisiin. Esimerkiksi suurien avarien tilojen mallintamiseen on olemassa monia muita parempia ratkaisuja. Tämä johtuu osin siitä ettei portaaleille ole sopivia luonnollisia sijoituspaikkoja, mallinnettaessa esimerkiksi puistoa tai suurta hallia. Ongelmana on myös se että portaaleja tukevia kaupallisia työkaluja on huonosti saatavilla. Tämä pakottaa yritykset rakentamaan omat työkalunsa itse tätä tarkoitusta varten. Tämä on omiaan lisäämään kustannuksia ja vähentämään innostusta portaalien käyttöön. (Aila, Miettinen 2001) 9

LÄHTEET David P. Luebke and Chris Georges 1995. Portals and Mirrors: Simple, Fast Evaluation of Potentially Visible Sets, Proceedings of Symposium on Interactive 3D Graphics, 105-106, 1995. David Luebke, Chris Georges 2001. Portals and Mirrors: Simple, Fast Evaluation of Potentially Visible Sets. http://cggmwww.csie.nctu.edu.tw/seminar/culling/portal/portals%20and%20mirrors.ppt David Leubke 2002. Visibility Culling. http://www.cs.virginia.edu/~gfx/courses/2002/realtime.fall.02/visibility1.ppt Roger Crowfis 2002. Culling Techniques. http://www.cis.ohiostate.edu/~crawfis/cis781/slides/portals.ppt Imagination Techniques Ltd (PowerVR) 1999. Portals, Multiple: Rendering of multiple portals. Timo Aila, Ville Miettinen 2001. dpvs Reference Manual Version 2.10 Oct 26 2001. http://www.hybrid.fi/download/dpvs_online.pdf Daniel G. Aliaga, Anselmo A. Lastra 1997. Architectural Walkthroughs Using Portal Textures. http://www.cis.ohio-state.edu/~crawfis/cis781/slides/portals.ppt 10