VIRTUALNA STVARNOST
Modul 3
Razvoj okruženja virtualne stvarnosti
Treći modul vodi od praznog projekta do ispitane aplikacije za virtualnu stvarnost. Polaznici u razvojnom okruženju s podrškom za OpenXR grade scenu, programsku logiku, kameru, kontrolere i ruke, hvatanje i točke interesa te kretanje s postavkama udobnosti. Zatim spajaju modele, logiku i uređaje u jednu aplikaciju povezanu sa simulatorom robota i ispituju je testnim slučajevima, profiliranjem i s ispitanicima. Sve se radi na virtualnom laboratoriju VR-1.
- izraditi VR projekt u odabranom razvojnom okruženju i uključiti podršku za OpenXR
- izraditi programsku logiku nacrtima ili skriptama: događaje, varijable, funkcije i ispis
- prilagoditi kameru, kontrolere i modele ruku odabranoj hardverskoj opremi
- izraditi hvatanje, puštanje i točke interesa neovisne o vrsti ulaza
- izraditi kretanje teleportom i okretanjem u koracima te odabrati postavke udobnosti
- integrirati modele, logiku i uređaje u potpuno funkcionalno okruženje virtualne stvarnosti povezano sa simulatorom robota
- izgraditi isti projekt za računalo s mišem, PC-VR i samostalne naočale uz poštivanje ograničenja platforme
- testirati funkcionalnost, performanse i udobnost izrađenog okruženja i sastaviti izvješće o ispitivanju
O modulu
U ovom modulu nastaje aplikacija. Modeli pripremljeni u prvom modulu i znanje o percepciji, praćenju i zaslonima iz drugog modula slažu se u scenu u kojoj korisnik stoji uz radni stol, hvata dijelove, sklapa mobilni robot MR-1, doznaje što koji dio radi i pušta ga da vozi.
Prve četiri jedinice grade temelje: VR projekt s dodatkom za OpenXR, programsku logiku nacrtima ili skriptama, rig s kamerom na visini očiju, kontrolerima i animiranim rukama te interakciju hvatanjem i točkama interesa. Načela su opisana neovisno o alatu; kao primjer izvedbe koristi se okruženje s vizualnim programiranjem nacrtima (npr. Unreal Engine), a gdje pomaže navodi se i izvedba u okruženju s C# skriptama (npr. Unity s paketom za XR interakciju). Točke interesa grade se tako da ista logika radi s mišem, pogledom, kontrolerom i gestama, pa se velik dio rada može obaviti i bez naočala.
Zadnje tri jedinice vode aplikaciju do predaje: kretanje teleportom, okretanjem u koracima i izbornim kontinuiranim kretanjem uz vinjetu; integraciju modela, logike i uređaja s vezom prema simulatoru robota i izgradnjom za računalo s mišem, PC-VR i samostalne naočale; te ispitivanje prema testnim slučajevima, profiliranje prema budžetu okvira od 11,1 ms i ispitivanje udobnosti s ispitanicima. Rezultat modula je izgrađena aplikacija za oba ciljna uređaja i izvješće o ispitivanju, što je ujedno sadržaj četvrte faze projektnog zadatka.
Nastavne jedinice
- Otvori
3.1
Razvojno okruženje i VR projekt
Novi VR projekt iz predloška, uključivanje dodatka OpenXR, postavke iscrtavanja za 90 Hz, struktura mapa i imena te prvo pokretanje u naočalama.
- Otvori
3.2
Programska logika: nacrti, događaji i varijable
Nacrti i skripte: klase i instance, događaji i tok izvršavanja, varijable i tipovi, funkcije, grananja, komunikacija među objektima te ispis i otklanjanje pogrešaka.
- Otvori
3.3
Hardverski segmenti u sceni: kamera, kontroleri i ruke
VR pijun i njegova hijerarhija, ishodište praćenja i visina očiju, kontroleri pokreta i njihove poze, ulazne akcije i kontekst mapiranja, modeli ruku i animacija prema tipkama.
- Otvori
3.4
Interakcija: hvatanje, puštanje i točke interesa
Hvatanje i puštanje, uloga okidača, hvatišta i dodirne podloge, prebacivanje iz ruke u ruku, postavljanje na ciljno mjesto i točke interesa s jednom logikom za miš, pogled, kontroler i geste.
- Otvori
3.5
Kretanje u sceni i udobnost
Teleport lukom, okretanje u koracima, kontinuirano kretanje s vinjetom i postavke udobnosti u laboratoriju VR-1.
- Otvori
3.6
Integracija modela, logike i uređaja u funkcionalno okruženje
Uvoz i sklapanje robota MR-1, kolizije, veza sa simulatorom robota i izgradnja za PC i samostalne naočale.
- Otvori
3.7
Testiranje funkcionalnosti i performansi
Testni slučajevi, profiliranje, budžet okvira, ispitivanje udobnosti s ispitanicima, izvješće i predaja.
Ključni pojmovi modula
| Pojam | Značenje |
|---|---|
| razvojno okruženje (engl. real-time engine) | program koji u stvarnom vremenu iscrtava scenu, računa fiziku, čita ulaz i izgrađuje aplikaciju |
| projekt (engl. project) | mapa sa svim sadržajem, postavkama i logikom jedne aplikacije |
| nacrt (engl. Blueprint) | vizualni program sastavljen od čvorova povezanih izvršnim i podatkovnim žicama |
| čvor (engl. node) | jedna naredba ili vrijednost u nacrtu |
| pijun (engl. pawn, XR rig) | objekt koji u sceni predstavlja korisnika s glavom i rukama |
| ishodište praćenja (engl. tracking origin) | referentna točka praćenja, za stajanje na razini poda |
| onaj koji djeluje (engl. interactor) | ruka, zraka, pogled ili pokazivač koji traži predmet i djeluje na njega |
| predmet interakcije (engl. interactable) | objekt koji se može uhvatiti, odabrati ili pritisnuti |
| Teleport (engl. teleportation) | trenutno premještanje riga na odabrano odredište bez prikaza gibanja |
| Vinjeta (engl. vignette, tunneling) | zatamnjenje rubova vidnog polja za vrijeme umjetnog gibanja radi udobnosti |
| Utor za priklapanje (engl. socket, attach point) | prazni objekt s ishodištem i zakretom dijela u sklopljenom stanju |
| Most prema simulatoru (engl. bridge) | mali program koji prenosi poruke između VR aplikacije i simulatora robota |
| Testni slučaj (engl. test case) | zapis jednog provjerljivog zahtjeva s koracima, očekivanim rezultatom i kriterijem prolaza |
| Budžet okvira (engl. frame budget) | vrijeme dostupno za jedan okvir, 11,1 ms pri 90 Hz, s ciljem od 9,0 ms za CPU i GPU |
Vježbe uz modul
Uz modul idu 9 vježbi, ukupno 18 sati. Pitanja u vježbama su bez odgovora, a rješenje se otvara gumbom Prikaži rješenje; upute za nastavnika su na dnu svake vježbe.
- Otvori
VJEŽBA V7 · 2 SATA
Novi VR projekt u razvojnom okruženju
Iz predloška VR projekta u razvojnom okruženju s nacrtima izrađuje se projekt virtualnog laboratorija VR-1 s dodatkom OpenXR, uređenom strukturom mapa i prvom scenom u mjerilu 1 : 1. Projekt se pokreće u naočalama i provjerava prema budžetu okvira od 11,1 ms.
- Otvori
VJEŽBA V8 · 2 SATA
Prva programska logika: događaji, varijable, ispis
Prva programska logika laboratorija VR-1 u nacrtu: događaj pri pokretanju, varijable, ispis na zaslon i grananje koje prati koliko je dijelova robota skupljeno. Isti tok izveden je i kao kratki primjer u okruženju s C# skriptama.
- Otvori
VJEŽBA V9 · 2 SATA
Kamera na visini očiju i modeli kontrolera
Izrada vlastitog igrača za laboratorij VR-1: VR ishodište na podu, kamera koju vode naočale i dva kontrolera s vidljivim modelima. Provjerava se da korisnici različite visine vide radni stol na stvarnih 750 mm i da zraka iz kontrolera pokazuje tamo kamo ruka pokazuje.
- Otvori
VJEŽBA V10 · 2 SATA
Modeli ruku i animacija prema tipkama
Modeli kontrolera u laboratoriju VR-1 zamjenjuju se modelima lijeve i desne ruke s tri položaja: otvorena ruka, pokazivanje i šaka. Položaj se miješa prema vrijednostima hvatišta i okidača, uz izglađivanje prijelaza neovisno o broju sličica.
- Otvori
VJEŽBA V11 · 2 SATA
Hvatanje, puštanje i prebacivanje iz ruke u ruku
Dijelovi mobilnog robota MR-1 na radnom stolu laboratorija VR-1 hvataju se hvatištem (bočnom tipkom kontrolera), puštaju i prebacuju iz ruke u ruku. Logiku gradite nacrtima: traženje najbližeg objekta u dosegu, pričvršćivanje na ruku i predaja fizici pri puštanju.
- Otvori
VJEŽBA V12 · 2 SATA
Točke interesa: miš, pogled, kontroler i geste
Na šest dijelova robota MR-1 postavljaju se točke interesa koje se ističu, pokazuju natpis i otvaraju panel s objašnjenjem. Logika se piše jednom, u C# komponenti, a miš, pogled, kontroler i geste samo su različiti ulazi koji je pozivaju.
- Otvori
VJEŽBA V13 · 2 SATA
Teleport, okretanje u koracima i vinjeta
Korisnik se laboratorijem VR-1 kreće teleportom lukom do 4 m i okreće u koracima od 30°, a kontinuirano kretanje uključuje se samo po izboru i uz vinjetu. Vježba povezuje logiku kretanja nacrtima s udobnošću i sigurnošću prostora za igru.
- Otvori
VJEŽBA V14 · 2 SATA
Uvoz i sklapanje mobilnog robota u sceni
Dvanaest dijelova robota MR-1 uvozi se u scenu laboratorija VR-1 i rukama sklapa na radnom stolu. Vježba povezuje ishodišta, kolizijske oblike, fiziku i hijerarhiju sklopa s logikom prihvata dijela na ležište.
- Otvori
VJEŽBA V15 · 2 SATA
Testni slučajevi, mjerenje performansi i izvješće
Gotova aplikacija laboratorija VR-1 ispituje se prema 18 testnih slučajeva na dva uređaja, mjere se vrijeme okvira, pozivi za crtanje i trokuti, a udobnost se provjerava s ispitanicima. Rezultati se predaju kao kratko izvješće s odlukama o ispravcima.