SlideShare a Scribd company logo
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
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?
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.
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
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
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
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
● 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.
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);
● 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
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
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
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.
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?!

More Related Content

What's hot

La Realtà Aumentata
La Realtà AumentataLa Realtà Aumentata
La Realtà Aumentata
Lorenza Dellacasa
 
Realtà Aumentata
Realtà AumentataRealtà Aumentata
Realtà Aumentata
Alberto Fumagalli
 
La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...
La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...
La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...
Gianmarco Bassini
 
Aumentare l'esperienza. Applicazioni mobile di realtà aumentata nello spazio ...
Aumentare l'esperienza. Applicazioni mobile di realtà aumentata nello spazio ...Aumentare l'esperienza. Applicazioni mobile di realtà aumentata nello spazio ...
Aumentare l'esperienza. Applicazioni mobile di realtà aumentata nello spazio ...
Marco Carboni
 
Realtà Aumentata
Realtà AumentataRealtà Aumentata
Realtà Aumentata
Fabio
 
Realtà aumentata
Realtà aumentataRealtà aumentata
Realtà aumentata
Economia dell'Innovazione
 
Il Continuum Realtà aumentata-mista-virtuale
Il Continuum Realtà aumentata-mista-virtualeIl Continuum Realtà aumentata-mista-virtuale
Il Continuum Realtà aumentata-mista-virtuale
Laura Antichi
 
Realta virtuale e aumentata
Realta virtuale e aumentataRealta virtuale e aumentata
Realta virtuale e aumentata
T3basilicata
 
Depliant illustrativo sulla realtà aumentata
Depliant illustrativo sulla realtà aumentataDepliant illustrativo sulla realtà aumentata
Depliant illustrativo sulla realtà aumentata
Fabio
 
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Daniele Ferla
 
Arvrlantichi
ArvrlantichiArvrlantichi
Arvrlantichi
Laura Antichi
 
Realtà aumentata tecnologie ed applicazioni
Realtà aumentata tecnologie ed applicazioniRealtà aumentata tecnologie ed applicazioni
Realtà aumentata tecnologie ed applicazioni
RInnova Romagna Innovazione
 
interaction-design
interaction-designinteraction-design
interaction-designcrispinto
 

What's hot (14)

La Realtà Aumentata
La Realtà AumentataLa Realtà Aumentata
La Realtà Aumentata
 
Realtà Aumentata
Realtà AumentataRealtà Aumentata
Realtà Aumentata
 
La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...
La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...
La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...
 
Aumentare l'esperienza. Applicazioni mobile di realtà aumentata nello spazio ...
Aumentare l'esperienza. Applicazioni mobile di realtà aumentata nello spazio ...Aumentare l'esperienza. Applicazioni mobile di realtà aumentata nello spazio ...
Aumentare l'esperienza. Applicazioni mobile di realtà aumentata nello spazio ...
 
Realtà Aumentata
Realtà AumentataRealtà Aumentata
Realtà Aumentata
 
Realtà aumentata
Realtà aumentataRealtà aumentata
Realtà aumentata
 
Il Continuum Realtà aumentata-mista-virtuale
Il Continuum Realtà aumentata-mista-virtualeIl Continuum Realtà aumentata-mista-virtuale
Il Continuum Realtà aumentata-mista-virtuale
 
Realta virtuale e aumentata
Realta virtuale e aumentataRealta virtuale e aumentata
Realta virtuale e aumentata
 
Depliant illustrativo sulla realtà aumentata
Depliant illustrativo sulla realtà aumentataDepliant illustrativo sulla realtà aumentata
Depliant illustrativo sulla realtà aumentata
 
Realtà aumentata su dispositivi mobili
Realtà aumentata su dispositivi mobiliRealtà aumentata su dispositivi mobili
Realtà aumentata su dispositivi mobili
 
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
 
Arvrlantichi
ArvrlantichiArvrlantichi
Arvrlantichi
 
Realtà aumentata tecnologie ed applicazioni
Realtà aumentata tecnologie ed applicazioniRealtà aumentata tecnologie ed applicazioni
Realtà aumentata tecnologie ed applicazioni
 
interaction-design
interaction-designinteraction-design
interaction-design
 

Viewers also liked

Titulo tips
Titulo tipsTitulo tips
Titulo tips
Nathaly Neira Rojas
 
U1 a2 arte_cultura_araceli cardozo
U1 a2 arte_cultura_araceli cardozoU1 a2 arte_cultura_araceli cardozo
U1 a2 arte_cultura_araceli cardozo
araceli cardozo
 
Composición visual
Composición visualComposición visual
Composición visualGraciela2624
 
Recycling
RecyclingRecycling
P&C business interruption ten questions
P&C business interruption ten questionsP&C business interruption ten questions
P&C business interruption ten questions
Heath D. Owens, AAI, AFIS
 
Cómo nacen los pollitos
Cómo nacen los pollitos Cómo nacen los pollitos
Cómo nacen los pollitos
elisanchezcor
 
Para santiago agustín
Para santiago agustínPara santiago agustín
Para santiago agustínclaudiagg
 
2016 golf slideshow
2016 golf slideshow2016 golf slideshow
2016 golf slideshow
PUENTE Learning Center
 
Quel Pouvoir a le Politique ?
Quel Pouvoir a le Politique ?Quel Pouvoir a le Politique ?
Quel Pouvoir a le Politique ?
François Lebas
 
Nemanja Maslar-Thesis
Nemanja Maslar-Thesis Nemanja Maslar-Thesis
Nemanja Maslar-Thesis Nemanja Maslar
 
Taller 1-geovanna-guallichico-y-monica-amanta
Taller 1-geovanna-guallichico-y-monica-amantaTaller 1-geovanna-guallichico-y-monica-amanta
Taller 1-geovanna-guallichico-y-monica-amanta
Kary Geova
 
Colaborativo educacion ambiental
Colaborativo educacion ambientalColaborativo educacion ambiental
Colaborativo educacion ambiental
rocio andrea miranda
 
Ambiente de aplicación evelyn (1)
Ambiente de aplicación evelyn (1)Ambiente de aplicación evelyn (1)
Ambiente de aplicación evelyn (1)mary525
 
Manual 101 b-elizabeth
Manual 101 b-elizabethManual 101 b-elizabeth
Manual 101 b-elizabethelizabethmtz6
 
Smart alarm
Smart alarmSmart alarm

Viewers also liked (20)

Titulo tips
Titulo tipsTitulo tips
Titulo tips
 
U1 a2 arte_cultura_araceli cardozo
U1 a2 arte_cultura_araceli cardozoU1 a2 arte_cultura_araceli cardozo
U1 a2 arte_cultura_araceli cardozo
 
Composición visual
Composición visualComposición visual
Composición visual
 
Recycling
RecyclingRecycling
Recycling
 
P&C business interruption ten questions
P&C business interruption ten questionsP&C business interruption ten questions
P&C business interruption ten questions
 
Cómo nacen los pollitos
Cómo nacen los pollitos Cómo nacen los pollitos
Cómo nacen los pollitos
 
Para santiago agustín
Para santiago agustínPara santiago agustín
Para santiago agustín
 
DIS
DISDIS
DIS
 
2016 golf slideshow
2016 golf slideshow2016 golf slideshow
2016 golf slideshow
 
Quel Pouvoir a le Politique ?
Quel Pouvoir a le Politique ?Quel Pouvoir a le Politique ?
Quel Pouvoir a le Politique ?
 
Primer mapa
Primer mapaPrimer mapa
Primer mapa
 
Nemanja Maslar-Thesis
Nemanja Maslar-Thesis Nemanja Maslar-Thesis
Nemanja Maslar-Thesis
 
Taller 1-geovanna-guallichico-y-monica-amanta
Taller 1-geovanna-guallichico-y-monica-amantaTaller 1-geovanna-guallichico-y-monica-amanta
Taller 1-geovanna-guallichico-y-monica-amanta
 
Mi regalo.
Mi regalo.  Mi regalo.
Mi regalo.
 
RESUME
RESUMERESUME
RESUME
 
Oraciones
OracionesOraciones
Oraciones
 
Colaborativo educacion ambiental
Colaborativo educacion ambientalColaborativo educacion ambiental
Colaborativo educacion ambiental
 
Ambiente de aplicación evelyn (1)
Ambiente de aplicación evelyn (1)Ambiente de aplicación evelyn (1)
Ambiente de aplicación evelyn (1)
 
Manual 101 b-elizabeth
Manual 101 b-elizabethManual 101 b-elizabeth
Manual 101 b-elizabeth
 
Smart alarm
Smart alarmSmart alarm
Smart alarm
 

Similar to GoogleVirtualRealityVRSoftwareDevelopmentKitSDKforAndroid

Marta Leo smau 2015
Marta Leo smau 2015Marta Leo smau 2015
Marta Leo smau 2015
Marta Leo
 
(In)real: il mondo virtuale: AR e VR analisi e confronto nel rapporto con l'u...
(In)real: il mondo virtuale: AR e VR analisi e confronto nel rapporto con l'u...(In)real: il mondo virtuale: AR e VR analisi e confronto nel rapporto con l'u...
(In)real: il mondo virtuale: AR e VR analisi e confronto nel rapporto con l'u...
Lucrezia Bassani
 
Marta leo smau 2014
Marta leo smau 2014Marta leo smau 2014
Marta leo smau 2014
Marta Leo
 
ARt - Augmented Reality in Art
ARt - Augmented Reality in ArtARt - Augmented Reality in Art
ARt - Augmented Reality in Art
Matteo Angeli
 
Shopping in AR
Shopping in ARShopping in AR
Shopping in AR
Marzia Testa
 
Games In Tuscany INTERNET FESTIVAL 2015
Games In Tuscany INTERNET FESTIVAL 2015Games In Tuscany INTERNET FESTIVAL 2015
Games In Tuscany INTERNET FESTIVAL 2015
Roberto Fazio
 
Fablab Firenze 28_03_2015 Roberto Fazio Presentation
Fablab Firenze 28_03_2015 Roberto Fazio PresentationFablab Firenze 28_03_2015 Roberto Fazio Presentation
Fablab Firenze 28_03_2015 Roberto Fazio Presentation
Roberto Fazio
 
02-Lezione PON BAITAH Dott. Suma - Realtà Aumentata
02-Lezione PON BAITAH Dott. Suma - Realtà Aumentata02-Lezione PON BAITAH Dott. Suma - Realtà Aumentata
02-Lezione PON BAITAH Dott. Suma - Realtà AumentataMarco Suma
 
BTO11 - Innovazioni tech tra customer experience e storytelling nei luoghi fo...
BTO11 - Innovazioni tech tra customer experience e storytelling nei luoghi fo...BTO11 - Innovazioni tech tra customer experience e storytelling nei luoghi fo...
BTO11 - Innovazioni tech tra customer experience e storytelling nei luoghi fo...
Buy Tourism Online
 
Mobile: le opportunità di una tecnologia vicina
Mobile: le opportunità di una tecnologia vicinaMobile: le opportunità di una tecnologia vicina
Mobile: le opportunità di una tecnologia vicina
Andrea Piovani
 
GoogleGlass4Lis e OK Venice - Google Glass e nuove esperienze culturali
GoogleGlass4Lis e OK Venice - Google Glass e nuove esperienze culturali GoogleGlass4Lis e OK Venice - Google Glass e nuove esperienze culturali
GoogleGlass4Lis e OK Venice - Google Glass e nuove esperienze culturali
Pane, Web & Salame
 
Realtà Virtuale per il Business | Il caso Siram Veolia | Visual Pro 360
Realtà Virtuale per il Business | Il caso Siram Veolia | Visual Pro 360Realtà Virtuale per il Business | Il caso Siram Veolia | Visual Pro 360
Realtà Virtuale per il Business | Il caso Siram Veolia | Visual Pro 360
Visual Pro 360
 
Entertainment e metaverso: come cambiano eventi, parchi e cinema con il virtuale
Entertainment e metaverso: come cambiano eventi, parchi e cinema con il virtualeEntertainment e metaverso: come cambiano eventi, parchi e cinema con il virtuale
Entertainment e metaverso: come cambiano eventi, parchi e cinema con il virtuale
Fabio Lalli
 
Lista di software gratuito per la modellazione e stampa 3D (v.4)
Lista di software gratuito per la modellazione e stampa 3D (v.4)Lista di software gratuito per la modellazione e stampa 3D (v.4)
Lista di software gratuito per la modellazione e stampa 3D (v.4)
Carlo Fonda
 
"La Realtà Virtuale per vivere l'Architettura e interagire con i progetti"
"La Realtà Virtuale per vivere l'Architettura e interagire con i progetti""La Realtà Virtuale per vivere l'Architettura e interagire con i progetti"
"La Realtà Virtuale per vivere l'Architettura e interagire con i progetti"
PILOTTI LETIZIA
 
Internet degli Oggetti e Hardware Sociali
Internet degli Oggetti e Hardware SocialiInternet degli Oggetti e Hardware Sociali
Internet degli Oggetti e Hardware Sociali
Leandro Agro'
 
Augmented Reality: guardare il mondo da un altro punto di vista
Augmented Reality: guardare il mondo da un altro punto di vistaAugmented Reality: guardare il mondo da un altro punto di vista
Augmented Reality: guardare il mondo da un altro punto di vista
Codemotion
 

Similar to GoogleVirtualRealityVRSoftwareDevelopmentKitSDKforAndroid (20)

cap 4
cap 4cap 4
cap 4
 
Marta Leo smau 2015
Marta Leo smau 2015Marta Leo smau 2015
Marta Leo smau 2015
 
(In)real: il mondo virtuale: AR e VR analisi e confronto nel rapporto con l'u...
(In)real: il mondo virtuale: AR e VR analisi e confronto nel rapporto con l'u...(In)real: il mondo virtuale: AR e VR analisi e confronto nel rapporto con l'u...
(In)real: il mondo virtuale: AR e VR analisi e confronto nel rapporto con l'u...
 
Marta leo smau 2014
Marta leo smau 2014Marta leo smau 2014
Marta leo smau 2014
 
ARt - Augmented Reality in Art
ARt - Augmented Reality in ArtARt - Augmented Reality in Art
ARt - Augmented Reality in Art
 
Shopping in AR
Shopping in ARShopping in AR
Shopping in AR
 
Games In Tuscany INTERNET FESTIVAL 2015
Games In Tuscany INTERNET FESTIVAL 2015Games In Tuscany INTERNET FESTIVAL 2015
Games In Tuscany INTERNET FESTIVAL 2015
 
Fablab Firenze 28_03_2015 Roberto Fazio Presentation
Fablab Firenze 28_03_2015 Roberto Fazio PresentationFablab Firenze 28_03_2015 Roberto Fazio Presentation
Fablab Firenze 28_03_2015 Roberto Fazio Presentation
 
02-Lezione PON BAITAH Dott. Suma - Realtà Aumentata
02-Lezione PON BAITAH Dott. Suma - Realtà Aumentata02-Lezione PON BAITAH Dott. Suma - Realtà Aumentata
02-Lezione PON BAITAH Dott. Suma - Realtà Aumentata
 
BTO11 - Innovazioni tech tra customer experience e storytelling nei luoghi fo...
BTO11 - Innovazioni tech tra customer experience e storytelling nei luoghi fo...BTO11 - Innovazioni tech tra customer experience e storytelling nei luoghi fo...
BTO11 - Innovazioni tech tra customer experience e storytelling nei luoghi fo...
 
Mobile: le opportunità di una tecnologia vicina
Mobile: le opportunità di una tecnologia vicinaMobile: le opportunità di una tecnologia vicina
Mobile: le opportunità di una tecnologia vicina
 
GoogleGlass4Lis e OK Venice - Google Glass e nuove esperienze culturali
GoogleGlass4Lis e OK Venice - Google Glass e nuove esperienze culturali GoogleGlass4Lis e OK Venice - Google Glass e nuove esperienze culturali
GoogleGlass4Lis e OK Venice - Google Glass e nuove esperienze culturali
 
Google Glass Overview by Vidiemme 2014
Google Glass Overview by Vidiemme 2014Google Glass Overview by Vidiemme 2014
Google Glass Overview by Vidiemme 2014
 
Realtà Virtuale per il Business | Il caso Siram Veolia | Visual Pro 360
Realtà Virtuale per il Business | Il caso Siram Veolia | Visual Pro 360Realtà Virtuale per il Business | Il caso Siram Veolia | Visual Pro 360
Realtà Virtuale per il Business | Il caso Siram Veolia | Visual Pro 360
 
Entertainment e metaverso: come cambiano eventi, parchi e cinema con il virtuale
Entertainment e metaverso: come cambiano eventi, parchi e cinema con il virtualeEntertainment e metaverso: come cambiano eventi, parchi e cinema con il virtuale
Entertainment e metaverso: come cambiano eventi, parchi e cinema con il virtuale
 
Lista di software gratuito per la modellazione e stampa 3D (v.4)
Lista di software gratuito per la modellazione e stampa 3D (v.4)Lista di software gratuito per la modellazione e stampa 3D (v.4)
Lista di software gratuito per la modellazione e stampa 3D (v.4)
 
Wonder lab
Wonder labWonder lab
Wonder lab
 
"La Realtà Virtuale per vivere l'Architettura e interagire con i progetti"
"La Realtà Virtuale per vivere l'Architettura e interagire con i progetti""La Realtà Virtuale per vivere l'Architettura e interagire con i progetti"
"La Realtà Virtuale per vivere l'Architettura e interagire con i progetti"
 
Internet degli Oggetti e Hardware Sociali
Internet degli Oggetti e Hardware SocialiInternet degli Oggetti e Hardware Sociali
Internet degli Oggetti e Hardware Sociali
 
Augmented Reality: guardare il mondo da un altro punto di vista
Augmented Reality: guardare il mondo da un altro punto di vistaAugmented Reality: guardare il mondo da un altro punto di vista
Augmented Reality: guardare il mondo da un altro punto di vista
 

GoogleVirtualRealityVRSoftwareDevelopmentKitSDKforAndroid

  • 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?!