POLITECNICO DI MILANO CorsodiLaureaMagistraleinIngegneriaInformatica DipartimentodiElettronica,InformaticaeBioingegneria Soluzione alla realizzazione di tour immersivi per dispositivi di Realtà Virtuale Relatore: Prof. Luciano Baresi Tesi di Laurea di: Alex Piermatteo Matricola: 804788 Anno Accademico 2014-2015 Ringraziamenti Non sono particolarmente bravo nel fare discorsi ma arrivato alla conclu- sione di questo percorso di studi sento il bisogno di dire grazie ad alcune persone. Per cominciare, il professor Luciano Baresi che mi ha lasciato completa li- bertànellosvolgimentodellatesiehapermessoquestolavorocheracchiude perfettamentelemiepassioni. Un ringraziamento davvero speciale va poi ai miei genitori, perchè hanno reso questo traguardo possibile ma soprattutto perchè mi hanno dato pre- ziosiconsiglidivitacheporteròsempreconme. Un immenso grazie ai miei amici dell’università, che hanno condiviso con me le soddisfazioni e le difficoltà di questo corso di studi. Con voi ho tra- scorso momenti indimenticabili e spero che ne passeremo molti altri insie- me. Grazie agli amici di Milano e di Pescara, con cui sono rimasto legato e che mi auguro di avere sempre al mio fianco. Nello specifico ringrazio Fabio, il fratellochenonhomaiavuto. Infinelaragazzacheamo,Chiara. Tumihaisempresostenuto,conosciogni miosegretoesenzaditenonsareicertamentelapersonachesonoora. UnultimissimoringraziamentovaancheairagazzidelMogamo,checonla loroottimabirrahannoalleviatolefatichediquestacarrierauniversitaria. i Indice Ringraziamenti i Sommario ix 1 Introduzione 1 2 Statodell’arte 7 2.1 Letipologieditourvirtuali . . . . . . . . . . . . . . . . . . . . 7 2.1.1 Web&Application . . . . . . . . . . . . . . . . . . . . . 7 2.1.2 Larealtàimmersiva . . . . . . . . . . . . . . . . . . . . 10 2.2 Letipologiediimmaginiutiliperuntourvirtuale . . . . . . . 12 2.3 Catalogazionedeiservizietoolesistentipercostruireuntour dazero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.1 Servizionline . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.4 IdispositiviVR:tipologieelasceltadelGear . . . . . . . . . . 19 2.5 GearVR:SDKepossibiliframeworkaconfronto . . . . . . . . 22 3 Ilservizioproposto 27 3.1 Problemi dello stato dell’arte e obiettivi della soluzione pro- posta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2 Requisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.1 Requisitifunzionalieattori . . . . . . . . . . . . . . . . 29 3.2.2 Sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.3 Descrizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.3.1 EntitàeRelazioni . . . . . . . . . . . . . . . . . . . . . . 32 iii 4 ArchitetturadelsistemaREST 35 4.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.2 Librerieutilizzate . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.2.1 Node.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.2.2 Express.js . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.3 MongoDB . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.4 Angular.js . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.2.5 Bootstrap . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.3 Architettura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.3.1 Strutturadelprogetto . . . . . . . . . . . . . . . . . . . 43 4.3.2 Cartellaapp . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.3.3 Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.3.4 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.4 CartellapubliceFrontEnd . . . . . . . . . . . . . . . . . . . . . 56 4.4.1 app.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.4.2 CartellaJS . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.4.3 CartellapagesedInterfacciagrafica . . . . . . . . . . . 63 4.5 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5 GearVRnelprogetto 69 5.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.2 SviluppoconUnity . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.2.1 CartellaAssetsestrutturadelprogetto . . . . . . . . . 71 5.2.2 Fasidisviluppo . . . . . . . . . . . . . . . . . . . . . . . 74 5.3 DebugconilGearVR . . . . . . . . . . . . . . . . . . . . . . . . 82 5.3.1 UtilizzodiADBinWiFi . . . . . . . . . . . . . . . . . . 83 5.3.2 Logcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.4 Ottimizzazionedellamemoriaedeitempidicaricamento . . . 84 5.4.1 Flussologicodelcaricamentodiunascena . . . . . . . 86 5.4.2 Perfezionamenti . . . . . . . . . . . . . . . . . . . . . . 87 5.5 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6 Utilizzodelleinterfacceclient 91 6.1 Costruzionediuntourvirtuale . . . . . . . . . . . . . . . . . . 91 6.2 Visualizzazionediuntour,clientweb . . . . . . . . . . . . . . 95 iv 6.3 Visualizzazionediuntour,clientGearVR . . . . . . . . . . . . 98 7 Conclusioniesviluppifuturi 103 7.1 Valutazionequalitativaeconclusioni . . . . . . . . . . . . . . . 103 7.2 Sviluppifuturi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Bibliografia 107 v vi Elenco delle figure 2.1 TourVirtualeWebItalo . . . . . . . . . . . . . . . . . . . . . . . 8 2.2 Mappa3DExpoMilano2015eselettorescene . . . . . . . . . 9 2.3 ExpoMilano2015,visualizzatorewebtourvirtuale . . . . . . 10 2.4 EsempiopuntamentohotspotMatterportVRShowcase . . . . 11 2.5 EsempiopuntamentohotspotMatterportVRShowcase . . . . 12 2.6 Esempiodipanoramacilindrico . . . . . . . . . . . . . . . . . . 13 2.7 Esempiodipanoramasfericooequirettangolare . . . . . . . . 14 2.8 360cities,visualizzatorewebtourvirtuale . . . . . . . . . . . . 15 2.9 360cities,mobileinvisualizzazioneperGoogleCardboard . . 16 2.10 krPano,editorsoftware . . . . . . . . . . . . . . . . . . . . . . . 19 2.11 SamsungGearVReOculusRiftDK2 . . . . . . . . . . . . . . . 21 2.12 EsempiodialcuneclassipresentinellaVrLibdiOculus . . . . 24 3.1 ModelloERdelsistema . . . . . . . . . . . . . . . . . . . . . . . 33 4.1 Architettuadelsistema,comeiframeworksiinterfaccianotra diloroformandoilMEANStack . . . . . . . . . . . . . . . . . 42 4.2 Strutturacartelleprototipo . . . . . . . . . . . . . . . . . . . . . 43 4.3 Relazione tra i file sulla GridFS e il modello Media, i colori evidenzianoleinterconnessionispiegatepocosopra . . . . . . 48 4.4 Strutturacartelleprototipo,latoclient . . . . . . . . . . . . . . 56 4.5 Trasformazionetraipuntidiunafotoelaconvenzioneutiliz- zataperlaposizionedeglihotspot . . . . . . . . . . . . . . . . 61 4.6 Schermatahome,piattaformaweb . . . . . . . . . . . . . . . . 64 4.7 Modaldelfileuploader,piattaformaweb . . . . . . . . . . . . 65 4.8 Dettaglio centrale dell’interfaccia per la generazione di un tourvirtuale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 vii 5.1 IDEdiUnityperlosviluppodell’applicativosuGearVR . . . 70 5.2 StrutturadelprogettoGearVR . . . . . . . . . . . . . . . . . . . 72 5.3 Esempiodiimmaginecubicacostruitasuunaimmaginedella terraequirettangolare . . . . . . . . . . . . . . . . . . . . . . . . 75 5.4 Proiezioniutilizzatepertrasformareunpuntodaduedimen- sioniatredimensioni . . . . . . . . . . . . . . . . . . . . . . . . 78 5.5 Costruzione del Canvas per la visualizzazione delle descri- zioniperglihotspotditipoInfo . . . . . . . . . . . . . . . . . . 80 5.6 Costruzione della MainScene, la Camera al centro è il pun- to di vista dell’utente posto davanti alle anteprime dei tour virtuali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5.7 Riduzione tempi di transizione tra una scena ed un’altra do- poleottimizzazionisulcodice . . . . . . . . . . . . . . . . . . . 89 6.1 Homedellapiattaformaweb . . . . . . . . . . . . . . . . . . . 92 6.2 GeneratoreTourVirtuali . . . . . . . . . . . . . . . . . . . . . . 93 6.3 FocussuglihotspotaggiuntinelgeneratorediTourVirtuali . . 93 6.4 Successonellaoperazionedisalvataggiodiuntourvirtuale . 94 6.5 FileUploaderperilcaricamentodiunafotoequirettangolare . 95 6.6 PresenzadiunnuovosegnapostoinHomedopolacreazione diunnuovotourvirtuale . . . . . . . . . . . . . . . . . . . . . 96 6.7 FirstScenedeltourvirtualeconhotspotditipo’Scene’ . . . . . 97 6.8 Secondascenadeltourvirtuale . . . . . . . . . . . . . . . . . . 97 6.9 FirstScenedeltourvirtualeconhotspotditipo’Info’ . . . . . . 98 6.10 Scena principale dell’applicativo per Gear VR, da qui vengo- noselezionatiitourvirtualidavisualizzare . . . . . . . . . . . 99 6.11 FirstScene del tour virtuale per Gear VR, con hotspot di tipo ’Scene’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 6.12 FirstScene del tour virtuale per Gear VR, con hotspot di tipo ’Info’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 6.13 Differenza tra hotspot inizialmente non puntato dal mirino e successivamenteselezionato . . . . . . . . . . . . . . . . . . . . 101 viii
Description: