Differences

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

Link to this comparison view

irva:laboratoare:08 [2023/12/12 00:46]
andrei.lapusteanu [WIP] V1 done, needs tasks and another once-over.
irva:laboratoare:08 [2024/01/08 23:11] (current)
andrei.lapusteanu
Line 1: Line 1:
 ===== Laboratorul ​08. Meta Quest | Overview & Setup ​===== ​ ===== Laboratorul ​08. Meta Quest | Overview & Setup ​===== ​
 +
 +====⚠️ Update-uri / Fixes ⚠️====
 +[[https://​github.com/​Andrei-Lapusteanu/​IRVA_VR/​tree/​master|Repo-ul]] ​ a fost updatat pentru a rezolva probleme ce țineau de testarea Quest Link-ului în editor și (unele) erori de Gradle.
 +
 +=== Erori build Gradle ===
 +
 +S-ar putea ca setarea **Project Settings -> Player -> Other Settings -> Target API Level**, care în mod implicit este pe **Automatic (highest installed)**,​ să nu fie suficientă,​ așadar recomandăm să testați API Level-uri 31+.
 +
 +=== Problemă pornire SteamVR cu Quest Link | Loading screen stuck pe aplicația instalată pe cască ===
 +
 +Până în prezent, în proiectul suport au fost integrate diverse SDK-uri, precum Cardboard XR, SteamVR și Meta XR. Fiecare dintre acestea rulează pe un anumit target (Windows, Android, etc.), și necesită configurarea corectă a unui **XR Plug-in provider**.
 +
 +Un **XR plug-in provider** este o componentă software ce permite interfațarea dintre Unity și hardware-ul VR -- așadar, fiecare headset comunică printr-un provider diferit. Acest provider se poate configura în **Project Settings -> XR Plug-in Management -> Plug-in Providers**.
 +
 +Așadar, în funcție de headset-ul target, trebuie să setați provider-ul corect -- acest proces a fost automatizat în proiect prin implementarea script-ului ''​XRPluginProviderController'',​ care setează provider-ul corect în funcție de un VR target atât în testarea în editor cât și la realizarea unui build.
 +
 +== "Ce trebuie eu să fac?" ==
 +
 +În fiecare scenă VR pe care doriți s-o testați:
 +
 +  * Includeți oriunde în ierarhia scenei la care lucrați prefab-ul **Assets -> Project Setup -> CustomXRPluginProvider -> Prefabs -> [XRPluginProviderController]**
 +  * Setați din inspector de pe script-ul atașat target-ul VR corespunzător
 +
 +{{ :​irva:​laboratoare:​image_2024-01-08_230109515.png?​300 |}}
  
 ==== Introducere ==== ==== Introducere ====
  
-Dispozitivele dezvoltate de către Meta (în trecut, cunoscute ca si Oculus) sunt soluții `all-in-one` ce permit dezvoltarea aplicațiilor de realitate virtuală și oferă suport pentru cele mai recente funcționalități din acest domeniu, precum hand tracking, realitate mixtă (MR), audio spațializat,​ eye și body tracking.+Dispozitivele dezvoltate de către Meta (în trecut, cunoscute ca și Oculus) sunt soluții `all-in-one` ce permit dezvoltarea aplicațiilor de realitate virtuală și oferă suport pentru cele mai recente funcționalități din acest domeniu, precum hand tracking, realitate mixtă (MR), audio spațializat,​ eye și body tracking.
  
 ==== Dispozitive ==== ==== Dispozitive ====
Line 11: Line 35:
   * **Meta Quest 2** (pe care le veți folosi și voi) reprezintă încă o alegere bună pentru dezvoltarea (și consumul de content) VR   * **Meta Quest 2** (pe care le veți folosi și voi) reprezintă încă o alegere bună pentru dezvoltarea (și consumul de content) VR
   * **Meta Quest 3** vine cu o serie de îmbunătățiri față de **Meta Quest 2** precum o rezoluție mai bună, o nouă generație de chipset (SD XR2 Gen1 vs Gen2) și suport sporit pentru realitate mixtă   * **Meta Quest 3** vine cu o serie de îmbunătățiri față de **Meta Quest 2** precum o rezoluție mai bună, o nouă generație de chipset (SD XR2 Gen1 vs Gen2) și suport sporit pentru realitate mixtă
-  * **Meta Quest Pro** are un display panel mai bun, un upgrade de memorie RAM, dar avantajele principale sunt reprezentate de suport pentru face si eye tracking, precum și un design mai ergonomic. În plus, **Meta Quest 3** și **Meta Quest Pro** vin cu controller-e ce au suport pentru feedback haptic mai avansat+  * **Meta Quest Pro** are un display panel mai bun, un upgrade de memorie RAM, dar avantajele principale sunt reprezentate de suport pentru face și eye tracking, precum și un design mai ergonomic. În plus, **Meta Quest 3** și **Meta Quest Pro** vin cu controller-e ce au suport pentru feedback haptic mai avansat
  
 {{ :​irva:​laboratoare:​mq2_img_1_devices.png?​500 |}} {{ :​irva:​laboratoare:​mq2_img_1_devices.png?​500 |}}
  
-<​note ​tip>O comparație mai detaliată o puteți studia [[https://​developer.oculus.com/​quest/​|aici]].</​note>​+<​note>​O comparație mai detaliată o puteți studia [[https://​developer.oculus.com/​quest/​|aici]].</​note>​
  
 ==== Integrări ==== ==== Integrări ====
Line 50: Line 74:
   * **Oculus desktop app** ([[https://​www.oculus.com/​download_app/?​id=1582076955407037|download]])   * **Oculus desktop app** ([[https://​www.oculus.com/​download_app/?​id=1582076955407037|download]])
   * **Meta Quest Developer Hub** (opțional, [[https://​developer.oculus.com/​downloads/​package/​oculus-developer-hub-win/​|download]])   * **Meta Quest Developer Hub** (opțional, [[https://​developer.oculus.com/​downloads/​package/​oculus-developer-hub-win/​|download]])
 +  * **SideQuest** (opțional, [[https://​sidequestvr.com/​setup-howto|download page]])
  
 === Meta Quest Developer Hub (MQDH) === === Meta Quest Developer Hub (MQDH) ===
Line 83: Line 108:
 <note important>​Pașii prezentați în acest subcapitol nu sunt necesari dacă folosiți [[https://​github.com/​Andrei-Lapusteanu/​IRVA_VR|proiectul suport din repo]].</​note>​ <note important>​Pașii prezentați în acest subcapitol nu sunt necesari dacă folosiți [[https://​github.com/​Andrei-Lapusteanu/​IRVA_VR|proiectul suport din repo]].</​note>​
  
-  * Pentru a accelera testarea în acest setup initial, în proiect a fost integrat pachet-ul de samples ([[https://​assetstore.unity.com/​packages/​tools/​integration/​meta-xr-interaction-sdk-ovr-samples-268521|download]]). Într-un proiect nou, după instalarea pachetului, din **Package Manager** puteți importa câteva scene demo. +  * Pentru a accelera testarea în acest setup inițial, în proiect a fost integrat pachet-ul de samples ([[https://​assetstore.unity.com/​packages/​tools/​integration/​meta-xr-interaction-sdk-ovr-samples-268521|download]]). Într-un proiect nou, după instalarea pachetului, din **Package Manager** puteți importa câteva scene demo. 
   * Aceste scene demo prezintă în mod detaliat diverse feature-uri posibile cu aceste headset-uri. Sunt un punct bun de plecare dacă doriți să integrați aceste funcționalități în alte proiecte ale voastre. ​   * Aceste scene demo prezintă în mod detaliat diverse feature-uri posibile cu aceste headset-uri. Sunt un punct bun de plecare dacă doriți să integrați aceste funcționalități în alte proiecte ale voastre. ​
  
Line 122: Line 147:
   - Rulați proiectul (**Play** din editor)   - Rulați proiectul (**Play** din editor)
  
-<​note ​tip>În următorul GIF este prezentat feature-ul de tip **desktop virtual** – puteți astfel controla PC-ul pe care l-ați conecat cu casca. În GIF proiectul este rulat din Unity prin acest desktop virtual.</​note>​+<​note>​În următorul GIF este prezentat feature-ul de tip **desktop virtual** – puteți astfel controla PC-ul pe care l-ați conecat cu casca. În GIF proiectul este rulat din Unity prin acest desktop virtual.</​note>​
  
 {{ :​irva:​laboratoare:​mq2_gif_tutorial_3_playlink.gif?​500 |}} {{ :​irva:​laboratoare:​mq2_gif_tutorial_3_playlink.gif?​500 |}}
 +
 +=== Realizare build-uri ===
 +
 +Sistemul de operare al acestor device-uri se bazează pe Android, așadar, procesul de build al unei aplicații este similar cu cel prezentat în laboratoarele precedente.
 +
 +Puteți realiza build-uri în cel mai simplu mod prin opțiunea de **Build And Run** din meniul de **Build Settings** din Unity Editor. La finalul build-ului, aplicația este instalată pe headset și pornită în mod automat. Aplicația se poate apoi regăsi în următorul submeniu (vezi GIF).
 +
 +{{ :​irva:​laboratoare:​mq2_tutorial_5_findbuiltapp.gif?​500 |}}
 +
 +Pentru alte variante de build, în urma construirii APK-ului din Unity (așadar **Build** simplu, nu **Build And Run**), se pot folosi **Meta Quest Developer Hub** sau **SideQuest** pentru instalarea acestor aplicații pe headset (proces cunsocut ca și sideloading).
 +
 +<​note>​[[https://​developer.oculus.com/​documentation/​unity/​ts-odh-deploy-build/​|Guide ]] pentru folosirea MQDH.</​note>​
  
 ==== Tasks ==== ==== Tasks ====
  
-// TODO+  - **Realizați pașii necesari setup-ului**:​ Download repo (sau configurare proiect propriu cu SDK-ul necesar + samples), instalare software adițional, pairing prin Quest Link, testare scenă demo 
 +  - În urma testării cu succes a scenei demo folosind **Quest Link**, realizați un **build** pe headset cu aceasta. În mod ideal, testați multiple variante de deployment (**Build And Run**, **sideloading** folosind MQDH sau SideQuest) 
 +  - **Creați-vă o scenă nouă** (organizați-vă fișierele cum doriți în proiect, vă recomandăm să aveți un folder separat pentru ce lucrați custom) și urmăriți pașii din [[https://developer.oculus.com/​documentation/​unity/​unity-tutorial-hello-vr/​|acest tutorial]] de tip Hello World – săriți peste pașii care sunt deja configurați,​ extrageți informația din etapele relavante din tutorial. În final, testați aplicația atât pe Quest Link cât și într-un build 
 + 
 +=== ✨ Bonus === 
 + 
 +  * Studiați documentația relevantă a celor de la Meta (porniți de la link-ul de la pasul 3) și integrați în scena de la pasul 3 suport pentru controller-e;​ este sufficient dacă acestea apar în mediul virtual și sunt tracked în mod corect – setări avansate / hand tracking / gathering de input facem în următorul laborator
  
  
irva/laboratoare/08.1702334778.txt.gz · Last modified: 2023/12/12 00:46 by andrei.lapusteanu
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