Virtuaalimaailmojen toteuttamiseen käytettävät vaihtoehdot: Tarkastelussa VRML, OPENGL ja JAVA 3D.
KOVANIEMI, TONI (2002)
KOVANIEMI, TONI
2002
Tietojenkäsittelyoppi - Computer Science
Informaatiotieteiden tiedekunta - Faculty of Information Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2002-07-05
Julkaisun pysyvä osoite on
https://urn.fi/urn:nbn:fi:uta-1-11005
https://urn.fi/urn:nbn:fi:uta-1-11005
Sisällysluettelo
1. Johdanto 1 2. Virtuaalimaailmojen historiaa 3 2.1. Sensorama 3 2.2. SIMNET 3 2.3. Lucasfilm’s Habitat 4 2.4. AlphaWorld 5 2.5. Tietokonepelit 6 3. Kolmiulotteisen grafiikan peruskäsitteistöä ja -tekniikoita 7 3.1. Geometriset peruselementit 7 3.2. Koordinaatisto ja objektien affiinimuunnokset 7 3.2.1. Karteesinen koordinaatisto 7 3.2.2. Affiinimuunnokset 8 3.3. Yksinkertaisia valaistusmalleja 9 3.3.1. Malleissa käytettäviä valonlähteitä 9 3.3.2. Diffuusi ja spekulaari heijastus 10 3.4. Piirtotekniikat ja realismi 11 3.4.1. Tasasävytys 11 3.4.2. Gouraud-sävytys 11 3.4.3. Phong-sävytys 12 3.4.4. Radiositeetti 12 3.4.5. Teksturointi 13 3.4.6. Pinnan kuhmuttaminen 13 3.4.7. Reunanpehmennys 14 4. Käsiteltävien kielien ja rajapintojen perusominaisuudet 16 4.1. Johdanto 16 4.2. VRML 17 4.2.1. Historia 17 4.2.2. Toimintaperiaate 18 4.2.3. Solmut ja objektit 19 4.2.4. Prototyypit 20 4.2.5. Affiinimuunnokset 21 4.2.6. Ryhmäsolmut ja monistaminen 21 4.2.7. Värit ja tekstuurit 22 4.2.8. Animaatio ja sensorit 23 4.2.9. Kuvakulmat ja valot 24 4.2.10. Linkitys ja ääni 25 4.2.11. Java ja JavaScript 25 4.3. OpenGL 26 4.3.1. Historia 26 4.3.2. Toimintaperiaate 26 4.3.3. Objektin rakentaminen 27 4.3.4. Matriisit ja affiinimuunnokset 30 4.3.5. Värit, varjostaminen ja tekstuurit 31 4.3.6. Kaksoispuskurointi 31 4.3.7. Mallin katseleminen ja perspektiivi 32 4.3.8. Valot ja pintamateriaalit 34 4.3.9. OpenGL-apukirjastot 35 4.4. Java 3D API 36 4.4.1. Historia 36 4.4.2. Toimintaperitaate 37 4.4.3. Maisemagraafi 38 4.4.4. Objektin rakentaminen 38 4.4.5. Ryhmäsolmut 39 4.4.6. Värit, varjostusmallit ja tekstuurit 40 4.4.7. Animaatio ja vuorovaikutus 41 4.4.8. Mallin katseleminen 42 4.4.9. Valot 43 4.4.10. Äänet 43 4.4.11. Syöttölaitteet 43 4.5. Muita soveltuvia kieliä ja rajapintoja 44 5. Ominaisuuksien keskinäinen vertailu 46 5.1. Käyttöönotto ja käyttäminen 46 5.2. Mallin rakentaminen ja sen piirtäminen 47 5.3. Valot ja äänet 48 5.4. Animaatio ja vuorovaikutus 48 5.5. Syöttölaitteet 49 5.6. Yhteenveto 49 6. Esimerkkejä toteutetuista sovelluksista 52 6.1. VRML 52 6.1.1. Virtuaali-Helsinki 52 6.1.2. Lääketieteelliset sovellukset 52 6.2. OpenGL 53 6.2.1. Suunnitteluohjelmat 53 6.2.2. Tietokonepelit 54 6.3. Java 3D 55 6.3.1. Kolmiulotteisten mallien katseluohjelmat 55 6.3.2. COVET ja COSMOS2 56 7. Esimerkkisovellusten toteuttaminen 58 7.1. Toteutetut sovellukset 58 7.2. Toteutusprosessit 59 7.2.1. VRML 59 7.2.2. OpenGL 60 7.2.3. Java 3D 62 7.3. Piirtonopeuden testaaminen 63 7.3.1. Johdanto 63 7.3.2. Testin toteutus 64 7.3.3. Rajapintojen välinen nopeusero 64 7.3.4. Monikulmioiden lisäämisen vaikutus piirtonopeuteen 66 8. Lopuksi 67 8.1. Tulevaisuudennäkymät 67 8.2. Loppusanat 68 Viiteluettelo 69 Liitteet
Tiivistelmä
Tässä tutkielmassa käsitellään virtuaalimaailmojen toteuttamiseen soveltuvia vaihtoehtoja. Tarkastelussa ovat VRML, OpenGL ja Java 3D. Lisäksi tutkielmassa käydään läpi lyhyesti myös muita vaihtoehtoja. Tutkielmassa esitellään jokaisella vaihtoehdolla toteutettuja sovelluksia. Tutkielmaa varten on jokaisella kolmella vaihtoehdolla toteutettu myös esimerkkisovelluksia, joiden toteuttamisprosesseja käsitellään tutkielmassa. Esimerkkisovelluksilla mitattiin myös OpenGL- ja Java 3D -rajapintojen välisiä piirtonopeuseroja. Lisäksi tutkielmassa käsitellään myös kolmiulotteisen tietokonegrafiikan piirtämiseen liittyvää termistöä ja eri tekniikoita.
VRML-kuvauskielellä on mahdollista toteuttaa virtuaalimaailmoja nopeasti ilman ohjelmointitaitoa, kun taas Java 3D ja OpenGL vaativat aikaisempaa ohjelmointikokemusta ja tuntemusta tietokonegrafiikasta. Interaktiivisten mallien toteuttamiseen VRML ja Java 3D soveltuvat OpenGL-rajapintaa paremmin, sillä siinä ei ole valmiita ominaisuuksia interaktiivisten mallien toteuttamiseen. OpenGL soveltuu parhaiten graafisesti raskaiden ja nopeutta vaativien ympäristöjen piirtämiseen.
Avainsanat ja -sanonnat: VRML, OpenGL, Java 3D, virtuaalimaailma, tietokonegrafiikka, piirtonopeus.
VRML-kuvauskielellä on mahdollista toteuttaa virtuaalimaailmoja nopeasti ilman ohjelmointitaitoa, kun taas Java 3D ja OpenGL vaativat aikaisempaa ohjelmointikokemusta ja tuntemusta tietokonegrafiikasta. Interaktiivisten mallien toteuttamiseen VRML ja Java 3D soveltuvat OpenGL-rajapintaa paremmin, sillä siinä ei ole valmiita ominaisuuksia interaktiivisten mallien toteuttamiseen. OpenGL soveltuu parhaiten graafisesti raskaiden ja nopeutta vaativien ympäristöjen piirtämiseen.
Avainsanat ja -sanonnat: VRML, OpenGL, Java 3D, virtuaalimaailma, tietokonegrafiikka, piirtonopeus.