Differences

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

Link to this comparison view

irva:laboratoarear:02 [2025/09/27 10:33]
maria_anca.balutoiu [Tasks]
irva:laboratoarear:02 [2025/09/29 23:17] (current)
maria_anca.balutoiu [Tasks]
Line 1: Line 1:
-===== Laborator AR 02. AR Foundation. Measuring Distances App =====+===== Laborator AR 02. Adăugarea de Obiecte Augmentate ​=====
  
 ==== Plasarea de Obiecte în Scenă. Ancore ==== ==== Plasarea de Obiecte în Scenă. Ancore ====
 +=== Raycast ===
 Pentru a adăuga obiecte în scenă folosind inputul utilizatorului,​ va trebui să verificăm la fiecare frame dacă utilizatorul a apăsat pe ecran. Funcția **Frame.Raycast()** implementează un raycast în funcție de poziția de pe ecran apăsată de utilizator pentru a detecta dacă utilizatorul a apăsat pe un plan sau pe un feature point detectat în imagine. Pentru a adăuga obiecte în scenă folosind inputul utilizatorului,​ va trebui să verificăm la fiecare frame dacă utilizatorul a apăsat pe ecran. Funcția **Frame.Raycast()** implementează un raycast în funcție de poziția de pe ecran apăsată de utilizator pentru a detecta dacă utilizatorul a apăsat pe un plan sau pe un feature point detectat în imagine.
  
Line 31: Line 32:
 </​code>​ </​code>​
  
 +=== Ancore ===
 Poziția punctului nimerit este folosit pentru a crea o **ancoră**. Ancora este un obiect specific ARCore care menține obiectul fix la o anumită poziție relativ cu lumea reală. Pe măsură ce ARCore învață mediul înconjurător,​ ARCore își poate schimba sistemul de coordonate global. Automat, un obiect fără o ancoră atașată și-ar schimba poziția în funcție de noul sistem de coordonate global. Cu ajutorul unei ancore, obiectul rămâne însă relativ fix în lumea reală, nu în sistemul ARCore. Când nu mai avem nevoie de o ancoră (sunt foarte costisitoare din punct de vedere al timpului de execuție), o putem distruge, folosind funcția **Destroy**. Poziția punctului nimerit este folosit pentru a crea o **ancoră**. Ancora este un obiect specific ARCore care menține obiectul fix la o anumită poziție relativ cu lumea reală. Pe măsură ce ARCore învață mediul înconjurător,​ ARCore își poate schimba sistemul de coordonate global. Automat, un obiect fără o ancoră atașată și-ar schimba poziția în funcție de noul sistem de coordonate global. Cu ajutorul unei ancore, obiectul rămâne însă relativ fix în lumea reală, nu în sistemul ARCore. Când nu mai avem nevoie de o ancoră (sunt foarte costisitoare din punct de vedere al timpului de execuție), o putem distruge, folosind funcția **Destroy**.
  
Line 37: Line 39:
 </​code>​ </​code>​
  
-==== WorldToScreenPoint ​====+=== WorldToScreenPoint ===
 Dacă dorim să poziționăm anumite elemente de interfață grafică să urmărească anumite obiecte (deci să nu fie fixe într-o anumită zonă a ecranului, ci să urmărească un anumit obiect) putem folosi funcția **WorldToScreenPoint**,​ care primește ca parametru poziția din spațiul global pe care dorim să îl urmărim. Folosind această funcție, poziția este convertită la spațiul camerei. Dacă dorim să poziționăm anumite elemente de interfață grafică să urmărească anumite obiecte (deci să nu fie fixe într-o anumită zonă a ecranului, ci să urmărească un anumit obiect) putem folosi funcția **WorldToScreenPoint**,​ care primește ca parametru poziția din spațiul global pe care dorim să îl urmărim. Folosind această funcție, poziția este convertită la spațiul camerei.
  
Line 49: Line 51:
 <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/​UPB-Graphics/​IRVA|aici]]. Scriptul necesar pentru rezolvarea laboratorului se află în **Assets->​Scripts**:​ **MeasureDistances.cs**.</​note>​+Vom folosi scena **L2_MeasureDistances** 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**:​ **MeasureDistances.cs**.</​note>​ 
 + 
 +<note important>​Importați ultima versiune a pachetului ''​IRVA_L2_AR''​ care se găsește în folder-ul **UnityPackages** din folderul root al proiectului.</​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.
irva/laboratoarear/02.1758958408.txt.gz · Last modified: 2025/09/27 10:33 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