Ohjelmistotekniikan seminaarityö
Jyväskylässä 22.10.1996
Samuli Pekkola pejysa@cc.jyu.fi
Yhteenveto
Työntekijöiden siirtyessä etätyöskentelyyn ihmisten
välisen kommunikoinnin määrä ja laatu uhkaavat vähetä ja
heiketä. Kasvoista kasvoihin tapahtuvaa kommunikointia ei tapahdu enää
yhtä suuressa määrin kuin aikaisemmin, eikä puhelin voi tarjota
riittävän monimuotoisia yhteydenmuodostusmahdollisuuksia. Tarvitaan korvaavia
välineitä kuten kuvapuhelimet, videoneuvottelut tai virtuaalitodellisuus.
Kuvapuhelimien ja videoneuvotteluvälineiden tarjoamat palvelut ovat rajalliset.
Kuvapuhelien siirtokapasiteetti on suhteellisen pieni ja monen käyttäjän palaverit
ovat teknisesti vaikeita järjestää. Videoneuvotteluissa em. ongelmat on ratkaistu,
mutta uusia on ilmaantunut kuten tilojen tarve ja tekniikan nopean kehittymisen aiheuttama
välineiden vanheneminen. Virtuaalitodellisuudessa käyttäjät luovat
virtuaalihahmon itsestään ja liittyvät tietokoneella toteutettuun
yhteisöön, jossa kommunikointi muiden hahmojen välillä on mahdollista.
Virtuaalitodellisuustyökalujen kehittyminen on vielä toistaiseksi
alkutekijöissään, mutta sitä alaa tutkitaan erittäin paljon.
Tulevaisuudessa kuka tahansa voi ottaa virtuaalihahmon ja liittyä virtuaalitodellisuuteen omalta
tietokoneeltaan. Mahdollisina mallinnusstandardeina nykyisen HTML:n (HyperText Markup
Language) sijaan voi olla esimerkiksi VRML (Virtual Reality Modelling Language) tai joku
vielä ennalta tuntematon kieli. Selainten kehitys jatkuu ennallaan ja nykyiset selaimet saavat
uusia kilpailijoita, joskin ne kehittyvät itsekin. Yksi mahdollinen kilpailija on tässä
tekstissä lähemmin tarkasteltava Dive.
Grafiikan yleistyminen tuo tullessaan uusia mahdollisuuksia kuvata maailmaa.
Kolmiulotteinen mallinnus (CAD yms.) on jo arkipäivää, samoin kuin esim.
lentäjien koulutuksessa käytettävät simulaattoritkin. Yhteistä
näille on rajoitettu yhtäaikaisten käyttäjien lukumäärä ja
tiedon pysyminen paikallisessa koneessa. Ainoastaan uusimmissa peleissä (Doom yms.) voidaan
ajatella vastustajan olevan kauempanakin. Niissä on kuitenkin omat puutteensa, sillä
ainoastaan rajoitettu käyttäjäkunta voi olla yhteydessä toisiinsa
yhtäaikaa.
Kolmiulotteisuus tuo tullessaan erilaisia mahdollisia multimediaratkaisuja jo edellä
mainittujen lisäksi. Erilaiset koulutusmahdollisuudet lisääntyvät, koska
jokainen opiskelija voi käännellä kappaletta haluamallaan tavalla ja tutkia
sitä eri puolilta. Enää ei tarvitse tyytyä siihen, mitä ohjelman
tekijä on ajatellut. Voidaan päästä jopa siihen, että koulutus tapahtuu
verkossa. Oppilaat ottavat yhteyden omalta koneeltaan palvelimeen, johon myös opettaja
kirjoittautuu opettaen ja vastaillen oppilaiden esittämiin kysymyksiin. Tällöin
voidaan puhua yksinkertaisesta virtuaalitodellisuudesta.
Monet ihmiset käsittävät virtuaalitodellisuuden tutkimisen
datakypärien, datahanskojen tai erikoispukujen kehittämisenä. Samalla he
unohtavat erään itsestäänselvän heidän
työpöydällään olevan kehitysympäristön, nimittäin
tietokoneen. Nykyiset datakypärät ja -hansikkaat ovat vielä
kömpelöitä ja hankalia käyttää ja niiden on havaittu aiheuttavat
pitkään käytettyinä terveydellisiä haittoja kuten esimerkiksi huimausta
ja päänsärkyä. Käyttäjän ruumista lähellä
olevilla laitteilla tai puvuilla on kuitenkin eräitä etuja tietokoneen
näyttöön ja kaiuttimiin verrattuna. Nimittäin aisteja voidaan stimuloida
paljon tarkemmin ja herkemmin ärsykkein. Voidaan myös ärsyttää
aisteja, joita ei muuten pystyttäisi, kuten esimerkiksi tuntoaistia. Tulevaisuudessa teknologian
kehittyessä kypärät tulevat pienentymään ja
keventymään, joten ehkäpä sitten ne saavuttavat oman
käyttäjäkuntansa aivan kuten erikoispuvutkin. Niillä tulee olemaan omat
erikoiset käyttösovelluksensa. Suuri yleisö ei ehkä koskaan
pääse kokeilemaan, miltä virtuaalitodellisuus voi näyttää ja
tuntua. Tietenkin peli- ja viihdeteollisuus ovat toista mieltä.
Virtuaalisen maailman tekeminen tietokoneen ruudulle on jo huomattavasti helpompaa.
Mahdollisuudet toteuttaa erilaisia ympäristöjä ovat samat kuin puvuillakin,
ainoastaan aistiärsykkeet eivät ole niin voimakkaita ulkoisten
häiriötekijöiden vaimentaessa "aistinautintoa". Lentokonesimulaattorit ja
eräät pelit voidaan ymmärtää jonkinlaisina pienimuotoisina
virtuaalimaailmoina, mutta niissä yhtäaikaisten käyttäjien
lukumäärä on rajoittunut muutamaan. Haluttaessa näyttää
tehtyä esitystä useammalle käyttäjälle yhtäaikaa tai
pitää suurempaa kokousta joudutaan pulaan. Nykyiset pc-tietokoneet eivät pysty
laskemaan vaadittavaa grafiikkaa tarpeeksi nopeasti sulavan esityksen aikaansaamiseksi, eikä
nykyisen verkon siirtokykykään ole riittävä siirtämään
tietoa tarpeeksi nopeasti paikasta toiseen. Käytettäessä yhtä keskuspalvelinta
kuormitetaan palvelimesta uloslähtevää linjaa kohtuuttomasti, joten
keskuskoneajattelusta joudutaan siirtymään pois.
Nyky-yhteiskunnassa taloudellinen ajattelu valtaa aina vain enemmän ja
enemmän tilaa. Matkustaminen kokouksiin vie kallista työaikaa, eikä näin
ollen ole kannattavaa. Aikaa työhön saadaan lisää
järjestämällä kokoukset puhelimen ja videon välityksellä.
Virtuaalitodellisuudessa tapahtuvat kokoukset ovat yksi mahdollisuus. Ihmiset ilmestyvät
haluttuun virtuaalipaikkaan oikeaan aikaan, eikä heidän edes ole tarvinnut poistua omasta
työhuoneestaan. Näin ollen kaikki tarvittava materiaali on jatkuvasti saatavilla.
Sähköisessä muodossa oleva tieto voidaan välittää kaikille
osallistujille, tai paperilla olevan tekstin henkilö voi lukea, kirjoittaa tai kuvata videolla osia
siitä muille osallistujille. Žäni välittyy kaikille osallistujille ja virtuaalihahmo voi
viestiä erilaisia tunteita (iloa, surua, kärsimättömyyttä, jne.)
järjestelmän tekijän toteuttamishalujen mukaan.
Tietokantojen visualisointi ja tutkiminen saa uusia ulottuvuuksia. Virtuaali-ihmiset
kiertelevät pylväsdiagrammien joukossa ja keskustelevat keskenään
tietokannan sisällöstä. Samasta alasta kiinnostuneet toisilleen tuntemattomat
ihmiset ympäri maailman saadaan yhteen. Uutta tietokantaa voidaan kerätä
siitä, mitä tietoja kukin on tutkinut. Uusi tietokannan tarkastelija voi vaihtaa
mielipiteitään virtuaalimaailmasta jo poistuneiden henkilöiden kesken.
Esimerkkinä tälläisista ohjelmista voidaan mainita InternetFoyer ja Tecate.
Tällä hetkellä erilaisia virtuaaliympäristöjä
kehitetään ja tutkitaan ympärimaailmaa. Esimerkiksi projekteista voisi mainita
HPY:n ja Helsingin seudun korkeakoulujen Virtual Helsinki-projekti Helsingin mallintamiseksi ja
Dive-, Massive- ja Onlive-tapaamisympäristöt. Jopa VRML-kieli tarjoaa yksinkertaisen
virtuaalitodellisuuden kakkosversionsa laajennuksien ansiosta.
Virtuaalitodellisuus näyttää tarjoavan paljon uusia mielenkiintoisia
ulottuvuuksia, mutta mitalilla on kaksi puolta. Väheneekö ihmisten välinen
luonnollinen kasvoista kasvoihin tapahtuva kommunikointi, alkavatko ihmiset
elämään pelkästään virtuaalimaailmassa ja unohtuuko oikea,
perinteinen todellisuus?
Tutkijat ympäri maailmaa miettivät tuleeko virtuaalitodellisuuden
käyttäytyä, kuten oikea maailma ja olla sidoksissa todellisuuteen. Mikä on
esimerkiksi seinien funktio? Ovat ne kiinteitä, läpäisemättömiä
kalvoja, vai ovatko ne vain näköesteitä? Tarvitaanko seiniä
ylipäänsä ollenkaan? Tämä pieni esimerkki hieman valottaa ongelmia,
joita psykologit ja muut tutkijat yrittävät ratkaista.
Käyttäjän liittyessä virtuaalitodellisuuteen hänen on otettava
jonkinlainen hahmo tai ulkomuoto, jonka muut käyttäjät voivat nähdä.
Divessä on muutamia mallihahmoja, joista käyttäjä valitsee
mieleisensä, mutta ulkomuodon voi myös laatia aivan itse. Koska liikutaan
virtuaalitodellisuudessa, ei hahmolla tarvitse olla minkäänlaista kiinnekohtaa
todellisuuteen. Käyttäjä voi siis olla ihminen aivan yhtä hyvin kuin pensas tai
puhelinpylväskin. Samoin hahmon ei tarvitse olla sama kokoajan, vaan
käyttäjä voi vaihtaa ulkonäkönsä toiseksi ns. lennossa. Muiden
vierailijoiden suhtautuminen kyseisiin vaihdoksiin on sitten asia erikseen.
Jokainen Dive-maailmassa vieraileva käyttäjä
käynnistää itseasiassa kaksi eri ohjelmaa, jotka huolehtivat visualisoinnista ja
yhteyksistä verkon yli. Visualisoija (esimerkiksi Vishnu) piirtää kuvan
virtuaalitodellisuudesta käyttäjän kuvaruudulle ja huolehtii äänien
tuottamisesta. Monen eri käyttäjän yhtäaikaisen kommunikoinnin
mahdollistaa oma verkkoa käsittelevä ohjelma (Diveserver). Itse maailma on sijoitettu
aivan tavalliseen URL-osotteeseen, josta se ladataan käyttäjän liittyessä
kyseiseen maailmaan.
Liikenne keskupalvelimelta asiakaskoneille kuormittaa palvelimelta ulospäin
suuntautuvaa tiedonsiirtoverkkoa. Tämä on yksi syy nykyisten
monenkäyttäjän sovellusten rajoitetulle
käyttäjämäärälle. Diveä tehdessä ongelmaa on
lähdetty ratkaisemaan toiselta puolelta. Tieto virtuaaliympäristön eri objekteista ja
kappaleista on hajautettu verkkoon, joten Divessä ei ole omaa keskuspalvelinta. Näin
ollen virtuaalimaailmaan liittyneet vierailijat viestivät keskenään
ympäristössä tapahtuneista muutoksista. Virtuaaliympäristö ladataan
koneen muistiin URL-osoitteesta ainoastaan kerran, sen jälkeen Diveserver
päivittää näitä tietoja aivan itsestään.
Kuten kuvasta 1 näkyy, jokaisessa vierailijassa on itseasiassa kaksi osaa eli sekä
Vishnu-visualisoija että Diveserver-palvelin. Palvelimia ei kuitenkaan tarvita useampia kuin yksi
liikuttaessa vain paikallisverkossa kuten yliopiston sisällä. Ulkopuolella olevat osallistujat
joutuvat kuitenkin käyttämään omaa palvelintaan. Mikäli sitä ei
ole erikseen käynnistetty, vierailija voi liikkua maailmasta toiseen, mutta hän ei näe
muita mahdollisesti samassa virtuaaliympäristössä olevia, eikä voi
viestiä heidän kanssaan. Palvelin toimii multicast-periaatteella, jolloin kaikki viesti
välitetään kaikille muille maailmassa oleville vierailijoille yhtäaikaa.
Tästä lisää luvussa 4.2.
Kuten aikaisemmin todettiin, muutokset eri virtuaaliympäristöjen
välillä välittyvät automaattisesti. Kappale pysyy siinä, mihin joku on
sen jättänyt niin kauan, kuin yksikin vierailija on kyseisessä virtuaalimaailmassa.
Viimeisenkin vierailijan jättäessä maailman tehdyt muutokset
häviävät ja maailma palautuu alkutilaan.
Käyttäjä voi olla vuorovaikutuksessa erilaisten esineiden, olioiden ja
muiden käyttäjien kanssa. Esineisiin voi koskea, jolloin ne tekevät jotain
(esimerkiksi hyppäävät ilmaan) tai niitä voi siirtää tai
pyörittää. Muiden hahmojen kanssa voi puhua ja välittää tietoja.
Esineet voivat myös välittää informaatiota käyttäjille.
Esimerkiksi kello voi käydä ja vieraskirja päivittyä automaattisesti.
Virtuaaliympäristössä voi siis olla sekä automaattisia prosesseja eli olioita,
jotka viestivät sekä keskenään että käyttäjille, että
staattisia objekteja. Dive siis mahdollistaa kolmiulotteisen virtuaalitodellisuuden.
Kuusi perusmodulia ovat runko (core), SID, väylät (threads), grafiikka,
äänet ja muut toiminnot. Eri sovelluksia voidaan rakentaa yhdistelemällä
tarvittavia yksiköitä yhdeksi osioksi.
Runko (core) käsittää kolme toiminnallisesti erilaista osiota. Objektit-osio
esittelee erilaiset objektit ja niiden toiminnallisuudet, kuten alustukset, kosketustoiminnan, jne.
Hajauttamisosio (distribution) käsittää eri esiintymien (käyttäjät
ja objektit) verkko-toiminnot ja nimipalvelurajapinnan. Tukiosio käsittää useimmat
perustietorakenteet ja toiminnot. Se myös hoitaa osoittimet esiintymiin ja ajastuksia, fontit,
yleiset grafiikkakirjastot, materiaalit, pinot, listat ja taulukot sekä kaikenlaisia muita yleisesti
tarvittuja toimintoja.
SID (SICS Distribution package) on SICS:n kehittämä kommunikointimoduli,
jonka tärkein tehtävä on välittää viestejä eri
käyttäjien välillä. Yhtäaikaisia käyttäjiä voi olla
satoja tai jopa tuhansia. Viestin välitys perustuu multicastiin, jossa yksi ja sama viesti
lähtee useampaan eri osoitteeseen samaan aikaan. Tällöin saavutetaan
säästöä lähetettävien pakettien
lukumäärässä ja kuormitetaan vähemmän verkkoa verrattuna
point-to-point -yhteyksiin. Pakettien lähetys perustuu internetistä tuttuihin protokolliin
UDP ja IP, eikä siinä näin ollen ole lainkaan virheenkorjausta. SID:in perusajatus
on aggressiivinen (eli pakettien lähettämistiheys on suuri) IP-multicast, oliopohjainen
kommunikointi ja sovelluskerroksella tapahtuva pakettien kehystäminen.
Väylät (threads) pitävät yhteyttä
käyttöjärjestelmään päin. Pääasiassa
tämä moduli vastaa koneenläheisestä toiminnasta ja ajastimista.
Grafiikkamoduli vastaa näytön piirtämisestä ja
käyttöliittymästä. Se siis huolehtii yleensäkin kaikesta, minkä
käyttäjä näkee ruudullaan. Virtuaaliympäristöstä, jossa
käyttäjä on vieraana, piirretään kaikki näkyvissä ja
piilossa tai muiden takana olevat objektit. Näin ollen Diven grafiikan piirto on suhteellisen
hidasta ja se asettaa kovat vaatimukset koneen grafiikkaominaisuuksille. Silicon Graphics onkin
yleisimmin käytetty ympäristö juuri edellä mainittujen ominaisuuksiensa
ansiosta. Grafiikkakirjastoista Dive tukee GL:ää, OpenGL:ää ja
XGL:ää, kuten myös tcl/tk:ta.
Dive tukee kolmiulotteisia ääniä, jotka sen äänimoduli
välittää. 3D-äänillä tarkoitetaan avaruuden (tai
tässä tapauksessa virtuaalitodellisuudessa) tietystä pisteestä
lähtöisin olevia ääniä, jotka sieltä heijastuvat
käyttäjän kuuluviin. Siis kauempana olevat äänilähteet ovat
vaimeampia kuin lähellä olevat. Diven äänimoduli tukee sekä
objektien omia ääniä että käyttäjien välistä
kommunikointia.
Kuudentena osana on moduli, joka käsittää kaikki muille moduleille
selvästi kuulumattomat ominaisuudet, kuten esimerkiksi hiiren ja
näppäimistön hallinnan, Tcl/tk-rajapinnat, tiedoston talletukset, tilastojen
keräämisen sekä ulkoiset laiteajurit kuten datahanskat ja kypärät. Dive
siis tukee datahanskoja ja kypäriäkin, joskin on huomattavasti yleisempää
käyttää Diveä pelkästään näytöltä
katsottuna hanskojen ja kypärien puuttumisen takia.
Kuten luvun alussa todettiin, sovelluksia voidaan rakentaa yhdistelemällä
yllä mainittuja moduleita. Jo ns. perusmoduleilla (runko, SID, väylät) voidaan
muodostaa yksinkertainen sovellus, johon voidaan liittää omaa koodia laajentamaan sen
toimintaa. Perusmoduleilla voidaan rakentaa esimerkiksi kello. Vishnu-visualisoija taas koostuu
kaikista kuudesta modulista. Näin ollen se tukee 3D-grafiikkaa ja -ääniä, tcl-
rajapintoja ja hahmon tietojen välitystä muille käyttäjille. Kuitenkaan
Vishnun ei tarvitse olla ainoa visualisoija, vaan kätevä ohjelmointitaitoinen
käyttäjä voi rakentaa itselleen oman mieleisensä visualisoijan.
Koska Dive tukee datakypärää, on vishnu-visualisoijaankin rakennettu
stereo-näkö. Käyttäjän täytyy valita kumman silmän
kautta hän haluaa katsella maailmaa vai käyttäkö hän useista
peleistä tuttuja ylä-, sivu- ja takakulmia.
Dive käyttää useita erilaisia tiedostotyyppejä. Maailma- ja
objektitiedostot ovat .vr-tarkentimisia, header-tiedostojen tarkennin on .vh, fonttien .fnt ja muut
datatiedostot ovat .data-tarkentimisia. Kaikki tiedostot käännetään C-
esikääntäjällä ennen suorittamista tai esittämistä, joten
kaikki C-esikääntäjälle annetut ohjaus- yms. koodit käyvät
myös Diveen.
Maailma- ja objektitiedostoja käytetään graafisen ympäristön
määrittelyyn. Maailma-tiedostot määrittelevät maailman parametrit ja
funktiot, kun objektitiedostot määrittelevät objektien ulkonäön ja
toiminnallisuuden. Liitteessä 1 on esimerkki maailmatiedostosta ja liitteessä 2
objektitiedostosta. Objektin vuorovaikutus käyttäjän kanssa on toteutettu tcl-
kielellä, kuten se yleensä Divessä on tapana. Myös C-ohjelmien tekeminen
on mahdollista. Tämä on kuitenkin huomattavasti vaikeampaa, koska se vaatii erilaisia
moduleita toimiakseen oikein.
Hahmoja (eli käyttäjien vartaloita) voidaan myös
määritellä .vr-tiedostoina. Niille voidaan määritellä hieman
enemmän ominaisuuksia kuin tavallisille objektitiedostoille, mutta kyseiset ominaisuudet
eivät sido käyttäjää millään tavalla. Hän voi
myös valita tavallisen objektin hahmokseen.
Fonttitiedostot (.fnt) määrittelevät kuinka kirjaimet on
esitettävä 3D-maailmassa. Muut datatiedostot (.data) määrittelevät
erilaisia materiaaleja (eli värejä) objekteille ja hahmoille sekä kirjaimiston
tunnisteita.
Diveä kehitetään edelleen eri yliopistoissa ja korkeakouluissa
ympäri maailman. Nottinghamin yliopistossa Englannissa on tehty Divestä uusia versiota,
Massive ja Massive95. Niiden ohjaus tapahtuu hiirellä, kun se Divessä tapahtuu
näppäimistöllä. Myös muissa ominaisuuksissa on hieman eroja.
Massivet on kuitenkin rakennettu Diven päälle ja ne käyttävät SID-
kommunikointimodulia viestinsä välittämiseen. Onlive on vastaava malli
PC/Windows-ympäristöön. Siinä on komeampi grafiikka kuin Unix-
veljissään, mutta paljon huonompi äänentoisto ja vakaus. VRML:n asemaa
tulevaisuudessa ei voi vielä ennustaa, koska uusi kakkosversio toi tullessaan paljon uusia
ominaisuuksia. Näiden toimimista käytännössä ei ole vielä
minkäänlaisia kokemuksia.
Saalasti, Sami: VRML, Matematiikan laitoksen LUK-tutkielma.
Dive:
Onlive:
InternetFoyer:
Massive ja Massive95:
Virtual Helsinki:
1. Johdanto
Virtuaalitodellisuudesta ja kolmiulotteisesta grafiikasta puhutaan nykypäivinä
paljon. Tavalliset käyttäjät vaativat aikaisempaa parempaa grafiikkaa omille
ruuduilleen aina vain nopeammin ja nopeammin. Suunnittelu- ja mallinnustoimistot tarvitsevat uusia
mallinnusohjelmia toimintojen siirtyessä ihmisten mukana pois toimistoista. Tietojen on
liikuttava nopeasti toisistaan kaukanankin olevien käyttäjien välillä. 2. Graafiset selaimet
Nykyiset selaimet kuten Netscape tai Internet Explorer ovat pääasiassa
kaksiulotteisia. Tulevaisuudessa kolmiulotteisuutta vaaditaan yhä enemmän, joten WWW-
selaimet muuttuvat pikkuhiljaa kolmiulotteisiksi VRML:n tai vastaavan yleismaailmallisen
mallinnuskielen yleistyessä. 3. Virtuaalitodellisuus
Virtuaalitodellisuuden (VR, Virtual Reality) voidaan ajatella muodostuvan maailmasta, jossa
objektit ja muut käyttäjät stimuloivat vierailijan aisteja. Ihmisen tärkeimpien
aistien eli näön ja kuulon simulointi tietokoneella on helppoa. Tunto-, haju- ja
makuaistien ärsyttäminen on jo huomattavasti vaikeampaa, eikä niiden simulointia
ole edes tutkittu riittävästi sovelluksien aikaansaamiseksi. 4. DIVE
Dive (lyhenne sanoista Distributed Interactive Virtual Environment) on hajautettu
vuorovaikutteinen virtuaalinen ympäristö, johon eri käyttäjät
ympäri maailman voivat liittyä. Dive on saatavisssa monille eri Unix-
käyttöjärjestelmille, mm. Silicon Graphicsille, Linuxille, Sunille, Digitalille ja
HP:lle, mutta PC/Windows-ympäristöihin Diveä ei ainakaan vielä ole
saatavissa. Seuraavassa tarkastellaan lähemmin Diveä sekä sen rakennetta ja
toimintaa.
4.1 Yleistä
Dive on ruotsalaisen Stockholm Institute of Computer Sciencen (SICS)
kehittämä prototyyppi erilaisten virtuaaliympäristöjen (VE, Virtual
Environment), käyttöliittymien ja sovellusohjelmien mallintamiseen jaetuissa
kolmiulotteisissa ympäristöissä. Toisin sanoen Dive on tutkimukseen
käytettävä prototyyppi virtuaalitodellisuuden luomiseen tietokoneen ruudulle. Se
on ennenkaikkea erikoistunut monen yhtäaikaisen käyttäjän väliseen
kommunikointiin ja tietojen välittämiseen internetin kautta.
Kuva 1. Virtuaalinen verkko. 4.2 Rakenne
Dive on erittäin joustava rakenteeltaan moduleista koostuvan rakenteensa ansiosta.
Pääasiassa Dive on ohjelmoitu C-kielellä, mutta dynaaminen vuorovaikutus ja
käyttöliittymä on tehty Tcl/Tk-kielellä. Lähdekoodi
käsittää siis sekä C- (.c ja .h) että tcl-tiedostoja (.tcl). 4.3 Ohjelmointi
Monet ihmiset ajattelevat virtuaalitodellisuuden ohjelmoimisen olevan hankalaa. Onhan se
sitä, mikäli aloitetaan aivan puhtaalta pöydältä, mutta valmiita
moduleita ja prosesseja käyttämällä voidaan rakentaa mitä upeampia
virtuaaliympäristöjä. Tähän mennessä on käsitelty
ainoastaan toiminnallisia ominaisuuksia ja ei olla vielä paneuduttu Jumalana olemiseen eli
virtuaalimaailman luomiseen. 5. Yhteenveto
Virtuaalitodellisuus ja kolmiulotteisen grafiikan esittäminen ovat tulleet
jäädäkseen. Tulevaisuudessa yhä useammat sovellukset
näyttävät yhä parempaa grafiikkaa ja ovat
käyttäjäystävällisempiä. Näiden ominaisuuksien
kehitettäminen vaatii erilaisia prototyyppejä ja malleja eri tilanteiden simulointiin ja
testaukseen. Dive on vain yksi näistä prototyypeistä. Tämä
näkyy monina virheinä ja toteutumattomina (mutta kuitenkin jo valmiiksi
dokumentoituina) ominaisuuksina, jotka aiheuttavat paljon virheitä ja outoja tilanteita. Mutta
tietäessään virheiden olemassa olon, niihin osaa suhtautua helpommin. 6. Lyhenteitä
CAD Computer Aided Design.
DIVE Distributed Interactive Virtual Reality.
HPY Helsingin Puhelin Oy.
HTML HyperText Markup Language.
IP Internet Protocol.
LAN Local Area Network.
SICS Stockhoml Institute of Computer Science.
SID SICS Distribution Package.
UDP User Datagram Protocol.
URL Uniform Resource Locator.
VE Virtual Environment.
VR Virtual Reality.
VRML Virtual Reality Modelling Language.
WWW World Wide Web. 7. Lähteet
Macedonia, M., Zyda, M., Pratt, D., Brutzman, D., Barham, P.: Exploiting Reality with Multicast
Groups, IEEE Computer Graphics and applications, September 1995, pp. 38-45.
http://www.sics.se/dive/
http://www.onlive.com/
http://www.crg.cs.nott.ac.uk/Foyer/index.html
http://www.crg.cs.nott.ac.uk/~cmg/massive.html
http://www.hpy.fi/handout/tiedotus/arena1410.html
Helsingin Sanomat 14.10.1996. 8. Liitteet