VIDAREUTVECKLING AV 3D VRML-MODELL



Relevanta dokument
Introduktion till programmering, hösten 2011

Grunder. Grafiktyper. Vektorgrafik

Tanka program KAPITEL 7. Shareware och freeware. Shareware. Freeware

Inledande programmering med C# (1DV402) Introduktion till C#

Projektmaterial. Birkagårdens folkhögskola

Självhjälpsprogram för ADHD. Del 1 Att hitta din väg

Att göra banor med OCAD.

C-UPPSATS. Revitalizing classic art using real-time game technology

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Installation av atmel Studio på mac / linux

Procedurell renderingsmotor i Javascript och HTML5

Komma igång med Qlikview

Tor Sterner-Johansson Thomas Johansson Daniel Henriksson

Del 2 INTERNET I VARDAGEN. 14. Hämta program på Internet Sköta affärer på Internet Användbara sidor (för nytta och nöje)...

Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8)

Laborationer i kursmomentet Datoranvändning E1. Laboration nr 5: Mer om FrameMaker

Jag försöker hämta in video via Ulead programmet men får bara in bilden och inget ljud.

25. Hämta Adobe Reader

Henrik Häggbom Examensarbete Nackademin Våren 2015

1. Hur öppnar jag Polisens blanketter / formulär, trycksaker och annat som är i PDF-format?

Arbetshäfte Office 365 en första introduktion

Komma igång med OneD. Allt på en plats

Instruktion för användande av Citrix MetaFrame

Viewers i alla former.

Mina listor. En Android-applikation. Rickard Karlsson Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

Innehåll: Startnyckel, introduktion. Internet som resurs 2. Del 3. Funktioner: Länkverktyget Infoga bild Infoga ljud Spara i Galleriet

Interaktiva applikationer för dator (WPF) och web (Silverlight) Grafisk utvecklingsmiljö. Hela produktioner: design, layout, animationer, skins, etc.

Hermundstad Östlund Ansell. Grundläggande IT för SENIORER

INSTÄLLNINGAR FÖR IRONCADS 2D-RITNING

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Introduktion till Adobe Acrobat Connect Pro

Publicera material i Blackboard

Manual för att genomföra Fri som en fågel eller annan liknande utställning

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

Spela in och spara din PowerPointpresentation

[SLUTRAPPORT: DRAWPIXLZ (ANDROID-APP)] Slutrapport. Författare: Zlatko Ladan. Program: Utvecklare av Digitala Tjänster 180P

Filhanterare med AngularJS

Guide. Webbsidor i Studentportalen. Innehåll. Uppdaterad:

Lär dig grunderna om Picasa

1

Programmering av NXT Lego- robot Labbrapport för programmering av en Lego- robot

En trevlig form av utskrift från Disgen är en grafisk antavla med foton.

SCRATCH är ett nytt programmeringsspråk som gör att du kan skapa dina egna interaktiv historier, animationer, spel, musik och konst.

Snabbstartsguide. Få hjälp Klicka på frågetecknet om du vill söka efter hjälpinnehåll.

För dig som lärare har vi placerat nya inkomna svar från elever under Följ upp uppgifter medan elev på samma ställer ser alla sina aktiva Uppgifter.

Office 365 Windows 10

Snabbstartsguide. Visa eller växla mellan onlinekonton Klicka på ditt konto-id för att ändra inställningar eller växla mellan konton.

EQ Plan - Installation

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS

Adobe Acrobat 7.0. Få jobbet gjort med kraftfulla intelligenta dokument

Dagbok Mikael Lyck

Creo Customization. Lars Björs

Programmering i Scratch 2.0

Skapa en pdf-fil med hög kvalitet, lämpad för tryckning Skapa pdf-filen i en PC med Windows Skapa pdf-filen i en Mac

Kom i gång med PING PONG

Instruktion för användande av Citrix MetaFrame

Instruktion för användande av Citrix MetaFrame

Skapa ett eget programnu! NU! Komplett med programvara och konkreta exempel! Patrice Pelland. Swedish Language Edition published by Docendo Sverige AB

Administrationsmanual ImageBank 2

Kort om World Wide Web (webben)

Spela in och exportera din PowerPoint som en film via Premiere Elements

Dynamic Review for Models ProjectWise Navigator

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

Instruktion för användande av Citrix MetaFrame

HAND TRACKING MED DJUPKAMERA

Utforska kommandon i menyfliksområdet Varje menyflik har grupper, och varje grupp har en uppsättning relaterade kommandon.

Lathund Blanketthotell Komma igång

Programmering. Scratch - grundövningar

2. Markera område (se instruktioner längt ner på sidan) och markera Fastighetskartan och Laserdata till höger (se bild). Tryck på Ready.

SENIORER SENIORER. Grundläggande IT för. Windows 7. Grundläggande IT för. Windows 7. Eva Ansell Marianne Ahlgren. Eva Ansell Marianne Ahlgren

Felsökande av en Lego Mindstorm robot

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson

Universe Engine Rapport

SELLOUT. Version 2.5. eyescream information ab

Programmeringsappar. Av Alex

Dollar Street Beta Version 1.0 Manual

Kravspecifikation. Sammanfattning. Fyra i rad Javaprojekt inom TDDC32. Version 2.0. Datum Dokumentnummer

Innehållsförteckning

Instruktioner för Articulate Storyline 2

Medicinska fakulteten

Skissa och gissa. Individuellt Mjukvaruutvecklingsprojekt, 1DV430. Christian Nilsson, cn222gc, WP

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK.

3D animation / Machinima - 3D-Spelbaserat filmskapande

Verktyg och Utvecklingsmiljö. Jochim von Hacht

Flexiboard. Lathund kring hur du kommer igång med att skapa egna överlägg till Flexiboard. Habilitering & Hjälpmedel

TRUST USB VIDEO EDITOR

Så får du Microsofts Office-paket gratis

Hur man införskaffar e-böcker till Reader

6. Nu skall vi ställa in vad som skall hända när man klickar på knappen samt att markören skall ändra sig till en hand när markören är på knappen.

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel:

Kom i gång med PING PONG

PM Dokumentation

Laboration - Programmering av LEGO Mindstorm robot

SNABBGUIDE för Windows Media Encoder (media kodaren) - Sänd live med din webbkamera

Lathund Office online

Post Mortem för Get The Treasure!

Miljön i Windows Vista

Inlämningsarbete Case. Innehåll Bakgrund bedömning inlämningsarbete... 2 Inlämnade arbeten... 4

Skapa din egen MediaWiki

Transkript:

Examensarbete 10 poäng C-nivå VIDAREUTVECKLING AV 3D VRML-MODELL Reg.kod: Oru-Te-EXD083-D113/04 Mikael Viklund och John Söderfeldt Dataingenjörsprogrammet 120 p Örebro vårterminen 2004 Examinator: Håkan Lindegren FURTHER DEVELOPMENT OF A 3D VRML-MODEL Örebro universitet Örebro University Institutionen för teknik Department of technology 701 82 Örebro SE-701 82 Örebro, Sweden 1

Sammanfattning Sammanfattning 04-09-15 Detta arbete har utförts på uppdrag av AASS (Center for Applied Autonomous Sensor Systems), som är en forskningsenhet vid Örebro universitet, Institutionen för Teknik. Arbetet har pågått under 10 veckor under vårterminen 2004. Vår uppgift har varit att vidareutveckla en befintlig virtuell modell av den nybyggda delen av teknikhuset vid Örebro universitet. Resultatet av arbetet ska leda till en komplett VR-miljö samt att ta reda på möjligheter till konvertering av VRML till annat programmeringsspråk, till exampel C++ eller Java. Målet med uppgiften har varit att kunna använda sig av den virtuella miljön i en av skolans kurser ( Programvaruutveckling och projekthantering, 10p). I denna kurs skapas i stor utsträckning datorspel. Studenterna ska, med hjälp av den virtuella miljön, kunna skapa en produkt i form av till exempel ett komplett datorspel. Abstract This work has been performed by the commission of AASS (Center for Applied Autonomous Sensor Systems), which is a research unit at the Örebro University, Department of Technique. The work has been going on for 10 weeks in the spring of 2004. Our task has been to further develop an existing virtual model of the newly built part of the Department of Technique at Örebro University. The result of this task should lead to a complete VR-environment as well as finding out the possibilities to converting VRML into another programming language, for example C++ or Java. The goal of the task has been to be able to use this virtual environment in one of the University courses (Software Engineering, 10p). In this course students often choose to develop computer games. The students should, with help of the virtual environment, be able to create a product in shape of for example a complete computer game. 2

Förord 04-09-15 Förord Vårt examensarbete, på C-nivå, omfattar 10 poäng och ingår i Dataingenjörsprogrammet vid Örebro universitet. Vi vill tacka vår examinator Håkan Lindegren, vår handledare Tom Duckett och Henrik Andreasson för ert engagemang i vårt arbete samt de tips och idéer ni gett oss. Vi vill även ta tillfället i akt att tacka Peter Biber som ställt upp med information angående skapandet av den virtuella världen. Örebro den 11 september 2004 Mikael Viklund John Söderfeldt 3

Innehållsförteckning 1 Bakgrund 6 1.1 AASS 6 1.2 Process 6 1.3 VRML-modell 6 1.4 PPH-kurs 6 2 Uppgiftsbeskrivning 7 2.1 Katalogstruktur 7 2.2 Åtgärda bristerna 7 2.3 Red ut utvecklingsmöjligheterna 7 2.4 Kom med produktifieringsidéer 7 2.5 Förväntade utdata 7 3 Programverktyg 8 3.1 White Dune 8 3.2 Cosmo Player och Cortona VRML Client 8 3.3 3DWin4 8 3.3 Vizx3D 8 4 Genomförande 9 4.1 Introduktion 9 4.2 Vad är VRML? 9 4.3 Granskning av tidigare modell 10 4.4 Åtgärda bristerna 10 4.4.1 Ändring av väggar och golv 10 4.4.2 Ändring av texturer 10 4.5 Red ut utvecklingsmöjligheterna 11 4.5.1 OpenGL (Open Graphics Library) 11 4.5.2 X3D (extensible 3D) 11 4.6 Försök till förbättring av modellen 11 4.6.1 Inledning 11 4.6.2 Kalibrering 11 4.6.3 Robotkörning 12 5 Resultat 13 5.1 Katalogstruktur 13 5.2 Åtgärda bristerna 13 5.3 Red ut utvecklingsmöjligheterna 13 5.3.1 OpenGL 13 5.3.2 X3D 14 5.3.3 Övrigt 14 5.4 Produktifieringsidéer 14 5.4.1 Spel 14 4

5.4.2 Aktiva världar 14 5.4.3 Larmsimulering 14 5.4.4 Kartor 14 5.5 Utdata 15 6.1 Om 3D-Kartor 16 6.2 Möjlighet att använda detta material i PPH-kursen 16 6.2 Övrigt 16 Bilaga: Bilder före och efter förbättring 18 5

1 Bakgrund 1.1 AASS Vår uppgift har varit att vidareutveckla en befintlig 3D-modell av teknikhusets nytillbyggda del. Modellen vi använde oss av var sammanställd av Peter Biber. Resultatet av arbetet ska leda till en komplett virtuell miljö över teknikhuset och sedan ska vi hitta möjligheter att konvertera VRML-formatet till ett programmeringsspråk. Examensarbetet har utförts vid AASS, Center for Applied Autonomous Sensor Systems. Vid AASS bedrivs det forskning om och utveckling av olika sorters robotar, t.ex. en robotarm, en elektronisk näsa och en robot som är utrustad med flera olika kameror. Det är den sistnämnda som samlat in informationen till VRML-modellen. Roboten styrs via radiolänk från en stationär dator med hjälp av programvara som utvecklats på AASS. Den samlar in data genom att med laser scanna av området och fotografera sin omgivning med en kamera som kan ta foton i 360 vinkel. Det finns även en kamera som tar foton i körriktning. 1.2 Process Här kommer en grundläggande förklaring av hur man går till väga för att skapa en 3D-värld med hjälp av roboten PeopleBot. Se figur 1. Roboten består av en laserscanner som scannar efter väggar, en omnikamera som tar foton i 360 vinkel samt en kontrollerbar kamera som man styr roboten med. Roboten innehåller fler funktioner än dessa [0]de används inte vid skapandet av en 3D-miljö. Innan man bestämmer sig för att starta körningen får man ställa in hur ofta foton ska tas. Det som användes i detta fall var att en ny bild togs var femtionde cm samt vid en vinkel på 15. All denna information lagras sedan på robotens hårddisk. När körningen är klar har man fått ett antal bilder samt en 2D-karta av omgivningen. Denna karta omvandlas sedan till en 3D-karta så att man ser väggar. (Se figur 2). Figur 1 - PeopleBot För att få så bra kvalitet som möjligt blandar man ihop flera bilder för att framställa en textur. När en bild tas kan inte kameran ha fokus på hela området, en del av bilden blir då diffus medan en del har bra fokus. Detta utnyttjar man och Figur 2 Laserkarta filtrerar bort de diffusa delarna och behåller de med bra fokus. Flera bilder med olika fokus slås då ihop till en textur med fokus över hela bilden. Detta illustreras med hjälp av figur 3. Konvertering av laserdata och omnifoton görs med hjälp av ett datorprogram som utvecklats av Peter Biber. 1.3 VRML-modell Figur 3 foto sammanslagning Den person som utvecklat modellen heter Peter Biber och det är han som gjort programmet som konverterar de laserdata och omnifoton som fås vid körning med Peoplebot till VRML-modellen. Se vidare [1]. En robot har samlat in information om teknikinstitutionens lokaler. Givet de bilddata som det gav har en VRMLmodell utvecklats. Via VRML-modellen kan man gå runt och "titta" i lokalerna, man kan även se modellen ovanifrån (Birds-eye view). Se bifogade bilder i bilaga. 1.4 PPH-kurs Kursen "Programvaruutveckling och projekthantering", 10 p, ges varje höst vid teknikinstitutionen. Där är grundkraven att studenterna ska utveckla och leverera programvaruprodukter som, enligt examinator, är stabila, användarvänliga och lätta att installera. 6

2 Uppgiftsbeskrivning Denna text är till stor del tagen ur specifikationen för examensarbetet som vi fått av Håkan Lindegren Han ansvarar för PPH-kursen. 2.1 Katalogstruktur Identifiera en katalogstruktur som gör det lätt att hitta bland exjobbets data. Se t.ex. http://www.studentlitteratur.se/files/sites/programvaruprojekt/bilagad.pdf 2.2 Åtgärda bristerna Identifiera var de svarta luckorna dyker upp. Lägg där in bilddata som gör att det ser bra ut. Utöka eventuellt så att om man försöker ta sig igenom där händer något passande. Identifiera suddiga bilder. Ersätt dem med bilder som gör att det ser bättre ut. Troligtvis via någon form av textur. 2.3 Red ut utvecklingsmöjligheterna Som det är nu körs VRML-modellen via en webbläsare. Kan man köra den på något annat sätt, t.ex. via C++ Builder, Java eller Visual Studio? Vilket blir bäst med tanke på produktifiering? Det bör gå att titta på modellen från olika vyer, ovanifrån, underifrån och vandrande i lokalen. Red ut hur man åstadkommer det. 2.4 Kom med produktifieringsidéer Vi förväntar oss inte att få ut en färdig produkt av detta arbete på grund av att vi endast har 10 veckor på oss och vi försöker fokusera mer på vilka möjligheter det finns till färdiga Det bästa är att hitta ett sätt att kunna konvertera hela 3D-modellen till C++ så att studenter som läser PPH-kursen kan använda sig av den för att tillverka spel. 2.5 Förväntade utdata En akademisk rapport som följer anvisningarna under: http://www.tech.oru.se/teknik/kls/examensarbete/rapportskrivning.doc Ett systemdokument enligt samma mall som användes i kursen systemkonstruktion ska utvecklas. Där ska framgå vad som användes vid utvecklingen och vilka målmiljöer som avses. Dessutom ska där finnas en provplan för utprovning av de program exjobbet lämnar efter sig. Ett exempel på vad som avses (utom provplan) finns under: http://www.studentlitteratur.se/files/sites/programvaruprojekt/bilagad.pdf. En ZIP-fil med alla data för exjobbet, utom rapporten. Data ska vara strukturerade på det sätt som systemdokumentet anger. 7

3 Programverktyg 3.1 White Dune Detta är den programvara vi använt oss av för att arbeta med modellen. Dune kan ladda in VRML-modeller och gör så att man i realtid ser modellen man arbetar med. Programmet klarar av de flesta VRML-funktionerna. Man kan lägga in/ta bort objekt, sätta ut startpunkter, lägga till ljussättning mm. Programmet är freeware och utvecklat av Stephan F. White. För mer information se [14]. 3.2 Cosmo Player och Cortona VRML Client De här programvarorna har vi använt oss av vid de tillfällen vi velat åka igenom den virtuella världen utan att göra ändringar. Cosmo player och Cortona VRML Client är små tilläggsprogram som behövs för att webbläsaren ska kunna tolka filer med VRML-kodning. För mer information se [15] och [16]. 3.3 3DWin4 Detta är ett program som kan läsa in olika 3D-filformat och sedan exportera till nästan lika många. Nackdelen är att detta program är shareware och måste betalas för att man ska kunna utnyttja det till fullo. Demoversionen gjorde att vi kunde genomföra tester och vi såg där att möjligheten till konvertering finns till OpenGL. Det underlättar då om man har inblick i OpenGL eftersom viss kodning måste läggas till för att få programmet att fungera. Priset för programmet är 40. För mer information se [17]. 3.4 Vizx3D Vizx3D har vi inte använt oss av i så stor grad. Detta var det första program vi hittade som lätt kunde importera VRML-filer och sedan fanns möjligheten att spara det hela som X3D. X3D är en efterföljare till VRMLformatet. Se vidare 4.5.2 X3D (extensible 3D) Vizx skulle kunna vara mycket användbart vid skapandet av X3D, dock kostar programmet $299. Vi ansåg därför att programmet låg utanför våran budget och lade därför inte ner så mycket tid på att undersöka programmets funktioner. Detta är ett program som påminner lite om de klassiska 3D-programmen, men det är utvecklat för X3D. Se [18] för mer information. 8

4 Genomförande 4.1 Introduktion De första veckorna tillbringade vi med att ta reda på vad VRML egentligen är, samt sätta oss in i hur VRML fungerar genom att studera tutorials på Internet och lära oss grunderna i språket. Se [4], [10] och [11]. Under denna tid kom vi över flertalet sidor som hjälpte oss med detta. Vi försökte även titta igenom koden vi hade men då den i stor del bestod av koordinater var det svårt att förstå den. Vi började då leta efter olika grafiska editeringsprogram som kunde hantera VRML. Se [12], [14] och [18]. Med hjälp av ett sådant skulle vi mer effektivt kunna arbeta med modellen. Det vi tillslut fastnade för var programmet White Dune. 4.2 Vad är VRML? Virtual Reality Modeling Language ger ett sätt att skapa 3D-världar för att sedan lägga upp på Internet. Ett exempel på detta kan vara att man gör en kopia av t.ex. en skola och sedan kan besökare från hela världen enkelt gå in och kolla hur skolan ser ut. En annan förklaring är att VRML är ett format för 3D-grafik. En VRML-fil innehåller information som beskriver ett objekts utseende och dess beteende. Men behöver inte ha någon kompilator för att skapa någonting i VRML, det är ungefär som att koda HTML. I en VRML-värld kan man interagera genom att titta, gå och rotera. Det ska skapa känslan av att man själv är på plats i realtid. För att dra nytta av den här tekniken måste man ha en speciell plug-in som man gratis kan ladda ner över Internet. Mer om det under 3.2. Cosmo Player och Cortona VRML Client. Man kan även använda sig av en applikation som går igång då klickar på en VRML-länk. En liknelse kan vara Adobe Acrobat Reader i samband med att man klickar på en länk till en pdf-fil. Ett program som fungerar på det här sättet är VRWave [19]. VRML består av två olika delar. Del ett är VRML1 (ISO/IEC 14772-1) som definierar basfunktionaliteten och textkodningen för VRML. I VRML1 kunde man alltså bara definiera statiska objekt och objekt man inte kunde interagera med. Del två är VRML2 (ISO/IEC FDIS 14772-2) som innehåller samma som VRML1 fast utökat med multimedia. Då menas att det är utvecklat så att man även kan skapa dynamiska och interagerbara objekt samt lägga till ljud och animationer. Se [5]. När VRML skapades 1994 så bestod Internet mestadels av 2D-grafik. Detta berodde på att det inte fanns tillräckligt snabba Internetuppkopplingar för att kunna hantera VRML. I dessa dagar är Internetanslutningarna snabba nog att kunna hantera VRML och sidor i 3D. Med stor sannolikhet kommer framtidens webbsidor mer och mer att byggas kring 3D-grafik och detta är bara början. VRML97 är ISO standarden för att visa 3D data över Internet via webbläsare. Den stöder animationer, realtidsinteraktioner och multimedia såsom bilder, filmer och ljud. 9

4.3 Granskning av tidigare modell När vi var mer insatta i VRML tittade vi närmare på hur VRML-modellen är uppbyggd så att vi kunde se var bristerna fanns och lägga upp en strategi för att reparera dessa. Med hjälp av White Dune kunde vi grafiskt se hur VR-modellen var uppbyggd och man kunde där lägga till och ta bort objekt. Modellen vi fått var långt ifrån komplett. Det fattades väggar i rum och golvet var inte heltäckande. Det var även mellanrum mellan de olika väggarna vilket inte såg bra ut. Vi såg även att en köksbänk i cafeterian hade samma höjd som väggarna vilket behövde åtgärdas för att få en realistisk kopia. På vissa platser var det helt öppet och man kunde där ta sig ut utanför modellens område. Samtidigt som vi granskade modellen försökte vi komma på idéer på vad modellen kan användas till. 4.4 Åtgärda bristerna 4.4.1 Ändring av väggar och golv Här har White Dune varit till stor hjälp. Här gick det även att justera ingångarna till rummen då de oftast var alldeles för trånga för att kunna gå igenom. Man kunde då ändra koordinaterna så att väggen blev något kortare än den var ursprungligen. För att skapa t.ex. en vägg så kan man göra på detta sätt: 1. Välj create sedan shape och slutligen box. Här skapas en box. Man kan även klicka på box-ikonen. 2. Man får nu fram x-y-z-axlar så man kan dra boxen dit man vill ha den. 3. Vill man nu ändra boxens utseende för att skapa en vägg kan man använda sig av scale som finns under Mode. För att ändra t.ex. en vägg så kan man följa dessa steg: 1. Markera/Klicka på väggen som man vill ändra. 2. IndexedFaceSet kommer då att markeras i listan till vänster och till höger får man upp data som kan ändras. 3. Välj Coordinate under Value i listan till höger. 4. Klicka på +-tecknet bredvid point för att utöka listan. 5. Här kan man nu dra eller skriva in andra koordinater och på så sätt anpassa väggen till rätt storlek. 4.4.2 Ändring av texturer För att kunna ändra texturer öppnade vi jpg-filerna i ett bildbehandlingsprogram och tittade på dem hur man lättast skulle kunna få dem att se bra ut. Sedan så valde vi ut den del som passade bäst till den specifika bilden och kopierade den på jpg-filen så att den blev heltäckande. För väggarna var det mer lite jobb då dessa bilder skiljer sig mer sinsemellan än golvbilderna. För att redigera bilder för väggar och golv testade vi flera olika program, men det som visade sig lättast att använda och tog minst tid var Paint som följer med Windows. För att lägga till textur på en nyskapad vägg i Dune kan man göra på detta sätt: 1. Markera väggen som ska ha en textur. Har väggen en textur sedan tidigare som ska ändras, fortsätt då på steg 2 annars fortsätt på steg 4. 2. Klicka på Apperance som kommer fram i listan på vänster sida. Klicka på krysset så Image Texture kommer fram och markera det. 3. På höger sida kommer nu mer alternativ fram, ett alternativ är url och under value är en sökväg till nuvarande textur. Kan man sökvägen till den nya texturen kan man skriva in den där. Annars tryck delete för att ta bort nuvarande textur. 4. Välj Apperance i listan till höger. 5. Välj Create sedan Material/Texture och sedan ImageTexture. Här får man sedan välja vilken bildtextur som ska läggas dit. 10

4.5 Red ut utvecklingsmöjligheterna Här har vi använt Internet för att söka efter information om vilka olika språk man konvertera VRML till. Vi har läst igenom olika tutorials och hemsidor för att se vilka som är de mest passande för denna uppgift. De lovande alternativ som vi har stött på är X3D och OpenGL. Se [2] och [7] Vi hade hoppats att man på något sätt kunnat konvertera till ren C++ kod eller liknande då vi använt oss av det under dataingenjörsutbildningen. 4.5.1 OpenGL (Open Graphics Library) OpenGL API (Application Programming Interface) är ett grafikbibliotek som innehåller regler och tillgångar. Detta är gratis att använda i sina applikationer och Det hjälper till vid ritning av grafik i t.ex. 3D. Dock måste hårdvarutillverkare få licens för användning. För mer information se [2] och [3]. Innan OpenGL skapade hårdvarutillverkarna sina egna grafikbibliotek. Mjukvarutillverkarna fick då skapa flera olika versioner för att applikationerna skulle passa olika hårdvaruplattformar. Denna situation ledde till att det blev dyrt för mjukvarutillverkarna samt att det även var väldigt tidskrävande att konvertera till olika plattformar. [0]Silicon Graphics Incorporated (SGI), som ligger bakom OpenGL, såg då att det fattades en standard för grafik och bestämde sig då för att leda en industriell grupp för att skapa en sådan standard [8]. 4.5.2 X3D (extensible 3D) X3D är en vidareutveckling av VRML. X3D är baserat på XML [9] och avsikten med det är att det lätt ska gå att utvidga med nya funktioner. I X3D finns alla funktioner som finns i VRML 1 och VRML 2. Några saker som X3D är bättre på är ljushantering och möjligheten att skapa större mer interaktiva världar. 4.6 Försök till förbättring av modellen 4.6.1 Inledning Vi bestämde oss för att göra ett försök med att köra runt med den robot som skapat den virtuella världen vi använde oss av. Anledningen till att vi ville göra det beror på att vi tyckte att den virtuella världen kunde ha blivit mer komplett om man kört mer noggrant med roboten. Vi bestämde oss då för att köra igenom den nybyggda delen av[0] universitets tekniksektion. Vi ansåg även att om vi fick allting att fungera så kunde vi lägga till den gamla delen och på så sätt få en komplett kopia av första våningen. 4.6.2 Kalibrering För att kunna genomföra robotkörningen så var vi tvungna att ställa in kamerorna. Detta gjorde man genom att koppla in en skärm samt tangentbord och mus. Sedan startade man ett program som gjorde att man kunde kontrollera de olika kamerorna, det vill säga omnikameran och kameran man såg igenom och på så vis ställa in de i optimala lägen. Eftersom vi inte hade använt roboten förut så fick vi en genomgång i användning av Henrik Andreasson, vid AASS. 11

4.6.3 Robotkörning De resultat vi fick var inte riktigt de vi hade hoppats på. Då vi tog detta som ett sidoprojekt med en begränsad tidsram så skulle allt behöva fungera direkt, vilket det inte gjorde. Med tanke på att det finns ett stort antal studenter på skolan var vi tvungna att köra roboten på senare delen av eftermiddagen då lokalerna är tomma. Första gången vi körde roboten uppstod vissa problem. Vi tappade kontakten med den då vi inte visste hur begränsad räckvidd radiolänken hade och fick börja om flera gånger och sedan tog batterierna slut. Vid andra försöket ställde vi klientdatorn på en vagn så att vi hela tiden kunde hålla oss i närheten av roboten så att vi inte skulle få problemet med att tappa kontakten igen. Istället tog batterierna slut igen. Detta berodde antagligen på att eftersom andra examensarbetare använt sig av roboten till olika syften så att den inte hunnit ladda upp sig ordentligt. Vi bestämde oss då för att göra ett tredje och sista försök. För att inget problem skulle uppstå bestämde vi oss för att körde roboten en söndag då ingen var i skolan. Vi gick även dit på lördagen för att se till att roboten skulle vara ordentligt laddad till vår körning. Körningen fungerade perfekt till en början och vi körde även in på ett kontor för att sedan kunna göra en kopia av det. När vi sedan kom ut i den stora korridoren så hade lasern, av någon anledning, börjat scanna området snett. Då vi nu gjort tre olika försök och stött på problem varje gång valde vi att gå vidare med vår huvuduppgift att förbättra den existerande modellen. Figur 4: Mikael och PeopleBot Figur 5: John kör robot. 12

5 Resultat 5.1 Katalogstruktur Så här ser den nuvarande strukturen ut. //root Här ligger map.wrl //root/wall Här ligger väggbilderna //root/floor Här ligger golvbilderna //root/floor Här ligger även en floor.wrl som sätter ihop golvbilderna. Denna används sen av map.wrl istället för att ladda bilderna separat. //root/misc Här ligger övriga texturbilder //root/dok Här ligger dokumentation för projektet. 5.2 Åtgärda bristerna De områden som vi åtgärdat är: Verkstadsrummet i AASS. Kontorskorridoren. Utanför hörsal T. Mot äldre delen av Teknikhuset. Korridoren mot prefektens rum. Justering har skett på de flesta väggar då det ofta var tomrum mellan väggarna. Alla ingångar till kontoren har breddats så att man kan gå in i dem. Alla golv är utbytta mot bättre bilder som vi tog med framåtkameran vid vår robotkörning. Bänken i cafeterian är sänkt till normal höjd. Den var tidigare lika hög som väggarna. Bord är tillagda i cafeterian och konferensrummet. 5.3 Red ut utvecklingsmöjligheterna Oftast gör man 3D-modeller i program som Maya 3D [13], LightWave 3D [20] och liknande program. De 3Dfiler man får kan sedan inte läsas av webbläsare. För att kunna visa upp saker, skapade i dessa program, konverterar man filerna till VRML. Det är inte vanligt att man gör tvärtom eftersom orginalmodellerna skapade i program som 3DStudioMax oftast har bättre kvalitet. Att omvandla från VRML till någon annan sorts 3D-format skulle vara som att konvertera en JPG-fil till en BMP-fil, d.v.s. att gå från ett mindre format till ett större. De flesta VRML-konverterare vi har hittat konverterar bara åt ett håll, från andra format till VRML. Det fanns däremot program som kunde konvertera VRML till X3D eftersom det är så pass likt. 3DWin4 är det enda program som vi har hittat som kan konvertera VRML till flertalet olika filformat, såsom DirectX (*.x), Quake2 (*.md2), OpenGL (*.cpp) och olika 3D-program. 5.3.1 OpenGL 3DWin4 klarar av att konvertera VRML till en grundfil för OpenGL, men man måste fortfarande lägga till kod för att det ska bli körbart. Om man har programmerat OpenGL innan torde detta inte vara något problem. Man måste emellertid registrera programmet för 40 för att få med alla funktioner. Den viktigaste funktionen som saknas i den oregistrerade version är att man inte får med några texturer då konverteringen görs. Vid e-mail-kontakt med utvecklaren av detta program förklarade han att man ändå kan prova programmet även fast det inte är registrerat, man ska då istället få grå objekt. Eftersom man fortfarande måste lägga till kod för att få det körbart ansåg vi att vi inte skulle kunna göra ett test att få den konverterade filen körbar. Att sätta sig in i OpenGL skulle dra ut på tiden på detta. [0]Vi har inte provat det praktiskt, men vi tror att Win3D och OpenGL kan vara en framkomlig väg. 13

5.3.2 X3D Det finns flera program som konverterar VRML till X3D. Då detta är en utveckling av VRML kan man tyvärr inte göra en egen applikation av detta, utan man måste köra det i en webbläsare. Detta kan sätta begränsningar på vilken sorts produkt man kan skapa. 5.3.3 Övrigt Man kan exportera till fler filformat med 3DWin4, som t.ex. DirectX. DirectX är Microsofts grafikbibliotek vilket kan tänkas vara en möjlig utvecklingsplattform. Vi försökte även konvertera till Quake2-format i hopp om att detta skulle ge oss en karta som man kan ladda in i spelet, det var dock inte fallet. Det verkar som funktionen finns för att göra om 3DStudioMax-filer till spelfiler för Quake. Man kan även exportera till format för programmen 3DStudioMax och Autocad. Då dessa program är dyra har vi inte testat dem praktiskt, men enligt vår uppfattning så är de program mer inriktade på att skapa enkla objekt eller effekter och inte större världar. Det gör dem ointressanta för spelutveckling 5.4 Produktifieringsidéer 5.4.1 Spel Man kan lätt skapa snygga och realistiska spelmiljöer. Ett exempel kan vara att skapa något slags shoot- em-upspel där man skjuter på folk i skolan, kanske lärare skjuter på studenter eller vice versa. Ett annat exempel är att man skapar något slags rollspel, fast större världar skulle då krävas. 5.4.2 Aktiva världar När man har en virtuell värld skulle man kunna skapa ett interaktivt samhälle där folk kan träffas. Varje person får välja hur man själv ska se ut, till exampel en hund eller katt. Man ser sen alla de andra som är inne i världen och man kan där vandra runt och prata med de man vill. Här kan man skapa världar som endast existerar i fantasin eller försöka simulera korrekta världar. 5.4.3 Larmsimulering När nya studenter anländer till skolan har de troligtvis ingen större aning om var de ska ta vägen om någonting skulle hända, t.ex. en brand. Med hjälp av en VRML-modell av skolan skulle man då kunna visa närmaste utgång. Det går även att göra en animering så man kan se var man ska springa, så man känner ingen sig när det händer någonting. 5.4.4 Kartor Med hjälp av VRML-kartor skulle man kunna lägga upp allting på Internet så till exempel nya studenter kan ta reda på vilken lektionssal de ska vara i. Man kan då skriva in vilken sal man ska vara i sen kanske man kan börja med att få en översiktsbild med streckad linje till rätt sal. Man kan även ha möjligheten att från översiktsbild åka ner så att man är i första persons vy. Då kan man följa efter den sträckade linjen för att hitta rätt, antingen genom att gå själv eller med hjälp av automatik På detta sätt får man en bättre koll på var man ska, man kan se så kallande landmärken så att när man själv ska gå där så känner man igen sig på tavlor och liknande. Ett annat exempel kan vara att man gör en kopia av en flygplats. Där kan man lätt se var man befinner sig samt vart man ska ta vägen. 14

5.5 Utdata Utav detta arbete har följande filer och dokument kommit: Denna rapport som ni läser, som går att hitta på Tekniska institutionens hemsida. En zip-fil som innehåller alla filer för den färdiga kartan. Det står i uppgiftsbeskrivningen att det skulle skrivas ett systemdokument. I samråd med vår handledare beslöt vi oss för att inte utföra den uppgiften. 15

6 Diskussion 6.1 Om 3D-Kartor Möjliga utvecklingsidéer för kartor av detta slag finns. För att de ska kunna användas fullt ut skulle man behöva utveckla själva tekniken för att göra dessa 3D-kartor. Dels skulle programmet på roboten behöva byggas ut med fler funktioner och man bör investera i en bättre kamera så att de bilder man tar har en högre kvalitet. Då skulle man få bättre kvalitet på sina texturer för att kunna använda dem för att visa hur byggnader ser ut. 6.2 Möjlighet att använda detta material i PPH-kursen Om man vill fortsätta med vårt arbeta och vidareutveckla det så att det slutligen går att använda i PPH-kursen anser vi att det lättaste vore att konvertera kartan till OpenGL. Detta går att göra i 3DWin4. Man bör då vara duktig i OpenGL eftersom det tar tid att sätta sig in i det och hinna färdigställa en färdig produkt. Man kan också fortsätta och utveckla det i VRML då det finns viss script- och grafikhantering som det klarar av, dock inget avancerat. 6.2 Övrigt Då våra försök med att utvidga kartan misslyckades helt på grund av olika anledningar så är det en sak vi kunde ha gjort bättre. Dels så kunde vi ha frågat mer om hur den första körningen borde ha gjorts samt kollat upp de begränsningar som fanns på PeopleBot, En annan sak vi kunde ha gjort annorlunda skulle ha varit att lägga ner mer tid på OpenGL och försöka få fram något konkret utav det. Nu splittrade vi oss och tittade på andra idéer trots att vi tidigt såg att OpenGL passade bra till det vi försökte göra. 16

7 Referenser [1] 3D Modeling of Indoor Environments http://www.gris.uni-tuebingen.de/~biber/indoor3d/ (040410) Information [2] Om OpenGL http://www.opengl.org (040429) [3] OpenGL http://www.whatis.com sökord: OpenGL (040429) [4] VRML http://www.whatis.com sökord: VRML (040410) [5] The VRML Works http://vrmlworks.crispen.org/faq/index.html (040415) [6] SGI OpenGL http://www.sgi.com/software/opengl/ (040502) [7] OpenGL Introduction http://www.eecs.tulane.edu/www/terry/opengl/ (040429) [8] SGI OpenGL http://www.sgi.com/software/opengl/ (040502) [9] Simple Introduction to X3D http://3dgraphics.about.com/library/weekly/aa080900a.htm (040416) VRML-tutorials på Internet [10] Floppys web3d guide http://web3d.vapourtech.com/ (040411) [11] Tutorial VRML 101 http://3dgraphics.about.com/library/bltutorial.htm (040412) För program och bra länkar [12] Web3D Consortium http://www.web3d.org (040415) Programvara [13] Maya http://www.alias.com/eng/products-services/maya/ (040515) [14] White Dune http://www.csv.ica.uni-stuttgart.de/vrml/dune/ (040415) [15] Cosmo Player http://www.karmanaut.com/cosmo/player/ (040410) [16] Cortona VRML Client http://www.parallelgraphics.com/products/cortona/ (040412) [17] 3DWin http://www.tb-software.com/ (040509) [18] Vizx3D http://www.vizx3d.com (040420) [19] VRWave http://www.iicm.edu/vrwave (040512) [20] LightWave 3D http://www.newtek.com/products/lightwave/index.php (040515) 17

Bilaga: Bilder före och efter förbättring Figur 6 - Vy mot Hörsal T - Före Figur 7 - Vy mot Hörsal T - Efter Figur 8 - Vy mot lärarrummen - Före Figur 9 - Vy mot lärarrummen - Efter 18

Figur 10 - Översiktsvy från Hörsal T - Före Figur 11 - Översiktsvy från Hörsal T - Efter 19

Figur 11 - Översiktsvy från lärarrummen - Före Figur 12 - Översiktsvy från lärarrummen - Efter 20

Figur 13 - Vy ovanifrån - Före Figur 14 - Vy ovanifrån - Efter 21