This is an old revision of the document!


Laborator AR 01. Introducere AR Foundation

Înainte de a începe laboratorul...

  • Înainte de a începe implementarea laboratorului:
    • Asigurați-vă că îndepliniți cerințele tehnice deschise aici
    • Aveți setup-ul pentru Unity realizat, puteți studia acesta aici
  • Vă recomandăm să urmăriți pașii descriși în acest ghid pentru setup-ul proiectului împreună cu Git. Vă va ușura munca pe parcursul semestrului.

Link către GitHub repo.

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 funcționează pe baza a trei principii:

  • Motion tracking (poziția telefonului este constant calculată relativ la spațiul lume)
  • Înțelegerea mediului înconjurător (dimensiunea și poziția aproximativ tuturor tipurilor de suprafețe este constant detectată)
  • Light estimation (condițiile de iluminare sunt calculate constant)

În 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.

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

Requirements

Pentru Android pachetul AR Foundation necesită următoarele (pentru iOS găsiți aici informațiile necesare):

Hardware

Software

  • Unity 2019.4.3f1 sau o versiune mai recentă, cu Android Build Support

Instalare AR Foundation

  • Creați un proiect nou Unity 3D.
  • Window → Package Management → Package Manager.
  • Selectați Unity Registry.
  • Căutați și instalați AR Foundation.

Instalarea și activarea plugin-urilor specifice platformei

AR Foundation nu implementează funcționalități AR. Pentru a utiliza AR Foundation pe un dispozitiv țintă, trebuie instalate pachete separate și activat pluginul corespunzător pentru fiecare platformă.

Pentru Android trebuie instalat pachetul ARCore XR Plugin:

  • Window → Package Management → Package Manager.
  • Selectați Unity Registry.
  • Căutați și instalați ARCore XR Plugin.
  • Edit → Project Settings → XR Plug-in Management → Android. Activați ARCore.

Pentru iOS găsiți aici informațiile necesare.

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:

  • Ștergeți Main Camera din Hierarchy.
  • Adăugați AR Session în Hierarchy.
  • Adăugați XR Origin în Hierarchy.

Î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:

  1. Settings → Mobile_Renderer.
  2. Adăugați “AR Background Renderer Feature”.

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:

În timpul instalării, Unity va instala automat și versiunile potrivite ale dependențelor necesare:

  • AR Foundation
  • ARCore XR Plugin (pentru Android)
  • ARKit XR Plugin (pentru iOS)

  • Adăugați ARCore Extensions în Hierarchy.
  • Selectați ARCore Extensions din Hierarchy. În Inspector → drag and drop:
    • Session: AR Session
    • XR Origin: XR Origin
    • Camera Manager: AR Camera
  • Opțional, creați și conectați următoarele asset-uri pentru Cloud Anchors și camera config filters:
    • În Project → Assets → click dreapta → Create → XR → ARCore Extensions Config.
    • În Project → Assets → click dreapta → Create → XR → Camera Config Filter.
    • În Hierarchy, selectați ARCore Extensions.
    • Drag and drop ARCore Extensions Config și Camera Config Filter.

Din moment ce ARCore extensions for AR Foundation instalează automat și Apple ARKit XR Plugin, dacă nu aveți și suportul de iOS instalat o să primți eroarea de mai jos în consolă. Cu toate acestea, nu este o problemă blocantă și o putem ignora din moment ce nu facem build-uri pentru iOS.

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:

  • AR Session controlează ciclul de viață al aplicației AR
  • 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.

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.

Componenta XR Origin 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.

  • 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.

Pentru a vizualiza plane este nevoie să folosim componenta AR Default Plane, pe care să o transformăm în prefab.

  • 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).

Pentru a vizualiza puncte caracteristice este nevoie să folosim componenta AR Default Point Cloud, pe care să o transformăm în prefab.

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 aici. Pe scurt, pentru Android:

  1. Activați Developer Mode și USB Debugging pe telefon.
  2. În Unity: File → Build Settings. Dublu click Android, apoi Switch Platform.
  3. Adăugați scenele pe care doriți să le includeți în build.
  4. Selectați Player Settings.
  5. Completați Company Name și Product Name.
  6. Other Settings → Rendering. Debifați Auto Graphics API. Dacă Vulkan apare la Graphics APIs, eliminați-l.
  7. Other Settings → Minimum API Level. Selectați Android 7.0 Nougat (API Level 24) sau mai nou.
  8. Other Settings → Scripting Backend. Selectați IL2CPP în loc de Mono pentru a permite suportul ARM64 în pasul următor.
  9. Other Settings → Target Architectures. Activați ARM64 (64-bit ARM) și ARM32 (32-bit ARM).
  10. Înapoi în Build Settings, click Build and Run (telefonul conectat prin USB la calculator).

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.

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).

  • 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.
  • Interfața ar trebui să arate similar imaginii de mai jos.

Tasks

Scheletul de cod pentru laborator poate fi descărcat de aici.

  1. Deschideți scena L1 AR Foundation Intro din scheletul de cod.
  2. Configurați scena astfel încât să adăugați suport pentru AR Foundation.
  3. Configurați scena astfel încât să adăugați suport pentru extensiile ARCore.
  4. Adăugați posibilitatea de a vizualiza planele și punctele caracteristice detectate.
  5. Faceți build și testați aplicația pe telefon.
  6. Bonus. Afișați pe ecran numărul de plane, de puncte caracteristice, poziția și orientarea camerei.
irva/laboratoarear/01.1759158601.txt.gz · Last modified: 2025/09/29 18:10 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