Tervetuloa Ainolan yläkertaan – näin rakennettiin Virtuaali-Ainola

5.02.2025 | Ainola, Blogi

Ainolan yläkerta avaa ovensa yleisölle – virtuaalisesti! XR-tuottaja Jani Ylinen kertoo, miten rakennettiin Virtuaali-Ainola.

Millaisessa huoneessa Jean Sibelius työskenteli – entä millainen on Aino Sibeliuksen kampauspöytä? Ainolan yläkerta on paloturvallisuusyistä suljettu yleisöltä, mutta tämä ja monta muuta yksityiskohtaa selviää nyt, kun tilat on mallinnettu virtuaalisesti.

Kun Ainola lähti mukaan Virtuaalimuseo Musteeseen oli selvää, että virtuaalisesti kannatti toteuttaa osa yläkerran tiloista: Jean Sibeliuksen työtila ja Aino Sibeliuksen makuuhuone. Tässä artikkelissa XR-tuottajamme Jani Ylinen kertoo, kuinka Virtuaali-Ainola rakennettiin teknisesti.

Fotogrammetria

Virtuaali-Ainola päätettiin toteuttaa fotogrammetria-menetelmällä; kun mallinnettu tila perustuu valokuviin, lopputulos on vaikuttavan fotorealistinen. Menetelmänä fotogrammetria on ollut olemassa jo 1980-luvulta, mutta VR-tuotannoissa sitä on päästy toden teolla käyttämään vasta tällä vuosikymmenellä. Muutaman vuoden sisään se on ottanut suuria harppauksia, mutta jokainen toteuttaja on edelleen pioneeri ja eri vaiheet toimivat jokseenkin yrityksen ja erehdyksen periaatteella.

Tälle toteutukselle oltiin onneksi varattu aikaa, jolloin prosessin päätteeksi syntyi tila, jossa pystyi kurkistamaan Sibeliuksen kirjahyllyyn, työpöydän alle ja sohvan taakse – jopa siellä piileksivät sähköjohdot on mallinnettu huolella ja rakkaudella.

Kokemus toimii parhaiten VR-laseilla, sillä tilassa pääsee liikkumaan ja kyykkimään luonnollisesti. Koko kansalle on saatavilla yksinkertaisempi demo, joka toimii tietokoneen selaimella.

Tässä artikkelissa avaan rakennusprosessin vaiheita. Periaatteessa jokainen pystyy tekemään oman mallinnuksen haluamastaan tilasta, mutta käytännössä tämä vaatii paljon aikaa ja resursseja – sekä hyviä hermoja, jotka kestävät hiiren kliksuttelua. Myös osa ohjelmistoista on hintavia, joskin tässä mainituille ohjelmistoille on olemassa ilmaisia vaihtoehtoja.

3D-skannaus

Kun puhutaan skannauksesta, mieleen tulevat valtavat kopiokoneet tai erikoistuneet lukijat. Tässä tapauksessa skannaus on kuitenkin ihan valokuvausta.

Otin tiloista kuvat tavallisella järjestelmäkameralla jalustaa käyttäen. Tilanteessa voi käyttää useamman kameran rigiä, mutta kaikki kuvat tulee ottaa samoilla asetuksilla – tässä tapauksessa 24 mm objektiivilla F11-aukolla, mikä mahdollistaa syväterävyyden. Parhaan laadun takaamiseksi kuvaus kannattaa hoitaa pilvisenä päivänä, jolloin kontrasti ja varjot ovat mahdollisimman tasaiset.

Räps, askel sivuun, räps, askel sivuun. Kuvien kuuluu kattaa koko tila niin, että viereiset kuvat ovat 30% päällekkäin, jotta myöhemmässä vaiheessa ohjelma osaa parsia ne yhteen. Kierros toistetaan myös kolme kertaa: polven, rinnan ja päälaen korkeudelta. Katveessa tai piilossa olevat pinnat, kuten pöydän alaosa tai seinää vasten olevan sohvan selkänoja tulee kuvata erikseen. Tilassa ei saa myöskään olla ihmisiä, eläimiä tai muita liikkuvia asioita, joita ohjelma ei pysty myöhemmin yhdistelemään yhdeksi pinnaksi.

Skannasin Ainolan yläkerran kahdessa erässä. Ensimmäisellä kierroksella pienemmästä työhuoneesta tuli 1700 kuvaa ja tämän jälkeen makuuhuoneesta 2500 räpsyä – yhteensä siis noin 4500 kuvaa.

Näkymä Adobe Lightroom -ohjelmasta.

Ainolan valokuvat Adobe Lightroom -ohjelmassa.

Kuvankäsittely

Koko prosessiin kuuluu kaksi erää kuvankäsittelyä, jotka voi toteuttaa esimerkiksi Adobe Lightoomissa.

Ensin tuotetaan rekonstruktioon tarvittavat kuvat. Ne käsitellään siten, että niistä tulee tasaisempia: huippuvalot lasketaan alas ja varjojen valomäärää lisätään. Näin tuodaan esiin yksityiskohtia, joita ohjelmiston on myöhemmin helpompi lukea.

Ihmissilmään nämä kuvat näyttävät omituisen latteilta. Siksi tekstuureita varten luodaan toiset versiot, jotka näyttävät mahdollisimman luonnollisilta.

Kalibraatiokortti Ainolassa.

Kalibraatiokortti Ainolan työhuoneessa.

Rekonstruktio

Seuraava vaihe on tilojen rekonstruktio eli 3D-mallin luominen. Tähän tarkoitukseen käytin Reality Capture -ohjelman ilmaista versiota.

Rekonstruktioprosessi ei ole kovin monimutkainen, mutta jos käytössä ei ole tehokasta tietokonetta, se voi olla todella hidas. Itse ohjelmisto on onneksi hyvin vakaa, joten rekonstruktio valmistuu kyllä vanhemmallakin raudalla – jos vaan jaksaa odotella. Prosessi on pitkälti automaattinen, mutta itse teen sen aina vaiheittain, jotta voin vaikuttaa lopputulokseen.

1. Kameroiden kohdistus

Nyt on aika syöttää kuvasetti ohjelmaan! Reality Capture alkaa raksuttaa ja katsoa kuvia yksi kerrallaan.

Miten tämä prosessi toimii? En tiedä, mutta taikuudelta se tuntuu! Algoritmi siis tunnistaa jokaisesta kuvasta piirteitä (maksimissaan 40 tuhatta per kuva). Kun kaikki kuvat on käyty läpi, se alkaa vertailla niitä keskenään hyödyntäen aiemmin mainittua 30% päällekkäisyyttä. Piirteitä yhdistelemällä syntyy solmukohtia ja lopuksi saadaan aikaan karkea 3D-malli.

Tässä vaiheessa ohjelma tietää hyvin tarkasti, missä kohtaa kamerat ovat olleet sekä sen, kuinka moni kuva saatiin kohdistumaan. Noin 90% otoksista kohdistuu automaattisesti, mutta joissain tapauksissa ohjelmalle täytyy erikseen osoittaa, miten tietyt kuvat liittyvät toisiinsa.

Ruutukaappaus Reality Capture -ohjelmasta. Kameroiden sijainnit Virtuaali-Ainolassa.

Kameroiden kohdistus Virtuaali-Ainolassa Reality Capture -ohjelmassa.

Kuvakaappaus Reality Capture -mallista, jossa näkyy alkuperäisten valokuvien sijainnit.

Kohdistetut valokuvat Reality Capture -ohjelmassa.

2. 3D-rekonstruktio

Tässä vaiheessa syntyy 3D-mallin rekonstruktio, jonka Reality Capture tuottaa itsekseen. Ohjelman sisällä pystyy toteuttamaan myös raakaa optimointia.

Reality Capturen tuottama malli muodostuu polygoneista eli mallin pinnan muodostavista kolmioista. Polygon-verkko on usein aivan liian tiheä – polygoneja saattaa olla satoja miljoonia ellei miljardeja. Tällainen malli on liian raskas jatkotyöskentelyyn.

Työtila ennen ja jälkeen optimoinnin.

Tässä vaiheessa päätetään, kuinka tarkka mallin halutaan olevan. Itse käytän yleensä työskentelytarkkuutena 1-5 miljoonan polygonin mallia.

Mikäli mallia ei haluta optimoida erillisessä ohjelmassa, tässä vaiheessa voi jatkaa teksturointiin suoraan Reality Capturella.

3. Optimointi

Virtuaali-Ainolan tapauksessa optimointi oli pakko toteuttaa. 3D-mallin tulee pyöriä vähintään Meta Quest 2 -laseissa, joissa on melko vähän prosessointivoimaa. Siksi päätin tehdä Virtuaali-Ainolan optimoinnin käsin. Tällöin tilasta voi myös siivota ihmeellisyydet, ja lopputulos on huomattavasti laadukkaampi kuin mihin Reality Capture pystyy.

Siirsin siis työskentelymallin erilliseen 3D-ohjelmistoon, Blenderiin, ja lähdin muovaamaan tilalle uutta, yksinkertaisempaa mallia. Siellä polygonien määrä karisi urakalla – alkuperäisestä 10 miljoonasta 700 tuhanteen eli yli 10 kertaa vähemmän.

Makuuhuone ennen optimointia ja sen jälkeen.

Lisäksi kävin läpi sellaiset pinnat, joita kumpikaan ohjelma ei automaattisesti ymmärrä. Tällaisia ovat peilit ja ikkunat, jotka täytyy leikata auki, sekä kaikenlaiset pienet kolot. Osana suurempaa kokonaisuutta aivan jokaista rottinkikalusteen säiettä ei kannata nyhvätä.

Yhden Ainolan huoneen optimointiin yhden ihmisen voimin meni noin 4 viikkoa käsityötä. Erilaisessa tilassa ja eri kokoonpanolla tämä aika voi vaihdella huomattavasti.

4. Teksturointi

Kun 3D-mallissa on järkevä määrä kolmioita, on aika projisoida siihen tekstuurit, joihin käytetään kuvankäsittelyvaiheessa tehtyjä toisia valokuvia. Tekstuurina käytetty UV-kartta vaatii taitoa. Kuvittele vaikka karttapallo, joka on avattu 2D-tasoksi – kuuluisimmassa Mercatorin projektiossa päiväntasaajan maat ovat kiertyneet pieniksi ja pohjoisen ja etelän maat todellista suuremmiksi.

UV-kartta Blender-ohjelman sisällä.

Yksi Ainolan työhuoneen UV-kartoista.

Yhden tällaisen tekstuurin maksimikoko on 8192×8192 pikseliä. Tämä kuulostaa isolta – ja sitä se onkin. Mallin tiedostokoko paisuu, sillä tämän kokoisessa projektissa tekstuureita tarvitaan useampi. Yksittäinen huone kaipaa arviolta 6:a tekstuuria – tai enemmän, kun huoneessa on kalusteita, joilla on oma pintansa. Virtuaali-Ainolassa käytin työhuoneessa 8:aa ja makuuhuoneessa 9:ää tekstuuria. Tässä vaiheessa täytyy käyttää omaa kokemusta ja hyviä arvauksia, jotta lopputulos on miellyttävä, mutta pyörii vielä erilaisilla laitteistoilla.

Kun tekstuurit ovat valmiit, ne projisoidaan 3D-mallin päälle Reality Capture -ohjelmassa.

Lisäykset pelimoottorissa

Nyt malli on valmis ja se voidaan tuoda pelimoottoriin – tässä tapauksessa Unityyn – ja siitä edelleen selain-, tietokone- tai VR-silmikkoversioiksi. Virtuaali-Ainolan tapauksessa pelimoottorissa tehtiin vielä muutamia lisäyksiä.

Pelialueen rajaaminen

Tällaisessa projektissa pelaajaa ei kannata päästää lentämään vapaasti tiloissa. Erityisesti VR-versiossa “epäluonnollinen” liikkuminen voi aiheuttaa pahoinvointia. Unityssa pelialue rajataan niin, ettei pelaaja pääse kulkemaan seinän, lattian tai katon läpi. Myös esineisiin luodaan törmäyspinnat (collision), jotka pysäyttävät liikkeen realistisesti.

Ulkotilojen yhdistäminen

Sisätiloja skannatessa ikkunoista näkyvät maisemat eivät rekisteröidy kunnolla ja rekonstruktiovaiheessa jäljelle jää rikkinäisen näköisiä valkoisia pintoja. Optimointivaiheessa ikkunaruudut “leikataan auki” ja tilalle mallinnetaan läpinäkyvä (joskin realistisen pölyiseksi teksturoitu) lasi. Ollakseen aidon näköinen, malli tarvitsee erillisen kuvan tai 3D-mallin jäljentämään ulkomaailmaa. Koska ulkotilojen skannaaminen on raskasta, tässä projektissa päädyimme käyttämään 360-valokuvaa, joka esittää ikkunasta näkyvää maailmaa tarpeeksi uskottavasti.

Makuuhuoneen ikkunan ensimmäinen sekä “auki leikattu” versio.

Ainolan 3D-malli ja ympärillä 360-valokuva.

Dollhouse-näkymä 360° valokuvan ympäröimänä.

Peilipinnat

Voimakkaasti heijastavien pintojen rekonstruktio ei onnistu käytännössä koskaan. Tämän vuoksi esimerkiksi Ainon peilipöydän lasi “leikattiin irti” ja tilalle tehtiin erillinen 3D-malli, joka esittää peilipintaa. Se on teksturoitu näyttämään vanhalta ja hieman vääristyneeltä.

On eri tekniikoita saada tämä 3D-malli käyttäytymään oikean peilin tavoin. Uudemmissa peleissä käytetään reaaliaikaista ray tracing -menetelmää, joka heijastaa tilat realistisesti. Useiden VR-lasien ja mobiililaitteiden tehot eivät tähän kuitenkaan riitä. Siksi Virtuaali-Ainolassa käytetään kevyempää reflection probe -menetelmää, jossa peilipinta näyttää käänteisenä Unityn ottamaa 360-kuvaa ympäristöstä.

Kun pohjatyö on tehty kunnolla, erilaisia toiminnallisuuksia voi lisätä loputtomiin. Tällä erää Virtuaali-Ainola on kuitenkin valmis. Tervetuloa tutustumaan Ainolan yläkerran tiloihin demoversiona!

Tämän kategorian viimeisimmät