Corso Base Realtà Aumentata | Introduzione (1 di 3)armandocarcaterra
Obiettivo
Illustrare questo nuovo mondo, descrivendone le caratteristiche ed analizzandone i vari aspetti.
Argmenti:
- Definizione
- Differenze tra AR e VR
- Cenni storici e Sviluppo delle Tecnologie
- Tipi di AR
- Analisi di Mercato e Ciclo di vita
- Dispositivi Hardware
OSC Innovation: company presentation.
We are an innovative atelier aimed at developing solutions at the forefront of technology to serve diverse industries and business needs: Robotics, AI, Digital Applications, Augmented and Virtual Reality and Tech Event Service.
ITALIAN INTERACTION DESIGN DAY Firenze 19.06.2015Roberto Fazio
Un giorno di talks, workshops e tavola rotonda dedicato ai professionisti che lavorano all’intersezione tra arte, tecnologia e design organizzato dallo Studio Roberto Fazio
L’evento è totalmente sostenuto dagli stessi speaker.
Ingresso gratuito per il pubblico con 60 posti limitati prenotabili su Eventbrite.
http://www.i-i-d-d.org/
Corso Base Realtà Aumentata | Introduzione (1 di 3)armandocarcaterra
Obiettivo
Illustrare questo nuovo mondo, descrivendone le caratteristiche ed analizzandone i vari aspetti.
Argmenti:
- Definizione
- Differenze tra AR e VR
- Cenni storici e Sviluppo delle Tecnologie
- Tipi di AR
- Analisi di Mercato e Ciclo di vita
- Dispositivi Hardware
OSC Innovation: company presentation.
We are an innovative atelier aimed at developing solutions at the forefront of technology to serve diverse industries and business needs: Robotics, AI, Digital Applications, Augmented and Virtual Reality and Tech Event Service.
ITALIAN INTERACTION DESIGN DAY Firenze 19.06.2015Roberto Fazio
Un giorno di talks, workshops e tavola rotonda dedicato ai professionisti che lavorano all’intersezione tra arte, tecnologia e design organizzato dallo Studio Roberto Fazio
L’evento è totalmente sostenuto dagli stessi speaker.
Ingresso gratuito per il pubblico con 60 posti limitati prenotabili su Eventbrite.
http://www.i-i-d-d.org/
Aumentare l'esperienza. Applicazioni mobile di realtà aumentata nello spazio ...Marco Carboni
Il lavoro mira ad esaminare la tecnologia definita come realtà aumentata (o AR dall'inglese augmented reality), analizzando, da una parte l'infrastruttura tecnica che la costituisce e dall'altra i diversi processi che ne hanno segnato la storia fino allo stato attuale. In particolare verrà centrata l'attenzione sui fattori che hanno portato lo sviluppo dell'AR in mobilità su diversi dispositivi, dei quali verranno spiegate alcune applicazioni fruibili nello spazio urbano.
Il caso Azeindale sulla Realtà Aumentata, porta degli esempi di come il Marketing stia letteralmente cambiando assieme alle tecnologie moderne.
Corso di Economia dell'Innovazione 2011/2012,
a cura del Professor Savino Santovito, del
Cdl in Informatica e Tecnologia per la Produzione del Software,
Facoltà di Scienza Matematica Fisica Naturali,
Università degli Studi di Bari
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...Daniele Ferla
L’obiettivo di questa tesi (a cura di Daniele Ferla) è la realizzazione di una componente ad alto livello in grado di gestire la visualizzazione a video di ambienti 3D esterni. Si è quindi dovuto ricorrere alla creazione di quello che in gergo viene definito “motore grafico” e cioè una serie di classi, funzioni e quant’altro possa essere utile ad un programmatore che voglia avvicinarsi allo sviluppo di un videogioco e di una applicazione grafica in generale, senza essere a conoscenza di tutte le regole e le formule che ne derivano. Il motore quindi si occupa di tutte le metodologie inerenti il rendering della scena e la sua gestione.
Il progetto del motore grafico denominato Desdinova Engine risale a qualche hanno fa, precisamente nel maggio del 2000 quando venne iniziato il suo sviluppo in Visual C++ tramite le librerie OpenGL, in quel periodo molto in auge e utilizzate da parecchi produttori di grafica 3D. Con il passare del tempo però queste librerie hanno perduto il loro “fascino” anche perché poco aggiornate e utilizzate solo in ambiti specifici (rimangono comunque le librerie cross-platform più usate) e quindi la realizzazione del motore grafico si è diretta verso l’utilizzo delle più performanti, documentate e semplici Microsoft DirectX nella versione attuale 9.0c
Seppur a livello molto alto, le librerie della multinazionale di Redmond, non offrono tutto il necessario per la realizzazione di un prodotto finito semplice ed intuitivo ma, anzi, risultano essere “aperte” a nuove ottimizzazioni e utilizzi. Per questo, dunque, in questa tesi è stata sviluppata una libreria ancora più ad alto livello, avente come base le DirectX, ma finalizzate all’utilizzo più intuitivo e semplice del programmatore quale utente finale.
La seguente tesi (in bozza) non è mai stata pubblicata e non è un documento valido a fini pubblici in quanto non è mai stata discussa e valutata dalla commissione accademica.
Seminario tecnico del 25 febbraio 2014 realizzato da Romagna Innovazione in collaborazione con il Gruppo di Lavoro Ricerca e Sviluppo di Unindustria Forlì-Cesena
Aumentare l'esperienza. Applicazioni mobile di realtà aumentata nello spazio ...Marco Carboni
Il lavoro mira ad esaminare la tecnologia definita come realtà aumentata (o AR dall'inglese augmented reality), analizzando, da una parte l'infrastruttura tecnica che la costituisce e dall'altra i diversi processi che ne hanno segnato la storia fino allo stato attuale. In particolare verrà centrata l'attenzione sui fattori che hanno portato lo sviluppo dell'AR in mobilità su diversi dispositivi, dei quali verranno spiegate alcune applicazioni fruibili nello spazio urbano.
Il caso Azeindale sulla Realtà Aumentata, porta degli esempi di come il Marketing stia letteralmente cambiando assieme alle tecnologie moderne.
Corso di Economia dell'Innovazione 2011/2012,
a cura del Professor Savino Santovito, del
Cdl in Informatica e Tecnologia per la Produzione del Software,
Facoltà di Scienza Matematica Fisica Naturali,
Università degli Studi di Bari
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...Daniele Ferla
L’obiettivo di questa tesi (a cura di Daniele Ferla) è la realizzazione di una componente ad alto livello in grado di gestire la visualizzazione a video di ambienti 3D esterni. Si è quindi dovuto ricorrere alla creazione di quello che in gergo viene definito “motore grafico” e cioè una serie di classi, funzioni e quant’altro possa essere utile ad un programmatore che voglia avvicinarsi allo sviluppo di un videogioco e di una applicazione grafica in generale, senza essere a conoscenza di tutte le regole e le formule che ne derivano. Il motore quindi si occupa di tutte le metodologie inerenti il rendering della scena e la sua gestione.
Il progetto del motore grafico denominato Desdinova Engine risale a qualche hanno fa, precisamente nel maggio del 2000 quando venne iniziato il suo sviluppo in Visual C++ tramite le librerie OpenGL, in quel periodo molto in auge e utilizzate da parecchi produttori di grafica 3D. Con il passare del tempo però queste librerie hanno perduto il loro “fascino” anche perché poco aggiornate e utilizzate solo in ambiti specifici (rimangono comunque le librerie cross-platform più usate) e quindi la realizzazione del motore grafico si è diretta verso l’utilizzo delle più performanti, documentate e semplici Microsoft DirectX nella versione attuale 9.0c
Seppur a livello molto alto, le librerie della multinazionale di Redmond, non offrono tutto il necessario per la realizzazione di un prodotto finito semplice ed intuitivo ma, anzi, risultano essere “aperte” a nuove ottimizzazioni e utilizzi. Per questo, dunque, in questa tesi è stata sviluppata una libreria ancora più ad alto livello, avente come base le DirectX, ma finalizzate all’utilizzo più intuitivo e semplice del programmatore quale utente finale.
La seguente tesi (in bozza) non è mai stata pubblicata e non è un documento valido a fini pubblici in quanto non è mai stata discussa e valutata dalla commissione accademica.
Seminario tecnico del 25 febbraio 2014 realizzato da Romagna Innovazione in collaborazione con il Gruppo di Lavoro Ricerca e Sviluppo di Unindustria Forlì-Cesena
Realtà Virtuale per il Business | Il caso Siram Veolia | Visual Pro 360Visual Pro 360
Come la Realtà Virtuale sta cambiando Business ed Aziende.
Comunicazione interna, training & education, e-learnig, marketing, mobile applications.
Tutti i possibili campi di applicazione della VR per Aziende e non solo con forbici costi e casi di successo.
Entertainment e metaverso: come cambiano eventi, parchi e cinema con il virtualeFabio Lalli
Il web3 ed il metaverso si apprestano a diventare la prossima evoluzione di Internet, e grazie all’immersività abilitata da realtà aumentata e virtuale entreremo sempre più in un nuovo mondo integrato tra fisico virtuale.
Stiamo vivendo una fase importante. L’hype mediatico, le notizie e soprattutto i nuovi casi e progetti di grandi brand stanno accelerando l’adozione di nuove piattaforme e tecnologie. La maturità dei dispositivi AR/VR è avanzata, ma il limite rimane ancora la diffusione e l’accessibilità economica.
Il metaverso sta mettendo comunque le basi per una nuova trasformazione degli eventi e dell’intrattenimento, dei concerti, dei parchi a tema e del cinema e del teatro.
Come il metaverso e le tecnologie trasformeranno il mondo dell’entertainment?
Ecco alcuni esempi che ho selezionato per dare l'idea di immersività e sviluppo potenzialmente adottabile a livello di mercato con AR/VR, e non solo.
Internet degli Oggetti e Hardware SocialiLeandro Agro'
FESTIVAL DELLA CREATIVITA' 2009 a FIRENZE
Appuntamento con WideTag Inc., pionieristica azienda italo-californiana dedita alla Internet of Things: una sessione aperta sulle interfacce fisiche di nuova concezione collegate all’utilizzo dei social network; come nascono, come si progettano, come cambiano i rapporti tra le persone. Al centro del workshop i “social hardware” co-sviluppati con Nuzoo Srl. Al lavoro con voi, tra video e prototipi con cui sperimentare, ci saranno i video di Dario Violi (IxD Designer in MaisonThe e ToyMaker), le storie di Leandro Agrò (CEO, WideTag), l’elettronica di Stefano Avenia (CEO, Nuzoo).
Augmented Reality: guardare il mondo da un altro punto di vistaCodemotion
La presentazione di Paolo Maronne in occasione del Codemotion del 5 marzo 2011 http://www.codemotion.it
Cos'è e come funziona la tecnologia dell'Augmented Reality; quali tipologie di AR esistono; principali utilizzi e potenzialità future. Veloce carrellata sulle piattaforme di AR esistenti con uno zoom su Layar, una delle piattaforme più diffuse e complete. Illustrazione tecnica su come implementare una propria idea con Layar. Alla fine veloce carrellata su una implementazione reale realizzata dall'autore, che tutti i partecipanti potranno provare in loco col proprio telefonino iPhone o Android.
Similar to GoogleVirtualRealityVRSoftwareDevelopmentKitSDKforAndroid (20)
1. Percorsi di Istruzione e Formazione Tecnica Superiore (IFTS) 2015
Rif. PA 2015-4256/RER approvato con DGR 907 del 13/07/2015.
Tecnico per lo sviluppo di applicazioni
informatiche
per l'Internet delle cose con linguaggio java
Google Virtual Reality (VR) Software Development
Kit (SDK) per Android
Ilze Silina
2. Introduzione
Le finestre, la scrivania, il cursore che segue il mouse, il cestino, l'assistente vocale,
tutte le evoluzioni dell’interfaccia uomo-macchina-rete sono sempre state legate ad
idee provenienti dal mondo reale, idee che ci hanno sempre più allontanato dalla
prima e arcaica versione fatta di righe di testo ai più incomprensibili.
Ora la spinta a trasformare l’interfaccia da una superficie bidimensionale ad un
mondo in cui immergerci è forte più che mai. Tutto è accaduto per un motivo molto
semplice, un potente calcolatore oggi è alimentato a batteria ha un monitor con
infiniti colori e ottima risoluzione, è sempre connesso al web e pesa intorno ai 150
grammi. Caratteristiche che ci permettono di infilare il calcolatore in un “vecchio”
strumento stereoscopico simile ad un paio di occhiali. Ed eccoci, immersi in un
interfaccia che replica il mondo intorno a noi, sente i movimenti del capo e ci dà una
fortissima sensazione di immersività e reattività. Che sia questo la futura modalità di
interfacciarsi con le macchine e con la rete? Creare un mondo del tutto simile al
nostro dove poter camminare, scoprire e dove è più intuitivo ricordare dove si
trovano le cose e le persone (avatar) che ci interessano?
3. Realtà Virtuale
La realtà virtuale è una realtà simulata, un ambiente tridimensionale costruito al
computer che può essere esplorato e con cui è possibile interagire usando dispositivi
informatici – visori, guanti, auricolari – che proiettano chi li indossa in uno scenario
così realistico da sembrare vero.
Lo spazio virtuale creato attraverso i software è perfettamente adattabile alle
esigenze degli utenti: seguendo lo spostamento degli occhi o della testa, la
prospettiva degli oggetti e delle scene si modella a seconda del punto di vista, così
da offrire un'esperienza il più possibile immersiva e realistica.
Le prime tracce di quella che potremmo definire la realtà virtuale "moderna", invece,
si hanno nel secondo dopoguerra, quando alcuni scrittori fantascientifici iniziano a
immaginare e descrivere un mondo dominato da visori e altri dispositivi VR. Dagli
Anni '60, grazie anche agli sviluppi tecnologici registrati nel settore della
miniaturizzazione tecnologica, iniziano a comparire i primi dispositivi (non ancora
visori nel senso moderno del termine) capaci di far immergere l'utente in mondo
virtuale. Il primo in assoluto è il Sensorama, datato 1962, seguito negli anni
successivi dai prototipi realizzati da Ivan Sutherland ( è uno scienziato e informatico
statunitense, pioniere di internet, vincitore del Premio Turing nel 1988 per
l'invenzione del software e Sketchpad, predecessore delle interfacce maggiormente
utilizzate nella computer grafica. A lui si deve anche l'ideazione degli occhiali per la
realtà virtuale) con l’aiuto e la collaborazione del suo studente Bob Sproull.
4. Virtual Reality o realtà virtuale “moderna” ha le prime tracce nel secondo
dopoguerra, quando alcuni scrittori fantascientifici iniziano ad immaginare e
descrivere un mondo dominato da visori ed altri dispositivi VR. Dagli anno ‘60, grazie
anche agli sviluppi tecnologici registrati nel settore della miniaturizzazione
Sensorama
La prima "esplosione" commerciale della realtà virtuale si ha inizio negli Anni '80. Nel
1982, ad esempio, viene commercializzato l'Aspen Movie Map, un dispositivo VR
che permette di esplorare le piste sciistiche e la montagna di Aspen sia in estate sia
in inverno.
Aspen Movie Map
In quegli stessi anni Atari inaugura il suo laboratorio per lo sviluppo di giochi e
console VR, ma la bolla esplode presto: nonostante gli sforzi la tecnologia è ancora
troppo acerba per offrire delle simulazioni accettabili. Nella bolla, ad esempio, finisce
5. anche Sega, che prova più volte a realizzare prototipi di una console per videogame
a realtà virtuale, senza però trovare mai successo commerciale.
Sega VR
Dalla metà degli Anni '90 la realtà virtuale cade in una sorta di oblio, dal quale si
risveglia circa un decennio più tardi, quando delle piccole startup tornano a investire
nel settore.
Oggi la realtà virtuale trova applicazione in diversi ambiti. Dai videogiochi al cinema,
dall’archeologia alla medicina, dal turismo al settore militare. Tutto diventa possibile,
non ci sono limiti: sparare in prima linea, pilotare un jet, nuotare con gli squali,
visitare la Casa Bianca. Nella realtà virtuale non c’è niente di troppo pericoloso o
costoso che non si possa fare.
Quando si parla di realtà virtuale, il primo oggetto a cui pensiamo è il visore 3D, un
dispositivo a forma di casco o di occhiali che consente di vivere un’esperienza
sensoriale in un mondo “parallelo” ma tangibile. In questo campo le più grandi
aziende del settore tecnologico hanno giocato d’anticipo, sviluppando alcuni modelli
pensati per l’intrattenimento.
Samsung Gear VR
6. Samsung Gear VR, per esempio, è un visore per la realtà virtuale che consente di
giocare, vedere foto e video a 360 gradi. Pesa circa 300 grammi ed è dotato di un
giroscopio, un accelerometro e un sensore di prossimità. Per funzionare, Gear VR
deve essere collegato a uno smartphone. Esattamente come Google Cardboard, un
visore di cartone compatibile con dispositivi IOS e Android.Scaricando un’app
dedicata, puoi “entrare” nelle foto e nei video che hai realizzato, visitare la reggia di
Versailles o vedere da vicino altri monumenti e opere d’arte direttamente dal divano
di casa tua. Tra l’altro Google Cardboard è open source e Google ha creato un sito
apposito dove si possono scaricare i kit per realizzare cardboard.
Google Cardboard e Daydream
Invece i due migliori visori attualmente, che non hanno bisogno dello smartphone
però vanno collegati a un pc sono Oculus Rift e HTC Vive. Questi visori hanno un
loro “ambiente” interno che contiene dei giochi, foto, video ed altre app. Anche
Google sta lanciando il suo visore chiamato Daydream che dovrebbe uscire proprio
questo autunno. Daydream ha un ambiente tutto suo, come Oculus o Vive, però non
ha bisogno di pc, si collegherà ad uno smartphone che supporta Daydream ed ha un
suo telecomando per facilitare la navigazione all’interno del Daydream.
Oculus Rift
La realtà virtuale non è solo sinonimo di divertimento: può avere anche una valenza
culturale e divulgativa. Consente di visitare a distanza mostre, musei e siti
7. archeologici – questi ultimi ricostruiti in 3D esattamente come si presentavano secoli
fa -, viene utilizzata per formare giovani medici che possono ad esempio simulare
l’esecuzione di un intervento di chirurgia robotica per prendere dimestichezza con la
sala operatoria. O ancora, può essere impiegata – come già avviene in alcune parti
del mondo – per l’addestramento dei soldati che imparano così a pilotare un carro
armato o a muoversi su un terreno impervio senza uscire dalla caserma.
Google Virtual Reality(VR) Software Development Kit (SDK) for
Android
Prima di parlare del Google VR SDK, vorrei spendere due parole sul Android.
Android è un sistema operativo sviluppato da Google (ma ancora prima dalla
Android Inc.) e lanciato per la prima volta nel 2008. Diversamente dai sistemi
concorrenti principali, come iOS (Apple) e Windows Phone(Microsoft), Android
poggia le basi su una struttura open-source, presa a piene mani dal sistema Linux.
Grazie a questa sua natura, Android risulta molto flessibile per lo sviluppo di
software ad esso dedicato. Sebbene nelle sue prime incarnazioni fosse un sistema
piuttosto lento e instabile, si è evoluto rapidamente (ad oggi ci troviamo alla versione
7.0 Nougat), raggiungendo risultati molto apprezzabili a livello di prestazioni,
sicurezza, facilità d’uso e potenzialità, tanto da aver conquistato una enorme fetta di
utenza appassionata.
Google Virtual Reality (VR) Software Development Kit (SDK) sono delle API
(Application programming interface) create da Google per poter sviluppare le
applicazioni adatte per la realtà virtuale.
Il Google VR SDK per Android supporta sia Daydream che Cardboard, nel pacchetto
ci sono una semplice API per sviluppare le applicazioni da usare con Cardboard
viewer come anche l’API più complessa per sopportare i telefoni Daydream-ready ed
il controller Daydream.
Il Google VR SDK per Android consente di creare applicazioni che visualizzano
scene 3D con il rendering binoculare, il rendering audio spaziale, monitorare e
reagire ai movimenti della testa, e interagire con le applicazioni.
Invece il Google VR NDK (native development kit) per Android fornisce un API C/ C
++ per gli sviluppatori che scrivono codice nativo.
Gli sviluppatori che hanno familiarità con OpenGL possono iniziare creare
rapidamente applicazioni che utilizzano il VR Google VR SDK, semplificando comuni
attività di sviluppo VR come ad esempio:
● Correzione della distorsione delle lenti
● Audio spaziale
8. ● Monitoraggio dei movimenti della testa
● Calibrazione 3d
● Side-by-side rendering.
● La configurazione della geometria stereo
● Gestione degli eventi di user input
Sia software che hardware del Google VR SDK sono open source.
Per poter sviluppare le applicazioni con il Google VR SDK, bisogna assicurarsi che i
seguenti prerequisiti sono veri:
● avere a disposizione Android Studio, 1.0 o superiore;
● la versione 23 del SDK Android;
● gradle 23.0.1 o superiore. Android Studio vi permetterà di aggiornare se la
versione installata è troppo bassa;
● un dispositivo Android fisico con sistema operativo Android 4.4 (KitKat) o
superiore;
Nella creazione delle applicazioni con il contenuto della realtà virtuale, viene usato
Android Studios. Android Studio è un ambiente di sviluppo integrato (IDE) per lo
sviluppo per la piattaforma Android. È stato annunciato il 16 maggio 2013 in
occasione della conferenza Google I/O. Android Studio è disponibile gratuitamente
sotto licenza Apache 2.0 ed è stato progettato specificamente per lo sviluppo di
Android. È disponibile il download su Windows, Mac OS X e Linux, e sostituisce gli
Android Development Tools (ADT) di Eclipse, diventando l' IDE primario di Google
per lo sviluppo nativo di applicazioni Android.
Gradle invece è il software multipiattaforma e gratuito, tra i più avanzati attualmente
disponibili nell’ambito della build automation. I prodotti di build automation sono tool
pensati per automatizzare compilazione, packaging dei binari, esecuzione dei test
automatizzati, deployment e la documentazione del progetto.
Google VR SDK al suo interno contiene seguenti sei pacchetti :
● com.google.vr.sdk.base codice principale del Google VR API;
● com.google.vr.sdk.audio codice per suono 3D-spazializzato:
● com.google.vr.sdk.controller codice per usare il telecomando Daydream con
l’applicazione VR;
● com.google.vr.sdk.widgets.common codice condiviso per embeddare il
contenuto della vista VR;
● com.google.vr.sdk.widgets.pano codice per VR view Panorama Widget.
● com.google.vr.sdk.widgets.video codice per VR view Video Widget.
9. Creazione applicazione Android contente una foto panoramica
Per creare un’applicazione mobile per Android, che mostra una foto sferica, ho usato
la classe VrPanoramaView, essa è un’API sperimentale che rende una foto sferica,
sia in formato mono che stereo. Formato mono è una singola panoramica
equirettangolare, mentre stereo è composta da due foto panoramiche
equirettangolari assemblate insieme una sopra l’altra.
Nell'immagine sotto vedete un semplice layout e la diagramma di casi d’uso
dell’applicazione.
Schermata principale dell’applicazione e diagramma di casi d’uso
Come suggerisce il diagramma dei casi d’uso, le attività che possono essere svolte
con l’applicazione sono:
● la visualizzazione della fotosfera sia con un visore e quindi nella modalità VR
sia fullscreen,
● aprire un link esterno, ogni bottone della layout porta ad un link esterno.
Prima di parlare dei passi successivi nella creazione della applicazione VR, vorrei
soffermarmi un attimo per raccontare dei formati dell'immagine che sono supportati
dalle API VrView.
I requisiti specifici della configurazione dell'immagine sono seguenti :
● le immagini possono essere salvati nei formati png, jpeg o gif. Google
consiglia di usare il formato jpeg per una migliore compressione;
● per garantire la massima compatibilità e prestazioni, dimensioni dell'immagine
dovrebbero essere potenze di due (ad esempio, 2048 o 4096);
● le immagini mono dovrebbero avere un rapporto 2:1 aspect ratio (ad esempio,
4096 x 2048);
● le immagini stereo dovrebbero avere un rapporto 1:1 aspect ratio (ad
esempio, 4096 x 4096);
10. ● le immagini devono essere immagini equirettangolari per poter essere
visualizzate in vista VR.
Ora che sappiamo quale formato di immagine si aspetta API, possiamo configurare i
file di gradle. Come prima cosa bisogna aggiungere le necessarie librerie per poter
usare le API di VrView. Quindi queste librerie vanno aggiunte negli build script di
Gradle. Nel file settings.gradle aggiungiamo seguente codice :
include ':app'
include ':gvr-android-sdk/libraries:audio'
include ':gvr-android-sdk/libraries:base'
include ':gvr-android-sdk/libraries:common'
include ':gvr-android-sdk/libraries:commonwidget'
include ':gvr-android-sdk/libraries:panowidget'
include ':gvr-android-sdk/libraries:videowidget'
Poi bisogna aggiungere i seguenti componenti della Google VR SDK nelle
dependence del progetto (nel modulo della app dentro file build.gradle):
● compile project(':gvr-android-sdk/libraries:common')
● compile project(':gvr-android-sdk/libraries:commonwidget')
● compile project(':gvr-android-sdk/libraries:panowidget')
Successivamente possiamo aggiungere il layout della foto panoramica nel nostro
activity_main.xml file di layout nel seguente modo:
<com.google.vr.sdk.widgets.pano.VrPanoramaView
android:id="@+id/pano_view"
android:layout_weight="5"
android:layout_height="0dp"
android:layout_margin="5dip"
android:layout_width="match_parent"
android:scrollbars="none”/>
Il tag principale in questo codice è il tag dell'id, che ci servirà per inizializzare la
classe VrPanoramaView più avanti. Il resto dei tag sono opzionali rispetto al risultato
voluto.
Dopo che abbiamo configurato la vista del VrPanoramaView nel xml file, passiamo
alla implementazione delle API.
Nella diagramma delle classi sotto è illustrato come le diversi classi dell'applicazione
si sono collegate tra di loro. Sia classe MainActivity che la classe ImageLoaderTask
11. usano le due classi VrPanoramaView e VrPanoramaView.Options dallo package
com.google.vr.sdk.widgets.pano. La classe MainActivity usa la classe
ImageLoaderTask insieme con le classi AsyncTask e WeakReference per caricare la
foto.
Diagramma delle classi
La classe MainActivity() ha i seguenti metodi :
● onCreate() - carica UI (user interface) definita nel nostro file activity_main.xml
attraverso l’istruzione setContentView(R.layout. activity_main).Dopo
di che creiamo lo spazio dove caricheremo la nostra foto panoramica
attraverso seguente istruzione - panoWidgetView = (VrPanoramaView)
findViewById(R.id. pano_view), qui usiamo la classe VrPanoramaView()
che abbiamo importato prima; dentro questa classe ci sono tanti altri metodi
per personalizzare la visualizzazione della panoramica, per esempio, si
possono togliere i bottoni, cambiare background e tanto altro. Invece con il
metodo loadPanoImage() carichiamo l’immagine.
● loadPanoImage() invece si occupa di assicurarsi che non ci siano rimasti
task non cancellati, definisce il formato dell’immagine (mono o stereo), passa
12. il nome dell'immagine dalla cartella assets e crea un nuovo oggetto
ImageLoaderTask (Caricatore dell’immagine) che caricherà l’immagine nel
metodo onCreate().
ImageLoaderTask() è la classe che si occupa del caricamento dell’immagine questa
classe estende la classe AsyncTask. AsyncTask si occupa di caricamento delle
immagini in un thread in background senza interferire con il main thread. In questo
modo il main thread è libero di gestire vari eventi della interfaccia, es., clic sullo
schermo, invece di occuparsi dello caricamento dell'immagine e dare l’impressione
all’utente che l'applicazione si blocchi.
I parametri da usare nella AsyncTask sono <Parametri, Progresso, Risultato>. Come
i parametri passeremo l’AssetManager che ci aiuterà a caricare la foto dalla cartella
assets, progress non lo implementiamo ed il risultato sarà il valore tornato dai
Bitmap da passare al main thread.
Per capire a cosa servono questi parametri vediamo i metodi principali di
AsyncTask:
1. onPreExecute(): eseguito sul thread principale, contiene il codice di
inizializzazione dell’interfaccia grafica (per esempio la disabilitazione di un
bottone);
2. doInBackground(): eseguito in un thread in background si occupa di
eseguire il task vero e proprio. Accetta un parametro di tipo Params (il
primo generic definito) e ritorna un oggetto di tipo Result;
3. onPostExecute(): eseguito nel thread principale e si occupa di aggiornare
l’interfaccia dopo l’esecuzione per mostrare i dati scaricati o calcolati nel
task che vengono passati come parametro.
Quindi useremo il metodo doInBackground per caricare la foto e metodo
onPostExecute per passare la foto caricata al main thread.
La classe ImageLoaderTask() al suo interno ha i seguenti metodi:
● imageLoaderTask() quale è il costruttore della classe, dove definiamo dove e
quale immagine caricare. Per la VrPanoramaView useremo la classe
WeakReference perché l’immagine potrebbe essere distrutta durante
caricamento, questo può succedere cambiando l’orientazione di telefono.
Usando WeakReference l’immagine verrà raccolta subito nel garbage
13. collector, invece che aspettare che sia distrutta tramite AsyncTask. Per
evitare che l’immagine venga ricaricata ogni volta che il device viene ruotato,
metteremo nella cache l’ultima immagine caricata. Lo faremo salvando il
nome dell’ultimo asset caricato e risultante bitmap. Dato che queste istanze
sono final, hanno bisogno di essere inizializzate nel costruttore.
● doInBackground() il metodo che si occupa del caricamento dell'immagine nel
background. Per farlo abbiamo salvato l’immagine nella cartella assets
(attività) ed con l’aiuto del AssetManager avremo un InputStream per
immagine. Dopo di chè passeremo questo flusso di input al BitmapFactory
che carica l’immagine e la restituisce indietro al thread principale. Nel caso di
problemi, lo loggheremo e ritorneremo il valore del null al posto dell’immagine.
Controlliamo l’ultima immagine caricata prima di aprire il flusso in modo da
conservare l’utilizzo della memoria.
● onPostExecute() una volta che il lavoro di background è fatto, il metodo
OnPostExecute (Bitmap bitmap) viene chiamato dal AsyncTask sul thread
principale. Qui, passeremo la bitmap al VrPanoramaView.
E così abbiamo creato un’applicazione che visualizza una foto sferica dentro al
nostro dispositivo Android.
14. Conclusioni
La realtà virtuale non è più una novità, e come tutte le tecnologie di oggi si sta
sviluppando in fretta. Solo pochi anni fa riprendere una foto sferica era una cosa da
professionisti, oggi lo si può fare chiunque con uno smartphone e una delle tanti
applicazioni dedicate.
Poi c’è tutto l’immenso mondo di gaming, che grazie alla realtà virtuale attrae
sempre di più. Infatti, in ottobre 2016 Sony mette in vendita il nuovo visore per
PlayStation 4 e la loro promessa suona così “vivrai il gioco come mai prima d'ora.
Sarai direttamente al centro dell'azione, vivendo ogni dettaglio di nuovi spettacolari
mondi, tanto che ti sembrerà di essere davvero dentro al gioco.”.
Poi c’è il HoloLens di Microsoft, che trasforma la realtà in ologrammi, che più che
realtà virtuale diventa una realtà mista, tra realtà ed ologrammi.
Ed allora mi chiedo, quale sarà il prossimo grande passo della realtà virtuale? Forse
sarà la sfera la prossima forma del web e noi saremo il suo centro?!