1 Loppuraportti Virtuaali-Frami, CAVE-ohjelmisto Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu Versio 1.0 15.1.2006
2 Sisällys Tiivistelmä... 3 1 Johdanto... 4 1.1 Dokumentin tarkoitus... 4 1.2 Käytetyt termit ja lyhenteet... 4 2 Lähtökohdat... 5 3 Mikä epäonnistui... 6 4 Mikä onnistui... 7 5 Loppusanat... 8
3 Tiivistelmä Tämä dokumentti kuvaa Virtuaali-Frami -projektissa toteutetun CAVEohjelmiston lähtökohtia, asioita jotka epäonnistuivat ja onnistuivat. Suurimpia ongelmakohtia CAVE-ohjelmiston toteuttamisessa oli epäselkeät ja vaillinaisesti määritellyt vaatimukset ja ominaisuudet sekä projektin aikana ilmennyt ongelma kolmannen osapuolen ohjelmointikirjastossa. Onnistumisia oli ohjelmiston toteuttaminen lyhyessä aikataulussa ja marraskuussa määriteltyjen vaatimusten toteuttaminen.
4 1 Johdanto 1.1 Dokumentin tarkoitus Tämän dokumentin tarkoitus on kuvailla Virtuaali-Frami -projektissa toteutettua CAVE-ohjelmistoa ja mikä ohjelmiston toteutuksessa onnistui ja mikä ei. Dokumentti kuvaa aluksi lähtökohdat ja tilanteen jossa tulin projektiin mukaan. Tämän jälkeen käydään läpi asiat, jotka aiheuttivat ongelmia ja jotka eivät menneet kohdalleen. Osiossa neljä, Mikä onnistui, kuvataan asiat jotka menivät kohdalleen. Lopuksi esitetään havaintoja ja parannusehdotuksia tähän ja seuraaviin projekteihin ja mitä tehdyistä virheistä voidaan oppia. 1.2 Käytetyt termit ja lyhenteet CAVE CAVE TM Automatic Virtual Environment on kuutionmuotoinen tila, jossa on kolme seinää, katto ja lattia. Yhdelle tai useammalle seinälle heijastetaan projektoreiden avulla stereokuva. OpenGL Performer Silicon Graphicsin toteuttama 3D-kirjasto. OpenInventor TGS:n toteuttama 3D-ohjelmointikirjasto. VRML Virtual Reality Modeling Language. 90- luvulla kehitetty kuvauskieli virtuaalisten 3D-maailmojen luomiseksi.
5 2 Lähtökohdat Allekirjoittanut tuli mukaan projektiin marraskuun alussa. Projekti varsinaisesti oli alkanut jo keväällä ja silloin käsityksenä oli, että pääpaino on CAVE-ohjelmistolla, mutta myöhemmin nämä painotteet muuttuivat. Ensimmäinen versio CAVE-sovelluksesta käytti OpenInventor - grafiikkakirjastoa VRML-mallien esittämiseen CAVE-tilassa. Tämä ohjelmisto oli marraskuun alussa hyvin keskeneräinen. Ohjelmiston vaatimuksia ei ollut määritelty kuin hyvin summittaisesti. Vaatimus- tai määrittelydokumentteja ei ollut olemassa ja vei huomattavasti aikaa tutustua itse ohjelmiston rakenteeseen sekä itse OpenInventor-kirjastoon. Ohjelmisto oli hyvin epävakaa CAVE-ohjelmiston kohdealustalla, Silicon Graphicsin Onyx4 -tietokoneella. Tämä johtui ensisijaisesti itse OpenInventor-kirjastosta ja sen ongelmista. Näiden ongelmien johdosta käytiin hyvin aktiivista sähköpostikeskustelua kirjaston valmistajan kanssa, mutta ongelmat eivät selvinneet. Marraskuussa itse projektin kohdevaatimukset muuttuivat, jolloin pääpaino siirtyi CAVE-ohjelmistolta WWW-sivujen kautta esitettäviin VRMLmalleihin. CAVE-ohjelmistoa ei kokonaan hylätty, mutta se ei enää ollut tärkein vaatimuksista. Marraskuussa ehdotin Tapio Hellmannille CAVE-ohjelmiston toteuttamista Silicon Graphicsin OpenGL Performer -kirjaston avulla. Kyseistä ohjelmointikirjastoa on käytetty mm. Virtuaali-Seinäjoki -projektin parissa ja se on osoittautunut CAVE-ympäristössä toimivaksi vaihtoehdoksi. Ohjelmistolle määriteltiin tarvittavat ominaisuudet: useiden mallien näyttäminen ja niiden välillä navigointi sekä kävely- ja lentotila.
6 3 Mikä epäonnistui Tässä kappaleessa käydään läpi, mitä ohjelmiston toteuttamisessa meni vikaan. Ongelmia aiheuttivat: vaatimukset. Ohjelmistolle ei ollut asetettu selkeitä tavoitteita ja vaatimuksia. Epäselvää oli, että mitä ohjelmiston täytyy tehdä ja miten. dokumentointi. Ohjelmistosta ei ollut olemassa paperilla mitään asiaan liittyvää. Vaikka suunnittelu ja dokumentointi on hyvin tärkeää, pienissä ympäristöissä ja etenkin kun ohjelmistoa toteuttaa yksi henkilö tästä voi joustaa. Tällä hetkellä ainut dokumentaatio on ohjelmiston 3D-maailman määrittelevän tiedostomuodon kuvaus. toimimaton ohjelmointikirjasto. Ensimmäinen CAVEohjelmistoversio käytti OpenInventor-ohjelmointikirjastoa VRMLmallien näyttämiseen CAVE-tilassa. Kyseinen ohjelmointikirjasto toimii erinomaisesti Microsoft Windows -ympäristössä, mutta toimivuus kohdealustalla osoittautui puutteelliseksi. aikataulu ja suunnittelu. CAVE-ohjelmistojen toteuttaminen on hyvin monimutkaista. Tätä varten on kehitetty lukuisia ohjelmistokirjastoja, jotka helpottavat työtä. Tullessani mukaan projektiin aikataulu oli hyvin rajattu ja vaikka pystyin hyödyntämään Virtuaali-Seinäjoki -projektin lähdekoodia, jouduin mitoittamaan ominaisuudet käytettävän ajan mukaan. Tästä johtuen ohjelma on hyvin pelkistetty. 3D-mallien pääkäyttötarkoitus on WWW-selaimen kautta ja näiden sovittaminen näyttäväksi kokonaisuudeksi CAVE-tilassa on hankalaa. Tämä vaikuttaa ensisijaisesti mallien ulkoasuun ja siten myös koko projektin lopputulokseen.
7 4 Mikä onnistui Tässä kappaleessa kuvataan asioita, joita CAVE-ohjelmiston toteuttamisessa voidaan katsoa onnistuneiksi. Onnistumisia oli: rajatun aikamäärän puitteissa toimiminen. Aikaa käytettävissä projektille oli muutama kuukausi ja näissä puitteissa pääominaisuuksien toteuttaminen onnistui. määriteltyjen ominaisuuksien toteuttaminen. Kaikki määritellyt ominaisuudet sai toteutettua. Nämä ominaisuudet olivat: useiden eri VRML-mallien yhdistäminen yhdeksi kokonaisuudeksi, näiden mallien välillä navigointi, lento- ja kävelytila sekä yksinkertainen törmäystarkistus.
8 5 Loppusanat Virtuaali-Frami -projekti on tällä hetkellä päättynyt. En ollut mukana toteuttamassa projektia alusta alkaen, vaan tulin projektin loppuvaiheilla mukaan. Suurimmat ongelmakohdat ohjelmiston toteuttamisessa oli huonosti määritellyt vaatimukset, puuttuvat dokumentaatio sekä ongelma käytettävän ohjelmistokirjaston kanssa. Tietoa ongelmista ohjelmistokirjaston kanssa kohdealustalla ei ollut etukäteen tietoa. Mielestäni tämä projekti on ollut hyvin opettavainen. Pienissä ohjelmistoissa tai kun ohjelmiston kehittäjiä on vain muutama, dokumentaation merkitys ei ole niin suuri kuin laajoissa projekteissa tai projekteissa joita on tekemässä useita henkilöitä. Kuitenkin, projektista riippumatta, vaatimusten ja ominaisuuksien määrittely on hyvin tärkeää ja se on mielestäni ollut suurin ongelmakohta.