Preskoči na sadržaj
FORTRONIQ
IzbornikDigitalni sadržajiVirtualna stvarnostVježbeV7 Novi VR projekt u razvojnom okruženju

VJEŽBA V7 · MODUL 3 · RAZVOJ OKRUŽENJA VIRTUALNE STVARNOSTI

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.

Moći ću:
  • izraditi novi VR projekt iz predloška i uključiti dodatak OpenXR
  • objasniti ulogu standarda OpenXR i aktivnog pokretača
  • urediti strukturu mapa i nazive prema dogovorenim pravilima
  • postaviti prvu scenu laboratorija u mjerilu 1 : 1 i pokrenuti je u naočalama
  • izračunati budžet okvira i broj piksela koje sustav iscrtava u sekundi

O vježbi

Vježba V7Trajanje: 2 sataModul 3

Prije vježbe proći gradivo: 2.5 Softverska rješenja: pokretači, OpenXR i razvojni alati, 3.1 Razvojno okruženje i VR projekt.

Pitanja i zadaci na ovoj stranici su bez odgovora. Rješenje s postupkom otvara se gumbom Prikaži rješenje ispod svakog pitanja, a upute za nastavnika nalaze se na dnu stranice.

Zadatak

Izradite projekt VR1_Laboratorij za aplikaciju VR-1. Projekt se temelji na predlošku VR projekta, koristi nacrte (engl. Blueprint) i dodatak OpenXR, a prva ciljna oprema je uređaj A (PC-VR, 2 × 2448 × 2448 px, 90 Hz) te uređaj B spojen na računalo. U novoj sceni postavite pod laboratorija 8 × 6 m i radni stol 1600 × 800 mm visine 750 mm.

Zahtjevi: stabilnih 90 sl/s (vrijeme okvira 11,1 ms, GPU i CPU ≤ 9,0 ms), pokretanje ≤ 10 s, putanja projekta bez razmaka i dijakritičkih znakova. Predaje se arhiva projekta, snimka zaslona strukture mapa i popis ulaznih akcija iz predloška.

Oprema i pribor

  • računalo za VR i uređaj A ili uređaj B spojen na računalo
  • razvojno okruženje s predloškom VR projekta i dodatkom OpenXR (npr. Unreal Engine)
  • aktivan pokretač OpenXR na računalu (provjeren u vježbi V06)
  • mapa na lokalnom disku, izvan mapa koje se sinkroniziraju s oblakom

Pravila koja se primjenjuju

OpenXR je otvoreni standard sučelja između aplikacije i VR opreme. Aplikacija poziva OpenXR, a pokretač proizvođača prevodi pozive za svoje naočale. Zato ista izgradnja radi na uređajima A i B, ali samo s pokretačem koji je trenutačno aktivan.

Budžet okvira je 11,1 ms pri 90 Hz. Dobra praksa u VR projektima je iscrtavanje oba oka u jednom prolazu (engl. instanced stereo ili multiview) i, u okruženjima koja to nude, prosljeđeno sjenčanje (engl. forward shading) s višestrukim uzorkovanjem rubova (MSAA); to je preporuka koju treba potvrditi mjerenjem na vlastitoj sceni. Nazivi tih opcija razlikuju se po inačici. Mjerilo je 1 : 1; u okruženju iz primjera jedna jedinica je 1 cm.

Pažnja

Projekt u mapi s razmacima, dijakritičkim znakovima ili u mapi koju sinkronizira usluga u oblaku čest je uzrok pogrešaka pri izgradnji i gubitka datoteka. Radite na lokalnom disku, a kopiju spremajte arhivom ili sustavom za upravljanje inačicama.

Crtež

aplikacija VR-1: scena, nacrti, ulaz razvojno okruženje + dodatak OpenXR OpenXR: standardno sučelje pokretač A pokretač B uređaj A (PC-VR) uređaj B VR1_Laboratorij/ Content/ Mape/ Nacrti/ Modeli/ Materijali/ Ulaz/ Config/ Saved/, Intermediate/ (ne arhivirati) aktivan je samo jedan pokretač
Slika V7.1 — Lijevo: slojevi od aplikacije preko OpenXR-a do aktivnog pokretača i uređaja (puna crta: aktivni put). Desno: primjer strukture mapa projekta; nazivi sistemskih mapa ovise o okruženju.

Postupak

  1. Novi projekt. U pokretaču razvojnog okruženja odaberite predložak VR projekta, projekt s nacrtima, ciljnu platformu računalo i skalabilnu razinu kvalitete (primjerenija za VR od najviše), bez početnog sadržaja. Naziv VR1_Laboratorij, putanja npr. D:\VR\VR1_Laboratorij.
  2. Dodaci. U popisu dodataka provjerite da je OpenXR uključen; ostale dodatke za posebne uređaje ne uključujte ako ih ne trebate. Ponovno pokrenite okruženje.
  3. Postavke iscrtavanja. U postavkama projekta pronađite iscrtavanje oba oka u jednom prolazu, prosljeđeno sjenčanje i MSAA te ih uključite ako postoje. Zapišite točne nazive u svojoj inačici.
  4. Pregled u naočalama. Pokrenite oglednu scenu predloška u načinu pregleda u VR-u. Provjerite praćenje glave, oba kontrolera i teleport.
  5. Predložak. Pronađite objekt igrača (engl. pawn) s kamerom i kontrolerima te popis ulaznih akcija. Zapišite akcije i tipke na koje su vezane.
  6. Struktura i scena. Izradite mape prema slici V7.1. Nova scena L_Laboratorij: pod 8 × 6 m, stol 1600 × 800 × 750 mm, početni položaj igrača 0,5 m od stola. Postavite je kao početnu scenu.
  7. Spremanje. Spremite sve, zatvorite okruženje, izmjerite vrijeme pokretanja scene u naočalama i arhivirajte projekt bez privremenih mapa.

Inačica bez naočala. Koraci 1–3 i 5–7 rade se bez naočala, a scena se pokreće u prozoru s mišem i tipkovnicom. Pregled u VR-u obično nije dostupan dok pokretač ne prijavi spojene naočale.

Pitanja i zadaci

1. Što je zadaća standarda OpenXR, a što pokretača? Što se mijenja u projektu kad se s uređaja A prijeđe na uređaj B spojen na računalo?

Prikaži rješenje

OpenXR propisuje zajedničke pozive za položaj glave i ruku, ulazne akcije i predaju slike. Pokretač proizvođača te pozive izvodi za svoje naočale. U projektu se ne mijenja ništa; mijenja se aktivni pokretač na računalu. Razlike u tipkama rješavaju se vezama ulaznih akcija za svaki tip kontrolera.

2. Što predložak VR projekta obično sadrži i što od toga zadržavate za VR-1?

Prikaži rješenje

Obično: objekt igrača s kamerom i dva kontrolera, ulazne akcije za kontrolere, teleport, okretanje u koracima, hvatanje jednostavnih predmeta i oglednu scenu. Za VR-1 se zadržavaju igrač, ulazne akcije, teleport i okretanje (traženi su), a ogledna scena i njezini predmeti se ne koriste.

3. Računski. Koliko je milisekundi i koji udio vremena okvira pri 90 Hz rezerva ako GPU i CPU smiju trošiti najviše 9,0 ms?

Prikaži rješenje

Vrijeme okvira je 1000 / 90 = 11,1 ms. Rezerva je 11,1 − 9,0 = 2,1 ms, tj. 2,1 / 11,1 ≈ 19 %. Rezerva pokriva kolebanja opterećenja i rad pokretača, npr. izobličenje slike za leće.

4. Računski. Koliko piksela po okviru i u sekundi iscrtava uređaj A pri punoj razlučivosti i 90 Hz? Koliko pri razlučivosti iscrtavanja 80 % po svakoj osi?

Prikaži rješenje

Po okviru: 2 · 2448 · 2448 = 11 985 408 ≈ 12,0 Mpx. U sekundi: 11 985 408 · 90 ≈ 1,08 milijardi piksela. Pri 80 % po osi broj piksela pada na 0,8² = 0,64: ≈ 7,67 Mpx po okviru i ≈ 690 milijuna u sekundi. Za usporedbu, uređaj B: 2 · 2064 · 2208 ≈ 9,11 Mpx po okviru.

5. Računski. Pod i stol izrađujete od kocke brida 1 m s ishodištem u središtu. Koja su mjerila po osima i visina središta za pod debljine 0,1 m (gornja ploha na 0) i stol kao jedan blok?

Prikaži rješenje

Pod: mjerilo (8; 6; 0,1), središte na −0,05 m. Stol: mjerilo (1,6; 0,8; 0,75), središte na 0,75 / 2 = 0,375 m. U okruženju s jedinicom 1 cm to je −5 cm i 37,5 cm. Kasnije se stol zamjenjuje modelom s ishodištem na dnu.

6. Zašto se mape Saved i Intermediate (ili njihovi ekvivalenti) ne arhiviraju i ne pohranjuju u sustav za upravljanje inačicama?

Prikaži rješenje

Sadrže privremene i izvedene datoteke (međuspremnike, zapise, prevedene sjenčare) koje okruženje ponovno stvara. Velike su, ovise o računalu i često uzrokuju sukobe pri spajanju promjena. Pohranjuju se izvorne datoteke: sadržaj, postavke i projektna datoteka.

7. Kasnije se aplikacija gradi izravno za uređaj B. Koliko je prosječno trokuta po pozivu za crtanje dopušteno na A, a koliko na B, i što iz toga zaključujete?

Prikaži rješenje

A: 750 000 / 1000 = 750 trokuta po pozivu. B: 300 000 / 150 = 2000. Uređaj B ima 40 % trokuta uređaja A, ali samo 15 % poziva, pa se objekti na B moraju više spajati u veće cjeline s manje materijala.

8. Pronađi pogrešku. Opcija pregleda u VR-u je zasivljena, iako su naočale spojene. Navedite tri moguća uzroka redom provjere.

Prikaži rješenje

1) Pokretač na računalu nije pokrenut ili ne prepoznaje naočale. 2) Aktivni pokretač OpenXR pripada drugom uređaju. 3) Dodatak OpenXR u projektu nije uključen ili okruženje nije ponovno pokrenuto nakon uključivanja.

Za nastavnika

Otvori upute za nastavnika

Priprema

Instalirajte istu inačicu razvojnog okruženja na sva računala i jednom ranije otvorite predložak, jer se pri prvom otvaranju dugo prevode sjenčari (engl. shaders). Provjerite aktivni pokretač OpenXR.

Tijek sata

  1. 10 min: slojevi aplikacija – OpenXR – pokretač (slika V7.1).
  2. 25 min: novi projekt, dodaci, postavke iscrtavanja.
  3. 20 min: pregled u naočalama i proučavanje predloška.
  4. 25 min: struktura mapa i scena laboratorija.
  5. 10 min: arhiviranje, pitanja.

Očekivani rezultati

Projekt se otvara bez pogrešaka, scena L_Laboratorij je početna, stol je visok 750 mm, popis ulaznih akcija ima barem šest stavki, arhiva ne sadrži privremene mape.

Česte pogreške

  • projekt u mapi s dijakritičkim znakovima ili u oblaku
  • stol u pogrešnom mjerilu jer je zanemarena jedinica 1 cm
  • uključeno više dodataka za uređaje koji se međusobno sukobljavaju

Vrednovanje

KriterijBodovi
Projekt iz predloška, OpenXR, postavke iscrtavanja5
Pokretanje u naočalama, popis ulaznih akcija4
Struktura mapa i nazivi3
Scena u mjerilu 1 : 14
Arhiva i odgovori na pitanja4
Ukupno20