add Sceneform
This commit is contained in:
parent
9e31979798
commit
b66de4c040
@ -1,4 +1,4 @@
|
||||
# Capito 2
|
||||
# ARCore e Sceneform
|
||||
|
||||
## ARCore
|
||||
|
||||
@ -12,24 +12,56 @@ ARCore è stata costruita intorno a tre caratteristiche principali[@googlear:Fun
|
||||
Queste informazioni, combinate con quelle provenienti dall'*inertial measurement unit*[^imu] permettono alla libreria di determinare la ***pose*** ovvero la posizione e l'orientamento del devices.
|
||||
- **Environmental understanding**:
|
||||
ARCore ottiene continuamente nuove informazione sull'ambiente tramite i *feature points*, grazie ai quali è in grado di determinare le superfici piane(sia orizzontali che verticali) e i bordi di quest'ultime.
|
||||
Visto che le superfici piane sono determinate attraverso i *feature points* la libreria incontra non poche difficoltà nel riconoscimento di superfici piane verticali monocromatiche come, ad esempio, i muri.
|
||||
Dato che le superfici piane sono determinate attraverso i *feature points* la libreria incontra non poche difficoltà nel riconoscimento di superfici piane verticali monocromatiche come, ad esempio, i muri.
|
||||
- **Light estimation**:
|
||||
ARCore è in grado di comprendere come la luce illumina gli oggetti reali, mettendo a disposizione del programmatore una serie di informazioni per poter correggere l'immagine proveniente dalla fotocamera.
|
||||
ARCore è in grado di comprendere come la luce illumina gli oggetti reali, mettendo a disposizione del programmatore un'API per poter correggere l'immagine proveniente dalla fotocamera.
|
||||
Queste informazioni permettono di integrare meglio gli oggetti virtuali nella scena ed avere un maggiore foto-realismo
|
||||
|
||||
Risulta importante notare che ARCore non offre alcun supporto alle tecnologie di mixed reality.
|
||||
A fronte di ciò è evidente che l'unica modalità di interazione tra l'utente e gli oggetti virtuali sia lo smartphone.
|
||||
|
||||
### Perché ARCore
|
||||
|
||||
La scelta di ARCore rispetto ad altri ambienti di sviluppo non è stata determinata da una supremazia tecnica.
|
||||
La costruzione di una rappresentazione interna dell'ambiente e il posizionamento in questo sono le caratteristiche su cui si erigono tutte le librerie di realtà aumentata.
|
||||
La costruzione di una rappresentazione interna dell'ambiente e il posizionamento in questo sono le caratteristiche su cui si erigono tutte le librerie di realtà aumentata markerless.
|
||||
Tant'è non è possibile notare una sostanziale differenza tra ARCore e la già citata ARKit, o l'altrettanto valida Vuforia[@vuforia:VuforiaAugmentedReality:2019].
|
||||
|
||||
Il campo in cui ARCore eccelle rispetto alla concorrenza invece è la gestione della luce.
|
||||
Questo punto di forza, però, viene abbondantemente compensato dall'impossibilità di riconoscere un oggetto reale(sia esso statico[^image-recognition] che dinamico) dato un modello 3D.
|
||||
Funzione disponibile sia su Vuforia, sia, dalla versione 2.0, su ARKit.
|
||||
|
||||
La prima ragione per cui si è scelto di approfondire lo studio di ARCore è la sua natura multi piattaforma, con buona parte dell'API condivisa dai due maggiori sistemi operativi mobili.
|
||||
Ma ciò che rende veramente unica la soluzione di Google è la licenza, Apache 2.0, che le conferisce il titolo di unico SDK per la realtà virtuale ad essere rilasciato sotto una licenza open source.
|
||||
Però ciò che rende veramente unica la soluzione di Google è la licenza, Apache 2.0, che le conferisce il titolo di unico SDK per la realtà virtuale su dispositivi mobili ad essere rilasciato sotto una licenza open source.
|
||||
|
||||
Scopo della tesi sarà, mediante applicazioni d'esempio, esplorare potenzialità e limiti nello sviluppo di progetti dell'AR mediante tecnologie open source.
|
||||
|
||||
[^image-recognition]: Google ha preferito relegare il riconoscimento di oggetti ad altre sue librerie di deep learnig.
|
||||
## Sceneform
|
||||
|
||||
In qualsiasi applicazione di augmented reality è possibile distinguere due aree ben distinte:
|
||||
|
||||
- **riconoscimento dell'ambiente reale**:
|
||||
Questa risulta essere la parte più strettamente di AR.
|
||||
ARCore ci fornisce tutti gli strumenti per adempiere a questo compito.
|
||||
- **renderizzazione degli oggetti virtuali**
|
||||
Consiste nella generazione e visualizzazione degli oggetti virtuali.
|
||||
ARCore, come d'altronde gli altri SDK, non forniscono alcun supporto diretto per questo compito.
|
||||
|
||||
Sebbene ARCore non ci fornisca un supporto diretto, ci nette a disposizione una serie di facilitazioni.
|
||||
Infatti ARCore viene distribuito in cinque SDK differenti.
|
||||
Nelle versioni per Android, sia esso standard o NDK[^ndk] e nella versione versione per dispositivi iOS, la gestione del comparto grafico è delegata completamente allo sviluppatore.
|
||||
Quindi per la gestione degli oggetti tridimensionali si è **costretti** ad usare API di basso livello come OpenGL ES[^opengl].
|
||||
|
||||
Oltre alle due soluzioni platform-specific sono disponibili altre due versioni di ARCore; una per l'ambiente Unity 3D e l'altra per Unreal Engine.
|
||||
In questo modo è possibile appoggiarsi ad un motore grafico per la gestione del rendering e quindi rendere più semplice e veloce il compito dello sviluppatore.
|
||||
Per quanto i vantaggi di queste soluzioni siano innegabile, bisogna considera che facendo ricorso ad esse si sta introducendo un ulteriore strato di software nel processo di sviluppo; software distribuito tramite license proprietarie che comportano costi di licenza.
|
||||
|
||||
Inoltre per lo sviluppo in ambiente Android Google mette a disposizione Sceneform[@googlear:SceneformSDKAndroid:2019];
|
||||
un framework per la gestione del rendering di oggetti 3D, ottimizzato per dispositivi mobili che permette di creare velocemente applicazioni in AR sfruttando Java.
|
||||
|
||||
Per lo sviluppo delle applicazioni di esempio si è scelto di fare affidamento proprio su quest'ultima soluzione, in quanto offre un ottimo trade-off tra facilità di accesso e potenzialità.
|
||||
Inoltre vista la natura open source di Sceneform non si viene meno all'intento della tesi di mostrare le possibilità offerte da tecnologie aperte nel campo dell'AR per smartphone.
|
||||
|
||||
[^image-recognition]: Google ha preferito relegare il riconoscimento di oggetti ad altre sue librerie di deep learning.
|
||||
[^imu]: Anche nota con l'acronimo di IMU è un dispositivo elettronico che misura, mediante l'accelerometro, il giroscopio e là dove presente il magnetometro, la forza specifica che agisce sul dispositivo.
|
||||
[^ndk]: Acronimo di Native Development Kit, è un insieme di strumenti che permettono di scrivere parti di applicazioni Android in C o C++.
|
||||
[^opengl]: Acronimo di Open Graphics Library for Embedded Systems
|
||||
|
Loading…
Reference in New Issue
Block a user