Differences

This shows you the differences between two versions of the page.

Link to this comparison view

irva:laboratoare:02 [2023/10/16 12:02]
maria_anca.balutoiu [Structura unui Proiect ARCore/AR Foundation]
irva:laboratoare:02 [2023/10/23 12:48] (current)
maria_anca.balutoiu [Tasks]
Line 1: Line 1:
 ===== Laboratorul 02. AR Foundation. Measuring Distances App ===== ===== Laboratorul 02. AR Foundation. Measuring Distances App =====
 ===== ARCore. AR Foundation ===== ===== ARCore. AR Foundation =====
-ARCore este un SDK de realitate augmentată dezvoltat de Google. Este o tehnologie relativ recent apărută pe piață, fiind pentru prima dată publicată pe 1 martie 2018. ARCore este folosit pentru a crea aplicații de realitate augmentată atât pentru Android, cât și pentru iOS. Are suport pentru multiple platforme de development pentru ​mobile, precum Unity, Unreal, Android Studio, Xcode.+ARCore este un SDK de realitate augmentată dezvoltat de Google. Este o tehnologie relativ recent apărută pe piață, fiind pentru prima dată publicată pe 1 martie 2018. ARCore este folosit pentru a crea aplicații de realitate augmentată atât pentru Android, cât și pentru iOS. Are suport pentru multiple platforme de development pentru ​telefon, precum Unity, Unreal, Android Studio, Xcode.
  
 ARCore funcționează pe baza a trei principii: ARCore funcționează pe baza a trei principii:
Line 10: Line 10:
 <note important>​În [[https://​developers.google.com/​ar/​develop|documentația ARCore]], ultimele versiuni de ARCore în combinație cu Unity sunt marcate ca fiind **deprecated**. În schimb, tot în documentație se recomandă utilizarea **AR Foundation**.</​note>​ <note important>​În [[https://​developers.google.com/​ar/​develop|documentația ARCore]], ultimele versiuni de ARCore în combinație cu Unity sunt marcate ca fiind **deprecated**. În schimb, tot în documentație se recomandă utilizarea **AR Foundation**.</​note>​
  
-AR Foundation este un API pentru multiple platforme din Unity. AR Foundation NU implementează niciun feature AR. Pentru a putea folosi AR Foundation, este nevoie să importăm în proiect și pachetele necesare pentru platforma pentru care dezvoltăm aplicația (ARKit pentru iOS, ARCore pentru Android).+AR Foundation este un API pentru multiple platforme din Unity. AR Foundation ​**NU** implementează niciun feature AR. Pentru a putea folosi AR Foundation, este nevoie să importăm în proiect și pachetele necesare pentru platforma pentru care dezvoltăm aplicația (ARKit pentru iOS, ARCore pentru Android).
  
 ===== Setup ARCore. Setup AR Foundation ===== ===== Setup ARCore. Setup AR Foundation =====
-Pentru a crea un proiect nou cu suport pentru AR Foundation, urmăriți pașii de [[https://​developers.google.com/​ar/​develop/​unity-arf/​getting-started-ar-foundation|aici]]. AR Foundation vine cu o serie de feature-uri mai puține decât ARCore. Pentru a putea avea acces la toate feature-urile ARCore, este necesar să importăm și o serie de extensii pentru AR Foundation. Urmați pașii de [[https://​developers.google.com/​ar/​develop/​unity-arf/​getting-started-extensions|aici]]. ​+Pentru a crea un proiect nou cu suport pentru AR Foundation, urmăriți pașii de [[https://​developers.google.com/​ar/​develop/​unity-arf/​getting-started-ar-foundation|aici]]. AR Foundation vine cu o serie de feature-uri mai puține decât ARCore. Pentru a putea avea acces la toate feature-urile ARCore ​(cum ar fi ancorele cloud), este necesar să importăm și o serie de extensii pentru AR Foundation. Urmați pașii de [[https://​developers.google.com/​ar/​develop/​unity-arf/​getting-started-extensions|aici]]. 
 + 
 +<note warning>​AR Foundation 5.0 a înlocuit componenta **AR Session Origin** cu **XR Origin**. ARCore nu a făcut încă această modficare în interfața oferită de ARCore Extensions for AR Foundation; deci, în AR Foundation 5.0 nu avem încă toate feature-urile ARCore. De aceea, la laborator folosim **Unity 2021.3.31f1** (care folosește AR Foundation 4.2) în loc de ultima versiune Unity LTS.</​note>​
  
 ===== Structura unui Proiect ARCore/AR Foundation ===== ===== Structura unui Proiect ARCore/AR Foundation =====
 Orice proiect AR Foundation, are o serie de componente de bază. Fără aceste componente, proiectul nu este funcțional. Acestea sunt: Orice proiect AR Foundation, are o serie de componente de bază. Fără aceste componente, proiectul nu este funcțional. Acestea sunt:
   * **AR Session** controlează ciclul de viață al aplicației AR   * **AR Session** controlează ciclul de viață al aplicației AR
-  * **XR Origin** (AR Foundation 5) / **AR Session Origin** (orice altă versiune AR Foundation) transformă poziția, scalarea și orientarea feature-urilor trackable (precum suprafețe planare și puncte caracteristice) în sistemul de coordonate Unity.+  * **XR Origin** (începând cu AR Foundation 5.0) / **AR Session Origin** (orice altă versiune AR Foundation) transformă poziția, scalarea și orientarea feature-urilor trackable (precum suprafețe planare și puncte caracteristice) în sistemul de coordonate Unity.
 <note tip> <note tip>
 O sesiune se referă la o instanță AR. În timp ce alte componente precum detecția de plane pot fi activate/​dezactivate în mod independent,​ sesiunea controlează ciclul de viață al întregii aplicații AR, deci controlează toate componentele. Când dezactivăm componenta AR Session, sistemul nu mai urmărește caracteristicile din mediul înconjurător. Apoi, dacă reactivăm ulterior componenta, sistemul încearcă să recupereze și să păstreze caracteristicile detectate anterior. O sesiune se referă la o instanță AR. În timp ce alte componente precum detecția de plane pot fi activate/​dezactivate în mod independent,​ sesiunea controlează ciclul de viață al întregii aplicații AR, deci controlează toate componentele. Când dezactivăm componenta AR Session, sistemul nu mai urmărește caracteristicile din mediul înconjurător. Apoi, dacă reactivăm ulterior componenta, sistemul încearcă să recupereze și să păstreze caracteristicile detectate anterior.
Line 24: Line 26:
  
 <note tip> <note tip>
-Componenta XROrigin transformă obiectele trackable dintr-un "​spațiu al sesiunii"​ al dispozitivului AR (un spațiu nescalat relativ momentului începerii sesiunii AR) în world space-ul Unity. De exemplu, coordonatele (0, 0, 0) din spațiul sesiune se referă la poziția la care a fost creată ​sesiune ​AR și corespunde poziției componentei XR Origin în world space. Acest concept este similar diferenței dintre local space și world space.+Componenta XROrigin transformă obiectele trackable dintr-un "​spațiu al sesiunii"​ al dispozitivului AR (un spațiu nescalat relativ momentului începerii sesiunii AR) în world space-ul Unity. De exemplu, coordonatele (0, 0, 0) din spațiul sesiune se referă la poziția la care a fost creată ​sesiunea ​AR și corespunde poziției componentei XR Origin în world space. Acest concept este similar diferenței dintre local space și world space.
 </​note>​ </​note>​
  
Line 80: Line 82:
 <note tip> În acest laborator, vom lucra la o aplicație care măsoară distanțe, folosind camera telefonului mobil. Utilizatorul va putea adăuga puncte apăsând pe ecran. Aplicația va calcula distanța dintre ultimele două puncte adăugate, și o va afișa pe ecran în dreptul celor două puncte. Acest text va rămâne la aceiași poziție în spațiul lume. În același timp, în spațiul camerei se va afișa și distanța totală dintre toate punctele adăugate pe ecran. <note tip> În acest laborator, vom lucra la o aplicație care măsoară distanțe, folosind camera telefonului mobil. Utilizatorul va putea adăuga puncte apăsând pe ecran. Aplicația va calcula distanța dintre ultimele două puncte adăugate, și o va afișa pe ecran în dreptul celor două puncte. Acest text va rămâne la aceiași poziție în spațiul lume. În același timp, în spațiul camerei se va afișa și distanța totală dintre toate punctele adăugate pe ecran.
  
-Vom folosi scena **Measure Distances** din scheletul de laborator. Acesta poate fi descărcat de [[https://​github.com/​Maria-Anca-Balutoiu/​IRVA.git|aici]]. Scriptul necesar pentru rezolvarea laboratorului se află în **Assets->​Scripts**:​ **MeasureDistances.cs**.</​note>​+Vom folosi scena **Measure Distances** din scheletul de laborator. Acesta poate fi descărcat de [[https://​github.com/​Maria-Anca-Balutoiu/​IRVA_AR|aici]]. Scriptul necesar pentru rezolvarea laboratorului se află în **Assets->​Scripts**:​ **MeasureDistances.cs**.</​note>​
  
   - Afișați o linie care să lege ultimele două puncte adăugate pe ecran.   - Afișați o linie care să lege ultimele două puncte adăugate pe ecran.
Line 86: Line 88:
   - Afișați pe ecran distanța totală măsurată.   - Afișați pe ecran distanța totală măsurată.
   - **Bonus:** Adăugați posibilitatea de a reselecta un cub adăugat anterior pe ecran. Odată ce cubul este selectat, îl veți putea muta la altă poziție, iar distanțele vor fi recalculate.   - **Bonus:** Adăugați posibilitatea de a reselecta un cub adăugat anterior pe ecran. Odată ce cubul este selectat, îl veți putea muta la altă poziție, iar distanțele vor fi recalculate.
 +
 +<​note>​Vă puteți folosi de acest [[https://​learn.unity.com/​tutorial/​placing-and-manipulating-objects-in-ar | tutorial]] pentru bonus.</​note>​
  
 Rezultat final: Rezultat final:
  
 {{ :​irva:​laboratoare:​demo.gif?​250 |}} {{ :​irva:​laboratoare:​demo.gif?​250 |}}
irva/laboratoare/02.1697446928.txt.gz · Last modified: 2023/10/16 12:02 by maria_anca.balutoiu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0