VRML - 3-ulotteisten maisemien kuvaus internetissä
1.11.1999
Miika Tuunanen
Tietotekniikan osasto
Teknillinen Korkeakoulu
mtuunane@cc.hut.fi
Tiivistelmä
VRML (Virtula Reality Modeling Language)
on kolmiulotteisten maisemien kuvaukseen käytetty kuvauskieli, joka
on kehitetty erityisesti käytettäväksi internetissä.
VRML on vähän vastaavanlainen kuin HTML-kuvauskieli, eli näytettävä
aineisto kuvataan erilaisin komennoin, ja kohdekone, jossa se esitetään,
generoi esityksen komentojen mukaan. 3d-maisemia ei siis lähetetä
kohdekoneelle palvelimelta, vaan maisema luodaan kohdekoneessa. Näin
säästytään yhteyden suurelta rasittamiselta, kun ei tarvita
kuljettaa kooltaan suuria valmiita maisemia, vaan selvitään näiden
sijaan tekstipohjaisella maisemankuvauksella. Tämä myös vähentää
palvelimelle asetettuja vaatimuksia, koska kuvien laskenta suoritetaan
vasta kohdekoneessa.
1 Johdanto
VRML (Virtual Reality Modeling Language) on kieli, jolla voidaan
kuvata kolmiulotteisia maisemia internetissä. Kielen lähtökohtana
ovat olleet internetin vaatimukset.
Maisemien kuvaus internetissä ei olisi onnistunut niin, että
palvelin hoitaisi kaiken laskemisen ja lähettäisi valmiin maiseman
kohdekoneelle esitettäväksi. Minkään palvelimen resurssit eivät olisi
riittäneet tähän, eikä maisemaa olisi ehkä siitä huolimatta saatu
siirrettyä kohteelle riittävän nopeasti. Siksi piti kehittää jotain
tehokkaampaa. Tästä syystä siirrettävä data sisältää ainoastaan maiseman
generointiin tarvittavan ohjauskoodin. Varsinainen kuvan muodostus ja
renderöinti tapahtuu tällöin vasta kohdekoneessa. Tällöin verkon
kuormitus on huomattavasti pienempi verrattuna siihen, että palvelimelta
ladataan joka kuva ja käyttäjä lähettää omat ohjauskoodinsa palvelimelle.
Myöskään palvelimen ei tarvitse itse enää laskea kuvia, vaan laskemisen
hoitaa kohdekone.
[4]
VRML-maailman koordinaatisto on oikeakätinen, eli
x-akseli osoittaa ruudulla oikealle, y-akseli ylöspäin ja z-akseli
ruudusta ulospäin.[4]
Tämän dokumentin tarkoitus on esittää ensin yleiskuvaus VRML 1.0:sta, ja
tämän jälkeen siirtyä tarkkailemaan VRML 2.0 versiota. Tarkoitus
on esittää perusasioita ja tärkeimmät solmut ja niiden rakenne.
Tarkoitus ei niinkään ole paneutua VRML:n syntaksiin, joskin
sitäkin on hiukan.
2 Käytön aloitus ja tarvittavat laitteet
VRML:n käyttöön on olemassa lukuisia erilaisia vaihtoehtoja.
Jotta VRML-maisemia voidaan katsella, on käyttäjällä oltava
mielellään mahdollisimman uusi www-selain, sekä tähän sopiva VRML-plug in.
On myös mahdollista käyttää erillistä VRML-selainta, jolloin
www-selainta ja lisäohjelmistoja ei tarvita.
VRML-maailman luonti tapahtuu luomalla tiedosto, jonka pääte on .wrl.
Tiedoston luontiin on myös olemassa monia tapoja. Tiedosto voidaan
luoda joko tekstieditorilla tai jotain 3d-mallinnus ohjelmaa käyttäen.
3 Sovellukset
VRML:ää käyttäen voidaan luoda mitä erilaisimpia sovelluksia. Voimme
luoda omasta mielestämme siistejä maisemia, jotka eivät sisällä mitään
toimintaa, vaan ne on tarkoitettu vain katseltaviksi. Näin voitaisiin
toteuttaa vaikkapa museoita tai vaikkapa kaupunkeja, jolloin
voisi kaupungissa käymättäkin liikuskella pitkin sen katuja, ja katsella
miltä siellä näyttää.
Hyötykäytössä VRML:n avulla on toteutettu mm. virtuaalisia
jääkiekkohalleja, joissa lipunostaja voi ennen ostopäätöstään käydä
katsomassa, kuinka paikalta näkee pelin. Näin voi etukäteen käydä
katsomassa, että kannattaako paikasta maksaa pyydettyä hintaa.
Myös erilaisia kokoamisohjeita voisi yrittää tehdä käyttäen vrml-kieltä.
Kolmiulotteisuus antaisi mahdollisuuden katsoa tilannetta eri kulmista,
ja näin ei käyttäjälle jäisi niin paljon epäselvyyttä, kuinka kokoaminen
tapahtuisi.[5]
4 VRML 1.0
Käytännössä tiedostossa on kaksi osaa, eli otsikko, jossa
spesifioidaan VRML versio ja merkkikoodisto, sekä loppuosa,
joka sisältää VRML-solmut.
Tiedosto voisi näyttää osapuilleen tältä:[2]
#VRML V1.0 ascii Tämä on siis ascii-koodattu tekstitiedosto
# tiedosto.wrl
Kommentti alkaa risuaita-merkillä, ja päättyy, kun rivi vaihtuu:
[2]
# Tämä on kommentti
Solmu on VRML-maailmojen rakentamisen perusosanen.
Solmujen avulla määritellään, kuinka 3-ulotteiset
kappaleet rakennetaan, minne ne sijoitetaan, kuinka
ne väritetään ja kenties animoidaan.
VRML 1.0-kielessä näitä solmuja on 36, ja ne on jaettu
neljään ryhmään: geometriset solmut, ominaisuus solmut,
ryhmittelysolmut sekä muut solmut.[2]
Solmu koostuu nimestä, jonka jälkeen tulee aaltosulut, joiden
sisään voi tulla eri määrä argumentteja, joilla määrätään solmun
tila, muutoin käytetään oletusarvoja.
4.1 Geometriset solmut
Geometristen solmujen avulla voidaan määritellä
3-ulotteisia kappaleita. Ryhmään kuuluu seuraavat
solmut: AsciiText, Cone, Cube, Cylinder,
IndexedFaceSet, IndexedLineSet, PointSet ja Sphere.
[2]
4.1.1 AsciiText
AsciiText-solmulla luodaan 2-ulotteista tekstiä
VRML-maailmaan. FontStyle-solmulla muotoillaan tekstiä.
Separator {
FontStyle {
size 10
family SERIF
style NONE
}
AsciiText {
string "Tämä on ascii-tekstiä."
spacing 1
justification CENTER
width 0
}
}
Stirng-osaan kirjoitetaan näytettävä teksti.
Justification asettelee tekstin origon suhteen ja
sen mahdolliset arvot ovat LEFT, CENTER ja RIGHT.
Widht määrittää tekstin maksimileveyden.
Jos teksti kuitenkin on tätä leveämpi, niin sitä
skaalataan pienemmäksi.
4.1.2 Cone
Cone-solmun avulla mallinetaan kartio.
Cone {
parts ALL
bottomradius 15
height 30
}
parts-osan avulla määritellään esitettävät kartion
osat. Mahdolliset vaihtoehdot ovat SIDES, BOTTOM
ja ALL, eli kyljet, pohja ja kaikki. bottomradius
ja height määräävät kartion pohjan säteen sekä kartion
korkeuden.
4.1.3 Cube
Cube-solmulla määritellään piirrettävä kuutio antamalla
sille leveys, pituus ja syvyys.
Cube {
width 30
height 30
depth 30
}
4.1.4 Cylinder
Cylinder-solmulla määritellään sylinteri
säteen ja korkeuden avulla.
Cylinder {
parts ALL
radius 12
height 20
}
Tässä parts-muuttujan arvot voivat olla TOP, BOTTOM, SIDES tai ALL,
eli katto, pohja, kyljet tai kaikki edelliset.
4.1.5 Sphere
Sphere-solmulla määritellään pallo, jonka säde on radius.
Sphere {
radius 10
}
4.1.6 IndexedLineSet ja IndexedFaceSet
IndexedLineSet ja IndexedFaceSet solmut käyttävät apuna
ominaisuussolmua Coordinate3. IndexedLineSet-solmun
avulla piirretään pisteiden välille viivoja, eli sen
avulla voi tehdä ns. rautalanka malleja, kun taas
IndexedFaceSet-solmun avulla piirretään pisteiden
virittämiä pintoja. -1 toimii eri pintojen ja eri viivojen
erottimena.
Esimerkki solmujen käytöstä, 4-kulmio
Separator {
Coordinate3 {
point [
0 10 0,
10 0 0,
0 0 10,
-10 0 0,
]
}
IndexedFaceSet {
coordIndex [
0, 1, 2, -1,
0, 2, 3, -1,
1, 2, 3, -1,
0, 1, 3, -1,
]
}
}
Ja sama rautalankapiiroksena:
Separator {
Coordinate3 {
point [
0 10 0,
10 0 0,
0 0 10,
-10 0 0,
]
}
IndexedLineSet {
coordIndex [
0, 1, -1,
0, 2, -1,
0, 3, -1,
1, 2, -1,
2, 3, -1,
1, 3, -1,
]
}
}
4.2 Ominaisuussolmut
Ominaisuus solmujen avulla puolestaan määritellään
kappaleille ominaisuuksia, eli määritellään
geometristen solmujen esitystapa. Ominaisuussolmuja
ei käytetä yksinään vaan yleensä geometristen solmujen
kanssa.
Ominaisuussolmut voidaan jakaa kahteen osaan:
Visuaalisiin ominaisuuksiin kuuluvat
Coordinate3, FontStyle, Material, MaterialBinding,
Normal, NormalBinding, Texture2, Texture2Transform,
TextureCoordinate2 ja ShapeHints.
Transformaatiominaisuuksiin kuuluvat puolestaan
MatrixTransform, Rotation, Scale, Transform ja
Translation.[2]
4.2.1 Visuaaliset ominaisuussolmut
Coordinate3-solmulla voidaan luoda pisteitä maailmaan.
Käytetään mm. IndexedFaceSet- tai IndexedLineSet-solmujen
kanssa. Pisteet määritellään pilkuilla eroteltuina.
FontStyle-solmulla valitaan AsciiTextin käyttämä
fontti, sen tyyli ja koko. Käytettävän fontin määrää
muuttuja family, ja sen vaihtoehdot ovat
SERIF, SANS ja TYPEWRITER. Style muuttujan
mahdolliset arvot ovat
NONE, BOLD ja ITALIC, eli ei mitään, lihavoitu
ja kursiivi. Size määrää fontin korkeuden kappaleavaruuden
pisteissä.
Material-solmulla määritellään kohteen materiaalin ominaisuuksia,
kuten heijastuvuutta eri tilanteissa sekä läpinäkyvyyttä, ja kuinka
väri käyttäytyy näissä tilanteissa.
Objekteiden pinnoille voi laittaa pinnoitteen
Texture2-solmulla. Pinnoitteen laittamisella tarkoitetaan
JPEG-, PNG- tai GIF-muodossa olevien kuvien laittamista
pinnalle.
Texture2 {
filename "kuva.jpg"
}
Lainausmerkkien sisään laitetaan halutun kuvan osoite.
Kuva voi siis sijaita missä tahansa.
4.2.2 Transformaatio-ominaisuudet
Transform-solmulla voi skaalata, kiertää tai siirtää objektia.
Transform {
translation 0 10 0
rotation 0 0 1 2.5
scaleFactor 1 1 2
center 2 2 2
}
Translation määrittää vektorin(origon suhteen), jonka verran objektia
siirretään.
Rotation määrittää kiertoakselin ja -kulman (viimeinen argumentti).
ScaleFactor on skaalauskerroin, jossa jokaiselle akselille
annetaan erikseen oma skaalauskertoimensa.
Center:llä voi määrittää pisteen, jonka ympäri kierto tapahtuu.
Tämän lisäksi on vielä Translation-solmu, jolla voi tehdä pelkkiä
siirtoja käyttäen hyväksi translation-argumenttia, kuten edellisessä
esimerkissäkin.
4.3 Ryhmittelysolmut
Ryhmittelysolmujen avulla kootaan solmuja
suuremmiksi kokonaisuuksiksi. Tämän avulla
suuremmalle kokonaisuudelle voidaan helposti
määritellä yhteisiä ominaisuuksia.
Ryhmittelysolmuja ovat Separator, Switch, WWWAnchor
sekä LOD.[2]
Ryhmittely solmuista on jo esiintynyt Separator-solmu, jolla
vain ryhmitellään solmuja yhdeksi kappaleeksi.
WWWAnchor on myös paljon käytetty ryhmittelysolmu,
sillä se avulla voidaan luoda www-linkkejä muihin sivuihin,
eli voidaan kätevästi siirtyä paikasta toiseen sitä klikkaamalla.
WWWAnchor {
name "http://www.hel.fi"
{
Cube { }
}
}
Eli kun kyseistä kuutiota klikkaa, pääsee helsingin kaupungin
kotisivulle. Name-osaan käy siis mikä tahansa www-linkki, kuten
HTML:ssäkin.
4.4 Muut solmut
Muut solmut eivät selvätikään kuulu mihinkään
edellisistä ryhmistä, joten ne on koottu omaksi
ryhmäkseen. Joukkoon kuuluu mm. erilaisia kameroita,
valoja sekä jotain muuta pientä. Näitä solmuja ovat
OrtographicCamera, PerspectiveCamera,
DirectionalLight, PointLight, SpotLight,
WWWInline sekä Info.[2]
4.4.1 Kamerat
VRML:ssä on kaksi erilaista kameratyyppiä:
Perspektiivikamera ja ortogonaalinen kamera.
Perspektiivikamera on ns. tavallinen kameratyypi.
Siinä objektit pienenevät kauemmas. Ortogonaalinen kamera
taas säilyttää objektien koon huolimatta etäisyydestä.
Siinä siis kuution sivut ovat samansuuntaiset, kun
taas perspektiivikamerassa ne lähenevät toisiaan
kauemmas mentäessä.
Kameralle voidaan yleensä antaa sen paikka
ja kuvaussuunta,
vihje siitä, millä etäisyydellä olevista
esineistä ollaan kiinnostuneita (kauempana kamera
liikkuu nopeammin kuin lähellä)
4.4.2 Valot
VRML 1.0:ssä on kolme erilaista valoa, eli
DirectionalLight(suunnattu valo), PointLight(pistevalo)
sekä SpotLight(Kohdevalo).
SpotLight-solmu määrittelee kohdelampun, jonka valaisema alue
on kartion muotoinen. Sille voidaan osoittaa suunta, johon se
valaisee, sekä valaisukulma.
PointLight-solmu määrittelee pistevalon, joka valaisee joka suuntaan
yhtä voimakkaasti. DirectionalLight-solmu määrittelee lampun,
joka valaisee ainoastaan yhteen suuntaan, ja tämä suunta
on määritelty direction-argumentilla.
Yleensäkin valoille voidaan määritellä mm. paikka, voimakkuus,
sen väri ja vaimennuskerroin.
5 VRML 2.0
5.1 Version uudet ominaisudet
Nykyistä staattista maailmaa on pyritty parantamaan, mutta sen lisäksi
kehiin on tullut myös skriptit, interaktiivisuus, animaatiot sekä
prototyypit.[3]
5.1.1 Parannettu staattinen maailma
Versiossa 2.0 on paranneltu version 1.0 ominaisuuksia.
Näiden uusien ominaisuuksien ansiosta saadaan aikaan
parempaa realismi maisemien katselemiseen ja
kuuntelemiseen.
Uudessa versiossa helpompi luoda sadetta
ja sumua, ja myös säännöttömien pintojen luominen on helpompaa.
Äänet on myös saatu mukaan uuteen versioon, joten se tuo mukanaan
lisää realismia, voidaan laittaa puhelimia soimaan, tehostaa lasin
särkymistä jne.
Myöskin uusien selainten tekijöille uusi versio tarjoaa helpotusta
niiden optimoidessa ja tutkiessa tiedostoja.
5.1.2 Interaktiivisuus
Uuden Sensor-solmun avulla voidaan saada aikaan interaktiivisuutta.
Enää eivät sivut tarvitse olla kuolleita, vaan maiseman eri kohtia
klikkaamalla saatetaan saada aikaan toimintaa, jos olio on kytketty
johonkin. Nyt myös aineet käyttäytyvät niin kuin luonnossakin.
Neste on neste, ja kiinteä on kiinteä, jonka läpi ei pääse. On
myös mahdollista liikkua pitkin pintaa oli se sitten ramppi tai askelma
tai jokin muu kiinteä olio.
5.1.3 Animaatio
Versioon 2.0 on sisällytetty myös joukko animaatio objekteja, joita
kutsutaan Interpolaattoreiksi (Interpolators). Tämän seurauksena
on tullut mahdollisuus määritellä etukäteen animaatioita, jotka
suoritetaan jonakin otollisena ajankohtana. Näin on mahdollisuus
tehdä itsestään liikkuvia olentoja, kuten lintuja, aukeavia ovia,
mutta myös etukäteen suunniteltuja opastettuja kiertoajeluja.
5.1.4 Skriptit
Skript-solmut ovat olennainen osa jo esiteltyjä interaktiivisuutta ja
animaatioita ajatellen. Ilman skripteja ei voida saada aikaan toimintaa.
Skript-solmu saa sensor-solmulta tapahtuman, jonka perusteella se päättää,
kuinka täytyy toimia. Eli kun käyttäjä klikkaa jotain kohdetta, se käynnistää
ehkä skriptin, joka laittaa vaikka lepakot lentämään.
Eli yleensä interaktion seurauksena käynnistyy jokin toiminta, joka käynnistää
jonkin animaation. Nämä kolme siis toimivat hyvin kiinteästi yhdessä.
5.1.5 Prototyypit
Prototyyppien avulla luodaan olioita, joita niille annetuilla nimillä voi käyttää myös
muualla. Se helpottaa paljon elämää kirjoitettaessa VRML-maailmoja.
Voidaan luoda useita erilaisia objekteja, joita sitten vuoronperään
kokeilla johonkin kohtaan vain nimeä vaihtamalla kyseisessä kohdassa.
Myös kopioiden tekeminen on helppoa. On helppo (kaikki on suhteellista)
laittaa esim sali täyteen tuoleja.
5.2 Tiedoston rakenne
VRML-tiedosto koostuu neljästä eri osasta, otsikosta, maailmasta
prototyypeistä sekä tapahtuman ohjauksesta.
[5]
5.2.1 Otsikko
Jotta VRML-tiedostot tunnistettaisiin, jokainen VRML-tiedosto
aloitetaan rivillä:
#VRML V2.0 < koodaus tyyppi > [ kommentti ] < rivin päättö >
V2.0 on käytettävän VRML-kielen versio, ja se voisi yhtä hyvin olla
V1.0, jos käytetään vanhaa versiota. Seuraavaksi tulee koodaus tyyppi,
johon voidaan laittaa mm. ascii, kun tiedosto on kirjoitettu käyttäen
ascii-merkistöä. Tämän jälkeen tulevat kommentit ja rivinpäätös, eli
rivinvaihto tai vastaava.
VRML 2.0 -tiedosto voisi siis alkaa esimerkiksi seuraavanlaisella
rivillä:
#VRML V2.0 utf8 Interaktiivinen 3Dd-maisemani
ja vanha VRML 1.0 -tiedosto alkaisi rivillä:
#VRML V1.0 ascii Staattinen 3d-maisemani.
5.2.2 Maailma
Maailma sisältää solmuja, jotka kuvaavat olioita ja niiden
ominaisuuksia.
5.2.3 Prototyypit
lahde
Prototyyppien avulla useasta solmusta voidaan muodostaa
olio, jota voidaan käsitellä yhtenä kappaleena, ja
jonkin isomman kokonaisuuden osana. Prototyyppiä
käyttäen on mahdollista täyttää esim. sali tuoleilla,
kun tuolille on luotu oma prototyyppinsä.
5.2.4 Tapahtuman ohjaus
Jotkin VRML-solmut aiheuttavat tapahtumia
ympäristönmuutoksien ja käyttäjän toimien vaikutuksesta.
Tapahtuman ohjaus mahdollistaa maailman hierarkiasta
poikkeavan mekanismin, jonka kautta tapahtumalla voidaan
aiheuttaa muutoksia toisissa solmuissa. Tapahtumien
sattuessa ne ohjataan määrättyihin kohteisiinsa
aikajärjestyksessä ja käsitellään vastaanottavissa
solmuissa. Tämä käsittely voi muuttaa solmun tilaa,
aiheuttaa uusia tapahtumia, tai muuttaa maailmaa.
5.3 Solmut
Solmun rakenne on muutoin samanlainen kuin versiossa 1.0,
mutta versiossa 2.0 solmulle voidaan antaa nimi.
Nimi sijoitetaan yksinkertaisesti solmun eteen DEF määritteen kera.
[3]
Esimerkiksi:
DEF Solmu1 Sphere { }
määrittelisi pallon nimellä Solmu1.
5.3.1 Uudet solmutyypit
Ryhmittelysolmuihin on tulleet uudet solmut
Collision (onko solmun läpi mahdollisuus navigoida)
sekä Transform (ryhmittelee samaan koordinaatisto systeemiin
kuuluvat kappaleet).
Selaimelle voidaan myös osoittaa solmuja, joiden avulla ohjataan selainta.
Tällaisia solmuja ovat BackGround, NavigationInfo, ViewPoint ja WorldInfo.
Nämä siis kertovat selaimella käytettävästä taustasta, navigaatiosta,
kameran sijainnista ja suunnasta sekä perinteistä infoa dokumentista, kuten
tekijä, otsikko jne.
Valoihin on myös lisätty uusi solmu: Fog:n avulla
saadaan aikaan ilmastollisia vaikutuksia, kuten sumua.
Äänten puolella on määritelty äänen lähde, joka lähettää
valoa 3-ulotteiseen avaruuteen.
Geometrian puolella on uusi solmu, Shape, jonka avulla määritellään
joukko geometrisia solmuja ja ominaisuussolmuja, joita sovelletaan
näihin geometrisiin solmuihin.
Geometrisille solmuille on kehitetty uusi ominaisuus solmu, jolla
värit voidaan esittää. Tämä solmu on nimeltään Color, ja se
käyttää RGB-koodeja.
Tekstiä muotoillaan uudessa versiossa Text-solmulla, jolla on lukuisia
uusia ominaisuuksia. Text-solmu luo pohjan käyttää helpommin muutakin
kieltä kuin englantia maisemien tekstinä.
Epätasaisten ja säännöttömien pintojen luomiseen on kehitetty uusi
solmu nimeltä ElevationGrid.
Ulkonäköön liittyen on uusi solmu nimeltä Appearance, jolla voi
kerätä yhteen kaikki jonkin kappaleen ulkonäköön liittyvät ominaisuudet.
Extrusion-solmu määrittelee kompaktin esitystavan pursuaville muodoille
ja kiinteälle rotaatiolle.
Sensorit ovat kokonaan uusi ryhmä VRML-maailmassa, ja se on saanut jäsenikseen
seuraavat uudet solmut, joiden merkityksiä ei kuitenkaan tässä käydä läpi:
ProximitySensor, TouchSensor, CylinderSensor, PlaneSensor, SphereSensor,
VisibilitySensor ja TimeSensor.
Skriptaukseen on tullut avuksi vain yksi solmu, Script, jolla
skriptaus hoidetaan. Skriptaus tapahtuu siten, että sisään tulevan
tapahtuman perusteella generoidaan ulos tuleva tapahtuma. Siis
tapahtuma aiheuttaa toisen tapahtuman.
Interpolaatioon liittyen on myöskin tullut uusia solmuja, joilla
voi hakea erilaisten solmujen ns. keskikohtia. Näitä uusia solmuja
ovat seuraavat, joissa nimen alku jo kertoo mihin ne liittyvät:
ColorInterpolator, CoordinateInterpolator, NormalInterpolator,
OrientationInterpolator, PositionInterpolator ja
ScalarInterpolator.[3]
5.3.2 Poistuneet ja nimeä muuttaneet solmutyypit
AsciiText on muuttunut Text:ksi, Info WorldInfoksi. Ortogonaalikamera on
siirretty selaimen hoideltavaksi, samoin selain hoitaa perspektiivikameran, mutta
sille on siellä oma solmu nimeltä ViewPoint
Separatoria ei enää ole, vaan sen tilalla täytyy käyttää Transformia.
Samoin kaikki transformointiin liittyvät solmut on sisällytetty
Transform-solmun alle.[3]
VRML:n tulevaisuuden näkymiä
VRML 2.0 on tulossa kovaa vauhtia käyttöön. Sille on tulossa
lujaa vauhtia selaimia ja erilaisia apuvälineitä. Näiden
apuvälineiden avulla pystytään kätevästi kääntämään
muitakin 3-ulotteisia malleja (esim. CAD-mallit) VRML-kielelle.
Monikäyttäjäympäristötkin saattavat levitä laajaan
käyttöön, ja kunhan kaupungit saavat omat
virtuaalikaupunkinsa valmiiksi ja yhdistettyä toisiinsa, on
valmis siirtokunta kyberavaruudessa valmis, ja siellä
kommunikoivat käyttäjien avattaret keskenään.
[1]
Lähteet:
[1]Alanen, E., VRML - virtuaalitodellisuuden rajalla, Internet-lehti, 1996,
Nro.9 [viitattu 20.09.1999]
<
http://media.urova.fi/~aalanen/texts/teksti1.htm>
[2]Bell, G. & Parisi, A. & Pesce, M.
VRML 1.0C Specification, 23.10.1995,
<
http://www.vrml.org/VRML1.0/vrml10c.html>
[3]Bell, G. & Carey, R. & Marrin, C.,
The Virtual Reality Modeling Language Specification Version 2.0,
4.8.1996,
<
http://www.vrml.org/VRML2.0/FINAL/>
[4]Myllymaa, M., VRML-opas aloittelijalle, 2.11.1997,
<
http://www.tcm.hut.fi/Studies/Tik-110.300/1997/Essays/vrml_2.html>
[5]Salonen, M., VRML - Virtual Reality Modeling Language, 12.4.1999,
<
http://www.hit.fi/~msalonen/tkte/tkte.html>
Lisätietoja:
Crispen, B., VRMLWORKS, 22.05.1999,
<
http://fly.hiwaay.net/~crispen/vrmlworks/>
VRMLworks on hyvin jäsennelty, kattava kuvaus aihealueesta. Aihealueesta
löytyy tietoa mm. selaimen valinnasta, linkkejä erilaisiin vrml-maailmoihin,
muutamia esseitä jne.
Jones, C., Layoffs Threaten VRML's Future,27.2.1999,
<
http://www.wired.com/news/news/business/story/18148.html>
Jonesin artikkeli on suhteellisen uusi artikkeli aiheesta, joten siinä
on ainakin jotain nykytilanteesta.
Nadeau, D., R, See what VRML 2.0 is all about and start building shapes
today,]17.06.1998,
<
http://www.netscapeworld.com/netscapeworld/nw-12-1996/nw-12-vrmltechniques.html
>
Nadeaun julkaisu on yksi vrml-opas, jossa erityisen hyvää on vrml-koodia
havainnollistavat kuvat, sillä niiden avulla näkee suurinpiirtein mitä koodi
tuottaa, vaikkei vrml-selainta omistaisikaan.
Nadeau, D. R., VRML 2.0 Glossary,[viitattu 20.09.1999]
<
http://www.netscapeworld.com/netscapeworld/common/nw-vrmlglossary.html>
Nadeau on luonut aihealueesta melko kattavan sanaston, jota ainakin asiaan
lainkaan perehtymättömän kannattaa vilkaista muun materiaalin selailun ohessa.
Refracted, refractedVRML,[viitattu 20.09.1999],
<
http://www.refraction.com/vrml/>
Refracted:lta löytyy vrml:ään liittyen kaikki oleellinen aiheesta. Sieltä
löytyy työkaluja, erilaisia vrml-maailmoja sekä vrml-maailmojen rakentamiseen
tarvittavia oppaita, etenkin 2.0 versioon liittyen.
Scott, A., VRML 2.0 Update: What are the issues, and where do we go from
here?, 1.9.1996
<
http://www.netscapeworld.com/netscapeworld/nw-09-1996/nw-09-vrmlupdate.html
>
Scottin julkaisussa on kerrottu käytännön asioista, esim. milloin käyttää
vrml:ää, spesifikaatioiden eroja, kaistanleveydestä ja muista asioista, jotka
liittyvät vrml:ään.
SDSC, The VRML Repository, 13.09.1999,
<
http://www.web3d.org/vrml/vrml.htm>
SDSC:llä on kattavat sivut aiheesta, ja sieltä löytyy lähestulkoon kaikki.
Shalf, J., VRML, 24.06.1997,
<
http://bach.ncsa.uiuc.edu/VRML/>
Shalf on myös luonut kattavan vrml-oppaan, joka on höystetty muutamilla
kuvilla ja useilla asiaa havainnollistavilla esimerkeillä. Asia on esitetty
tiiviisti, turhia jaarittelematta.
The VRML Consortium, History of the VRML Spescification, 17.12.1998,
<
http://www.vrml.org/about/history.html>
VRML:n Consortiumin oma, lyhyt mutta tiivis, kuvaus vrml-spesifikaatioiden
historiasta.
Web3d Consortium, News, 29.03.1999
<
http://www.vrml.org/fs_news.htm>
Wed3d Consortium on koonnut alan viimeisimpiä uutisia uutisotsikoidensa
alle.