This shows you the differences between two versions of the page.
irva:laboratoarear:04 [2025/09/29 20:02] maria_anca.balutoiu |
irva:laboratoarear:04 [2025/09/29 23:17] (current) maria_anca.balutoiu [Tasks] |
||
---|---|---|---|
Line 113: | Line 113: | ||
* Dacă imaginea nu își va schimba niciodată poziția (de exemplu, un tablou), puteți atașa o ancoră imaginii pentru a crește stabilitatea detectării imaginii. | * Dacă imaginea nu își va schimba niciodată poziția (de exemplu, un tablou), puteți atașa o ancoră imaginii pentru a crește stabilitatea detectării imaginii. | ||
* Imaginea fizică trebuie să ocupe cel puțin 25% din imaginea produsă de cameră pentru a putea detecta inițial imaginea. | * Imaginea fizică trebuie să ocupe cel puțin 25% din imaginea produsă de cameră pentru a putea detecta inițial imaginea. | ||
- | * Nu utilizați poziția, orientarea și dimensiunea imaginii atâta timp cât **tracking state** NU este **Tracked**. Când o imagine este inițial detectată de ARCore și dimensiunea acesteia nu a fost specificată, starea sa va fi **Paused**. Asta înseamnă ca ARCore a recunoscut imaginea, dar nu are încă suficiente informații pentru a putea estima poziția și orientarea sa. | + | * Nu utilizați poziția, orientarea și dimensiunea imaginii atâta timp cât **tracking state** NU este **Tracked**. Când o imagine este inițial detectată de ARCore și dimensiunea acesteia nu a fost specificată, starea sa va fi **Paused**. Asta înseamnă ca ARCore a recunoscut imaginea, dar nu are încă suficiente informații pentru a putea estima poziția și orientarea sa. |
+ | |||
+ | <note warning>Putem avea o singură bază de date de imagini activă la un moment dat. Deci, când adăugăm o nouă bază de date de imagini, trebuie să ștergem ultima bază de date existentă.</note> | ||
==== Augmented Faces ==== | ==== Augmented Faces ==== | ||
+ | API-ul **Augmented Faces** permite randare de asset-uri peste fețele umane (similar Snapchat). Acesta furnizează puncte de referință care permit aplicației să identifice automat diferite regiuni ale unei fețe detectate. Aplicația poate apoi să folosească aceste regiuni pentru a suprapune asset-uri într-un mod care se potrivește corect conturului feței fiecărei persoane. | ||
+ | === Părțile unei Fețe Augmentate === | ||
+ | * **O poziție centrală a feței:** Situată în spatele nasului, poziția centrală marchează mijlocul capului utilizatorului; folosită pentru a randa asset-uri deasupra capului. | ||
+ | {{ :irva:laboratoarear:augmented_faces_center.jpg?300 |}} | ||
+ | * **Trei poziții de regiune:** Situate în partea stângă a frunții, în partea dreaptă a frunții și în vârful nasului, pozițiile de regiune marchează părți importante ale feței utilizatorului; folosite pentru a randa asset-uri pe nas sau în jurul urechilor. | ||
+ | * **Un mesh 3D al feței:** Alcătuită din 468 de vertecși, permite aplicarea de texturi detaliate și adaptabile care urmează cu precizie conturul feței. | ||
+ | {{ :irva:laboratoarear:augmented_faces_mesh.png?300 |}} | ||
+ | |||
+ | === Detectarea Fețelor === | ||
+ | Fețele sunt reprezentate de obiecte **ARFace**, care sunt create, actualizate și eliminate de **ARFaceManager**. O dată pe cadru, **ARFaceManager** declanșează un eveniment **facesChanged** care conține trei liste: fețe adăugate, fețe actualizate și fețe eliminate. Când **ARFaceManager** detectează o față în scenă, va instanția un prefab, care conține **ARFace** atașat pentru a urmări fața. Pentru a vizualiza mesh-ul feței, prefabul feței trebuie să conțină **ARFaceMeshVisualizer**. **ARFaceMeshVisualizer** generează un mesh corespunzător feței detectate. | ||
+ | |||
+ | Pași pentru augmentarea fețelor: | ||
+ | * Adăugați un obiect **ARFaceManager** în **Hierarchy**. | ||
+ | * **Hierarchy -> click dreapta -> XR -> AR Default Face**. | ||
+ | * Creați un prefab și ștergeți **AR Default Face** din **Hierarchy**. | ||
+ | * Setați prefabul creat ca **Face Prefab** al **ARFaceManager**. | ||
+ | |||
+ | === Camera Frontală === | ||
+ | În plus, cel mai adesea când dorim să augmentăm fețe, dorim să folosim camera frontală a telefonului. Astfel: | ||
+ | * Setați **AR Session -> AR Session -> Tracking mode** la valoarea **Rotation only**. | ||
+ | * Setați **XR Origin -> Camera Offset -> Main Camera -> AR Camera Manager -> Facing Direction** la valoarea **User**. Valoarea **World** reprezintă camera principală a telefonului. | ||
==== Tasks ==== | ==== Tasks ==== | ||
<note tip> | <note tip> | ||
- | Vom folosi scena **Augmented Images** din scheletul de laborator. Acesta poate fi descărcat de [[https://github.com/UPB-Graphics/IRVA|aici]]. Scriptul necesar pentru rezolvarea laboratorului se află în **Assets->Scripts**: **RuntimeImageLibrary.cs**. | + | Vom folosi scena **L4_AugmentedImages** din scheletul de laborator pentru primele 3 task-uri și scena **L4_AugmentedFaces** pentru ultimul task. Acesta poate fi descărcat de [[https://github.com/UPB-Graphics/IRVA|aici]]. Scriptul necesar pentru rezolvarea laboratorului se află în **Assets->Scripts**: **RuntimeImageLibrary.cs**. |
</note> | </note> | ||
Line 128: | Line 151: | ||
- Creați o bază de date la runtime cu minim o imagine și augmentați imaginea. | - Creați o bază de date la runtime cu minim o imagine și augmentați imaginea. | ||
- Detectați și augmentați o față. | - Detectați și augmentați o față. | ||
- | - **Bonus:** Adăugați un buton pe ecran cu care veți face switch între cele două baze de date. | + | - **Bonus:** Adăugați posibilitatea de a cicla printre 3 "măști" diferite pentru augmentarea feței. Utilizatorul poate selecta masca dintr-un meniu de pe ecran. |
- | + | ||
- | + | ||
- | <note warning>Putem avea o singură bază de date de imagini activă la un moment dat. Deci, când adăugăm o nouă bază de date de imagini, trebuie să ștergem ultima bază de date existentă.</note> | + |