diff --git a/src/chapter2.md b/src/chapter2.md index dced2ba..4212e81 100644 --- a/src/chapter2.md +++ b/src/chapter2.md @@ -9,10 +9,10 @@ ARCore è stata costruita intorno a tre caratteristiche principali[@googlear:Fun - **Motion tracking**: Grazie ad un processo chiamato *concurrent odometry and mapping*(COM), ARCore è in grado di capire come il telefono si posiziona rispetto all'ambiente circostante. ARCore riesce ad estrapolare dall'immagine proveniente dalla fotocamera una serie di ***feature points***, ed usa questi punti per calcolare il proprio movimento rispetto all'ambiente. - 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. + 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 device. - **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. - 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. + 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 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 @@ -23,7 +23,7 @@ Altri due concetti importati di ARCore sono le ***Anchor*** e i ***Trackable***. I punti e i piani sono oggetti speciali che implementano l'interfaccia `Trackable` e come risulta evidente dal nome, questi oggetti possono essere tracciati da ARCore nel corso del tempo. -La possibilità di ottenere informazioni su questi oggetti è molto importante perché ci permette di aggiornare la posa di essi man man che ARCore apprende informazione sull'ambiente esterno. +La possibilità di ottenere informazioni su questi oggetti è molto importante perché ci permette di aggiornare la posa di essi man mano che ARCore apprende informazione sull'ambiente esterno. Per questo, quando si vuole posizionare un oggetto virtuale, è necessario definire un'*ancora* ad un trackable, così facendo ARCore è in grado di tracciare e aggiornare la posizione dell'oggetto renderizzato. Inoltre per ridurre lo sforzo della CPU le ancore possono essere riutilizzate o messe in pausa quando non sono più parte della scena. @@ -63,10 +63,10 @@ Quindi per la renderizzazione degli oggetti tridimensionali si è *costretti* ad Oltre alle soluzioni platform-specific sono disponibili altre due versioni di ARCore, una per l'ambiente Unity 3D e una per Unreal Engine. Con queste ultime è 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. +Per quanto i vantaggi di queste soluzioni siano innegabile, bisogna considerare che facendo ricorso ad esse si sta introducendo un ulteriore strato di software nel processo di sviluppo; +software distribuito tramite licenze proprietarie che comportano costi di utilizzo. -Oltre alle soluzioni elencate in precedenza, 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. +Oltre alle soluzioni elencate in precedenza, 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. Inoltre essendo pensato specificamente per Android e ARCore offre una serie di ulteriori vantaggi, come la gestione del ciclo di vita dell'activity o la gestione automatica delle ombre. 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à.