Differences

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

Link to this comparison view

irva:laboratoarear:01 [2025/09/27 09:27]
maria_anca.balutoiu [Build the App]
irva:laboratoarear:01 [2025/09/29 23:19] (current)
maria_anca.balutoiu [Tasks]
Line 11: Line 11:
 Link către [[https://​github.com/​UPB-Graphics/​IRVA|GitHub repo]]. Link către [[https://​github.com/​UPB-Graphics/​IRVA|GitHub repo]].
  
-===== 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 telefon, 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.
  
Line 23: Line 23:
 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. Set up AR Foundation ​===== +==== Setup ARCore. Set up AR Foundation ==== 
-==== Requirements ​====+=== Requirements ===
 Pentru **Android** pachetul AR Foundation necesită următoarele (pentru iOS găsiți [[https://​developers.google.com/​ar/​develop/​unity-arf/​getting-started-ar-foundation#​requirements|aici]] informațiile necesare): Pentru **Android** pachetul AR Foundation necesită următoarele (pentru iOS găsiți [[https://​developers.google.com/​ar/​develop/​unity-arf/​getting-started-ar-foundation#​requirements|aici]] informațiile necesare):
  
Line 34: Line 34:
   * Unity 2019.4.3f1 sau o versiune mai recentă, cu Android Build Support   * Unity 2019.4.3f1 sau o versiune mai recentă, cu Android Build Support
  
-==== Instalare AR Foundation ​====+=== Instalare AR Foundation ===
   * Creați un proiect nou Unity 3D.   * Creați un proiect nou Unity 3D.
-  * **Window -> Package Manager**. +  * **Window ​-> Package Management ​-> Package Manager**. 
-  * Din meniul **Packages** selectați **Unity Registry**.+  * Selectați **Unity Registry**.
   * Căutați și instalați **AR Foundation**.   * Căutați și instalați **AR Foundation**.
  
Line 44: Line 44:
  
 Pentru **Android** trebuie instalat pachetul **ARCore XR Plugin**: Pentru **Android** trebuie instalat pachetul **ARCore XR Plugin**:
-  * **Window -> Package Manager**. +  * **Window ​-> Package Management ​-> Package Manager**. 
-  * Din meniul **Packages**,​ selectați **Unity Registry**.+  * Selectați **Unity Registry**.
   * Căutați și instalați **ARCore XR Plugin**.   * Căutați și instalați **ARCore XR Plugin**.
-  * **Edit -> Project Settings**. +  * **Edit -> Project Settings ​-> XR Plug-in Management -> Android**. Activați ARCore.
-  * **XR Plug-in Management -> Android**. Activați ARCore.+
 {{:​irva:​laboratoarear:​arfoundation3.png?​600|}} {{:​irva:​laboratoarear:​arfoundation3.png?​600|}}
  
 Pentru **iOS** găsiți [[https://​developers.google.com/​ar/​develop/​unity-arf/​getting-started-ar-foundation#​install_and_enable_platform-specific_plugin_packages|aici]] informațiile necesare. Pentru **iOS** găsiți [[https://​developers.google.com/​ar/​develop/​unity-arf/​getting-started-ar-foundation#​install_and_enable_platform-specific_plugin_packages|aici]] informațiile necesare.
  
-==== Configurarea unei sesiuni AR și adăugarea componentelor AR Foundation în scenă ​====+=== Configurarea unei sesiuni AR și adăugarea componentelor AR Foundation în scenă ===
 O scenă are nevoie de o sesiune AR pentru a activa procesele AR, precum urmărirea mișcării, înțelegerea mediului și estimarea iluminării. Astfel, sunt necesari următorii pași: O scenă are nevoie de o sesiune AR pentru a activa procesele AR, precum urmărirea mișcării, înțelegerea mediului și estimarea iluminării. Astfel, sunt necesari următorii pași:
   * Ștergeți **Main Camera** din **Hierarchy**.   * Ștergeți **Main Camera** din **Hierarchy**.
Line 59: Line 58:
   * Adăugați ** XR Origin** în **Hierarchy**.   * Adăugați ** XR Origin** în **Hierarchy**.
  
-==== Instalarea și configurarea extensiilor ARCore ​====+<note warning>​În acest moment, dacă am dori să facem build, începând cu **Unity 6**, pe ecranul telefonului am vedea doar un fundal galben, fără să vedem ce captează camera telefonului. Dacă întâmpinați această problemă, urmați pașii: 
 +  - **Settings -> Mobile_Renderer**. 
 +  - Adăugați "AR Background Renderer Feature"​. 
 + 
 +{{:​irva:​laboratoarear:​unity6_ar_fix.jpeg?​600|}} 
 +</​note>​ 
 + 
 +=== Instalarea și configurarea extensiilor ARCore ===
 Pachetul opțional **ARCore Extensions pentru AR Foundation** adaugă funcționalități suplimentare la pachetul AR Foundation din Unity, permițând utilizarea unor caracteristici precum Cloud Anchors, filtre de configurare a camerei și înregistrare și redare în aplicația ta. Pașii necesari pentru instalarea **ARCore Extensions pentru AR Foundation**:​ Pachetul opțional **ARCore Extensions pentru AR Foundation** adaugă funcționalități suplimentare la pachetul AR Foundation din Unity, permițând utilizarea unor caracteristici precum Cloud Anchors, filtre de configurare a camerei și înregistrare și redare în aplicația ta. Pașii necesari pentru instalarea **ARCore Extensions pentru AR Foundation**:​
-  * **Window -> Package Manager**.+  * **Window ​-> Package Management ​-> Package Manager**.
   * **+ -> Add package from git URL…**: [[https://​github.com/​google-ar/​arcore-unity-extensions.git#​arf6|https://​github.com/​google-ar/​arcore-unity-extensions.git#​arf6]]   * **+ -> Add package from git URL…**: [[https://​github.com/​google-ar/​arcore-unity-extensions.git#​arf6|https://​github.com/​google-ar/​arcore-unity-extensions.git#​arf6]]
  
Line 76: Line 82:
     * **Camera Manager**: AR Camera     * **Camera Manager**: AR Camera
   * Opțional, creați și conectați următoarele asset-uri pentru Cloud Anchors și camera config filters:   * Opțional, creați și conectați următoarele asset-uri pentru Cloud Anchors și camera config filters:
-    * În **Project -> Assets -> clic dreapta -> Create -> XR -> ARCore Extensions Config**. +    * În **Project -> Assets -> click dreapta -> Create -> XR -> ARCore Extensions Config**. 
-    * În **Project -> Assets -> clic dreapta -> Create -> XR -> Camera Config Filter**.+    * În **Project -> Assets -> click dreapta -> Create -> XR -> Camera Config Filter**.
     * În **Hierarchy**,​ selectați **ARCore Extensions**.     * În **Hierarchy**,​ selectați **ARCore Extensions**.
     * Drag and drop **ARCore Extensions Config** și **Camera Config Filter**.     * Drag and drop **ARCore Extensions Config** și **Camera Config Filter**.
Line 89: Line 95:
 </​note>​ </​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
Line 101: Line 107:
 </​note>​ </​note>​
  
-  * **AR Plane Manager** crează câte un GameObject pentru fiecare plan detectat în mediul înconjurător. Un plan este o suprafață plată reprezentată printr-o poziție, orientare, dimensiuni și puncte limită. Planele pot fi adăugate, modificate și șterse de la un frame la altul. Un plan își mărește dimensiunea în timp pe măsură ce dispozitivul AR descoperă mai multe din mediul înconjurător. ​+  * Scriptul ​**AR Plane Manager** crează câte un GameObject pentru fiecare plan detectat în mediul înconjurător. Un plan este o suprafață plată reprezentată printr-o poziție, orientare, dimensiuni și puncte limită. Planele pot fi adăugate, modificate și șterse de la un frame la altul. Un plan își mărește dimensiunea în timp pe măsură ce dispozitivul AR descoperă mai multe din mediul înconjurător. ​
  
 <note tip> <note tip>
Line 107: Line 113:
 </​note>​ </​note>​
  
-  * **AR Point Cloud Manager** crează câte un GameObject pentru fiecare punct caracteristic detectat în mediul înconjurător. Un punct caracteristic este o zonă din lumea reală, în care se fac treceri bruște de culoare (de exemplu, colțul unei mese).+  * Scriptul ​**AR Point Cloud Manager** crează câte un GameObject pentru fiecare punct caracteristic detectat în mediul înconjurător. Un punct caracteristic este o zonă din lumea reală, în care se fac treceri bruște de culoare (de exemplu, colțul unei mese).
  
 <note tip> <note tip>
Line 113: Line 119:
 </​note>​ </​note>​
  
-===== Build the App =====+==== Build the App ====
 Pentru a putea rula aplicația de pe telefon, trebuie să facem un build specific pentru telefon. Urmați pașii de [[https://​docs.unity3d.com/​Manual/​PlatformSpecific.html|aici]]. Pe scurt, pentru Android: Pentru a putea rula aplicația de pe telefon, trebuie să facem un build specific pentru telefon. Urmați pașii de [[https://​docs.unity3d.com/​Manual/​PlatformSpecific.html|aici]]. Pe scurt, pentru Android:
   - Activați **Developer Mode** și **USB Debugging** pe telefon.   - Activați **Developer Mode** și **USB Debugging** pe telefon.
Line 126: Line 132:
   - Înapoi în **Build Settings**, click **Build and Run** (telefonul conectat prin USB la calculator).   - Înapoi în **Build Settings**, click **Build and Run** (telefonul conectat prin USB la calculator).
  
-==== Unity build profiles ​====+=== Unity build profiles ===
  
 Începând cu Unity 6, modalitatea de lucru cu build-urile si scenele de inclus în build a suferit mici modificări. Noile funcționalități se regăsesc în **File -> Build Profiles**. Începând cu Unity 6, modalitatea de lucru cu build-urile si scenele de inclus în build a suferit mici modificări. Noile funcționalități se regăsesc în **File -> Build Profiles**.
Line 134: Line 140:
 <note tip>Spre deosebire de vesiunile anterioare de Unity, aici avem conceptul de **profile de build**, care ne ajută sa diferențiem setările în funcție de platforma target (de ex., Android), precum și setările pentru device-uri diferite (de ex., puteți crea un build profile pentru Android specific pentru Google Cardboard XR și alt profil tot de Android pentru dispozitivele Quest de la Meta).</​note>​ <note tip>Spre deosebire de vesiunile anterioare de Unity, aici avem conceptul de **profile de build**, care ne ajută sa diferențiem setările în funcție de platforma target (de ex., Android), precum și setările pentru device-uri diferite (de ex., puteți crea un build profile pentru Android specific pentru Google Cardboard XR și alt profil tot de Android pentru dispozitivele Quest de la Meta).</​note>​
  
-  * Creați-vă un nou **profil de build** pentru **Android**,​ selectați-l și apăsați pe **Switch Platform** +  * Creați-vă un nou **profil de build** pentru **Android**,​ selectați-l și apăsați pe **Switch Platform**. 
-  * Pe profilul nou creat, puteți crea un **override** la setările tip **Player** din Unity (setări aferente build-ului). Având profilul creat selectat, apăsați pe **Customize Player Settings** +  * Pe profilul nou creat, puteți crea un **override** la setările tip **Player** din Unity (setări aferente build-ului). Având profilul creat selectat, apăsați pe **Customize Player Settings**. 
-  * Interfața ar trebui să arate similar imaginii de mai jos+  * Interfața ar trebui să arate similar imaginii de mai jos.
  
 {{ :​irva:​laboratoarevr:​irva_2025_vr_l1_build_profiles_3.png?​500 |}} {{ :​irva:​laboratoarevr:​irva_2025_vr_l1_build_profiles_3.png?​500 |}}
Line 142: Line 148:
  
  
-===== Tasks ===== +==== Tasks ==== 
-<note tip>Scheletul ​de cod pentru ​laborator poate fi descărcat de [[https://​github.com/​UPB-Graphics/​IRVA | aici]].</​note>​ +<note tip>Vom folosi scena **L1_ARFoundationIntro** din scheletul ​de laborator. Acesta ​poate fi descărcat de [[https://​github.com/​UPB-Graphics/​IRVA|aici]].</​note>​ 
-  - Deschideți scena **Intro** din scheletul de cod.+ 
 +  - Deschideți scena **L1 AR Foundation ​Intro** din scheletul de cod.
   - Configurați scena astfel încât să adăugați suport pentru AR Foundation.   - Configurați scena astfel încât să adăugați suport pentru AR Foundation.
   - Configurați scena astfel încât să adăugați suport pentru extensiile ARCore.   - Configurați scena astfel încât să adăugați suport pentru extensiile ARCore.
irva/laboratoarear/01.1758954472.txt.gz · Last modified: 2025/09/27 09:27 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