Preskoči na sadržaj
FORTRONIQ

VIRTUALNA STVARNOST

Provjera znanja

Ispitna pitanja

Baza od 99 ispitnih pitanja iz virtualne stvarnosti: definicije, objašnjenja, usporedbe, računski zadaci, analiza scene, postupci i traženje pogrešaka, s rješenjima i postupkom. Pitanja su vezana uz ishode učenja I1–I7 i zajednički primjer virtualnog laboratorija VR-1, a na kraju su tri primjera ispitnih setova od 50 bodova.

Moći ću:
  • provjeriti vlastito znanje po modulima prije ispita
  • izračunati vrijeme okvira, gustoću piksela, budžete trokuta i poziva, memoriju tekstura i parametre kretanja
  • analizirati scenu, UV mapu, nacrt i ciljeve teleporta na shematskom crtežu
  • pronaći i obrazložiti tipične pogreške u modelima, postavljanju sustava i programskoj logici
  • sastaviti ispitni set s pragom po ishodu učenja

Rješenja

Zadaci i pitanja su bez odgovora. Rješenje s postupkom otvara se gumbom Prikaži rješenje ispod svakog zadatka; najprije riješite sami, a tek onda provjerite.

Kako koristiti pitanja

Baza sadrži 99 pitanja raspoređenih po tri modula područja (32, 33 i 34). Svako pitanje ima oznaku modula i rednog broja (npr. 2.9 je deveto pitanje drugog modula), vrstu, rješenje s postupkom i vezu s ishodom učenja područja.

Pitanja služe na dva načina. Za samoprovjeru: pročitajte pitanje, riješite ga na papiru i tek onda otvorite rješenje. Računske zadatke riješite do broja s jedinicom i jednom rečenicom protumačite što rezultat znači za aplikaciju. Za sastavljanje ispita: nastavnik bira pitanja iz više vrsta i modula tako da svaki ishod bude pokriven s dovoljno bodova; na kraju stranice su tri primjera gotovih setova.

Brojevi u zadacima odnose se na zajednički primjer područja, virtualni laboratorij VR-1: laboratorij 8 × 6 m, radni stol 1600 × 800 mm na 750 mm, robot MR-1 od 12 dijelova (220 × 180 × 110 mm, 1,2 kg), LOD0 28 000 trokuta, teksture 1024 px, uređaj A (PC-VR, 2 × 2448 × 2448 px, 90 Hz, oko 116°) i uređaj B (samostalne naočale, 2 × 2064 × 2208 px, 90 Hz, oko 110°), cilj 90 sl/s (11,1 ms). Svi rezultati provjereni su računom; gdje je podatak pretpostavka zadatka ili opći raspon, to je u pitanju izričito rečeno.

Vrste pitanja

VrstaŠto se tražiKako se boduje (prijedlog)Broj u bazi
Definicijatočno izreći pojam i njegova bitna obilježja2–4 boda; puni bodovi samo uz sva bitna obilježja15
Objašnjenjeobrazložiti načelo, pojavu ili odluku na primjeru VR-14–6 bodova; pola za načelo, pola za primjenu25
Usporedbausporediti dva ili više pristupa, uređaja ili formata po zadanim svojstvima4–6 bodova; po svojstvu i zaključku14
Računski zadatakvrijeme okvira, gustoća piksela, budžeti, memorija, geometrija, kretanje4–6 bodova; postupak, rezultat s jedinicom, tumačenje30
Analiza sceneiz zadanog crteža ili opisa scene izvući zaključke4–6 bodova3
Postupaknavesti korake nekog postupka pravilnim redom4–6 bodova; redoslijed i potpunost5
Pronađi pogreškuu opisu, crtežu, kodu ili zapisu pronaći i ispraviti pogreške5–8 bodova; po pogrešci i ispravku7

Ishodi učenja područja

OznakaIshodPitanja u bazi
I1Nabrojiti i prepoznati osnovne karakteristike virtualne stvarnosti20
I2Koristiti aplikacije za računalno 3D modeliranje5
I3Izraditi digitalne objekte u programima za 3D modeliranje i pripremiti ih za virtualnu stvarnost19
I4Odabrati i pripremiti alat i materijale za razvoj okruženja virtualne stvarnosti10
I5Prilagoditi i koristiti softversko i hardversko okruženje za virtualnu stvarnost16
I6Realizirati okruženje virtualne stvarnosti u odabranom softverskom i hardverskom okruženju20
I7Testirati funkcionalnost izrađenog okruženja i služiti se stručnim nazivljem na engleskom jeziku9

Računskih zadataka ima 9 u prvom, 9 u drugom i 12 u trećem modulu. Ishod I7 (stručno nazivlje na engleskom) provjerava se i u drugim pitanjima: engleski naziv pojma naveden je uz prvi spomen, a na obrani ili ispitu može se tražiti i u pitanjima drugih ishoda.

Zapamtite

Računski zadatak bez tumačenja nosi najviše pola bodova. „11,1 ms“ je broj; „aplikacija na B troši 13,2 ms i zato ne drži 90 sl/s u pogledu na cijeli laboratorij“ je odgovor.

Modul 1 · Modeliranje digitalnih objekata za virtualnu stvarnost

Pitanja pokrivaju pripremu građe za virtualnu stvarnost: mjerilo, jedinice i osi, lanac od CAD sustava do razvojnog okruženja, teselaciju i izvoz, slobodno modeliranje i obradu mreže, vrste digitalnih objekata, PBR materijale, UV mape i teksture, uloge objekata, kolizije i hijerarhiju te budžet, razine detalja i provjeru prije uvoza. Zajedničke osnove 3D modeliranja pokrivene su u području Proširena stvarnost; ovdje je naglasak na VR-u (stereo, 90 Hz, dohvat rukom).

1.1 Definicija. Što znači zahtjev da model u virtualnoj stvarnosti bude u mjerilu 1 : 1 i zašto je u VR-u važniji nego na zaslonu računala?

Prikaži rješenje

Mjerilo 1 : 1 znači da jedna jedinica duljine u sceni odgovara točno jednoj stvarnoj jedinici: robot MR-1 dug 220 mm u sceni je dug 0,22 m, stol je visok 0,75 m. U VR-u korisnik mjeri svijet vlastitim tijelom: visinom očiju, razmakom zjenica i dohvatom ruke. Model u krivom mjerilu na zaslonu izgleda samo „malo drukčije“, a u naočalama odmah djeluje kao igračka ili div, stol ne odgovara stvarnoj visini ruke, a dohvat do 0,8 m više ne odgovara dosegu. Zato se mjerilo provjerava mjernim objektom od 1 m i poznatom mjerom (visina stola).

Veza s ishodom: I3.

1.2 Objašnjenje. Opišite lanac CAD sustav → program za mrežu → razvojno okruženje za robot MR-1. Što se radi u kojem koraku i što se predaje sljedećem koraku?

Prikaži rješenje

CAD sustav: parametarski model u milimetrima; uklanjaju se unutarnji i nevidljivi dijelovi, sklop se dijeli na dijelove koji će se zasebno gibati, a zatim se izvozi teselirana mreža (ili STEP za daljnju teselaciju).

Program za mrežu (npr. Blender): decimacija na budžet (312 000 → 28 000 trokuta), popravak normala, ishodišta na funkcijskim točkama, UV mape, razine detalja, kolizijski oblici, pečenje mapa normala; izvoz u glTF ili FBX.

Razvojno okruženje: uvoz s ispravnom pretvorbom jedinica i osi, materijali, dodjela fizike i uloge objektu, provjera mjerila u sceni.

Svaki korak predaje sljedećem datoteku i zapis (protokol izvoza), da se pogreška može pronaći u koraku u kojem je nastala.

Veza s ishodom: I2.

1.3 Računski zadatak. Robot MR-1 (220 mm) uvezen je bez pretvorbe jedinica: vrijednost 220 pročitana je kao 220 jedinica. Koliki je robot u okruženju koje radi u centimetrima, a koliki u okruženju koje radi u metrima? Koji faktor mjerila treba upisati pri uvozu u svakom od njih?

Prikaži rješenje

okruženje u cm: 220 cm = 2,2 m (10 puta prevelik) → faktor 0,1

okruženje u m: 220 m (1000 puta prevelik) → faktor 0,001

Faktor se upisuje pri izvozu ili uvozu, a ne naknadnim skaliranjem objekta u sceni: skaliran objekt nosi mjerilo i na djecu, fiziku i priključne točke, pa pogreške nastaju kasnije.

Veza s ishodom: I3.

1.4 Analiza scene. Na slici I.1 prikazan je kotač robota s dva položaja ishodišta. Što će se dogoditi kad skripta zakrene kotač za 90° u slučaju A, a što u slučaju B? Koji je položaj ispravan?

AB X Z ishodište iz CAD sklopa X Z ishodište na osi vrtnje
Slika I.1 — Kotač Ø65 mm s dva položaja ishodišta: A u kutu omeđujuće kutije, B na osi vrtnje.
Prikaži rješenje

U slučaju A ishodište je u kutu omeđujuće kutije, za polumjer kotača (32,5 mm, na slici 70 px) lijevo i ispod osi. Vrtnja za 90° zakrenut će cijeli kotač oko te točke: središte kotača opisuje kružnicu polumjera √(70² + 70²) ≈ 99 px na slici (u stvarnosti ≈ 46 mm), pa kotač „odleti“ s osovine. U slučaju B ishodište je na osi vrtnje i kotač se okreće na mjestu. Ispravan je B.

Isto vrijedi za motor, prekidač i poklopac: ishodište se postavlja u funkcijsku točku (os vrtnje, točka hvata ili točka spajanja).

Veza s ishodom: I3.

1.5 Definicija. Što je teselacija CAD modela i koja dva parametra najčešće određuju gustoću dobivene mreže?

Prikaži rješenje

Teselacija je pretvorba točnih matematičkih ploha CAD modela (ravnine, valjci, NURBS plohe) u mrežu trokuta. Gustoću najčešće određuju dopušteno odstupanje tetive (koliko smije trokut odstupiti od prave plohe, u mm) i najveći kut između susjednih trokuta. Manje odstupanje i manji kut daju glađe obrise, ali više trokuta. Nazivi parametara razlikuju se po CAD sustavu.

Veza s ishodom: I2.

1.6 Usporedba. Usporedite formate STEP, glTF i FBX za prijenos modela robota MR-1 u VR aplikaciju. Koji nosi točnu geometriju, a koji materijale i hijerarhiju?

Prikaži rješenje
FormatSadržajUloga u lancu
STEPtočna (B-rep) geometrija i struktura sklopa, bez mreže i materijala za prikazizlaz iz CAD sustava, ulaz u teselaciju
glTFmreža, PBR materijali, teksture, hijerarhija, animacije; otvoren standard, kompaktanprijenos gotovih modela za prikaz u stvarnom vremenu
FBXmreža, materijali, hijerarhija, kosturi i animacijeraširen za razmjenu s razvojnim okruženjima, osobito za skeletne objekte

Za MR-1 STEP je izvor, a u razvojno okruženje ide glTF (3,2 MB) ili FBX. STEP se u pravilu ne uvozi izravno u VR scenu jer se tada teselacija ne kontrolira.

Veza s ishodom: I4.

1.7 Računski zadatak. Kotač Ø65 mm teselira se kao valjak s N segmenata po obodu. Najveće odstupanje ruba od kružnice (visina odsječka) je s = r · (1 − cos(π / N)). Izračunajte s za N = 16 i N = 32 te broj trokuta valjka (plašt 2N, dvije baze po N − 2). Vidi li se razlika kad korisnik drži kotač na 0,5 m, ako uređaj daje oko 2,4 piksela po mm na toj udaljenosti?

Prikaži rješenje

r = 32,5 mm

N = 16: s = 32,5 · (1 − cos 11,25°) = 0,62 mm; trokuta 2 · 16 + 2 · 14 = 60

N = 32: s = 32,5 · (1 − cos 5,625°) = 0,16 mm; trokuta 2 · 32 + 2 · 30 = 124

Na 0,5 m odstupanje od 0,62 mm iznosi oko 1,5 piksela i vidi se kao uglat obris; 0,16 mm je oko 0,4 piksela i ne vidi se. Obod kotača je silueta koja se gleda izbliza, pa je N = 32 opravdan, a detalji gazne površine dodaju se mapom normala, ne geometrijom.

Veza s ishodom: I3.

1.8 Objašnjenje. Zašto se prije izvoza iz CAD sustava uklanjaju unutarnji dijelovi reduktora, navoji i sitni elementi pločice, iako su u stvarnom robotu prisutni?

Prikaži rješenje

U VR-u se iscrtava samo ono što se vidi, ali grafička kartica ne zna unaprijed da je nešto skriveno: svaki trokut prolazi obradu vrhova, a skriveni dijelovi troše i memoriju i pozive za crtanje. Navoji i unutrašnjost reduktora mogu imati desetke tisuća trokuta, a nikad se ne vide jer je reduktor zatvoren. Sitni elementi manji od 1 mm na 0,5 m zauzimaju oko dva piksela i bolje ih je prikazati teksturom. Uklanjanje je prvi i najjeftiniji korak prema budžetu od 28 000 trokuta.

Veza s ishodom: I3.

1.9 Definicija. Što je topologija mreže i zašto se za zaobljene dijelove koji se deformiraju ili ručno doteruju preferiraju četverokuti?

Prikaži rješenje

Topologija je raspored vrhova, bridova i ploha mreže i način na koji su povezani (tok bridova). Četverokuti daju pravilne petlje bridova koje se lako označuju, zaglađuju i dijele, a pri deformaciji (npr. prsti modela ruke) savijaju se predvidljivo. Za prikaz se svaka mreža ionako pretvara u trokute, pa je za krute dijelove robota trokutna mreža iz decimacije prihvatljiva; za modele ruku i dijelove koji se ručno doteruju bolja je čista topologija s četverokutima.

Veza s ishodom: I2.

1.10 Računski zadatak. Robot na LOD0 ima 28 000 trokuta. Koliko trokuta u sekundi grafička kartica mora obraditi za robot pri 90 Hz, ako se scena iscrtava zasebno za svako oko? Koliko je to uz jednoprolazno iscrtavanje u kojem se geometrija šalje jednom za oba oka?

Prikaži rješenje

zasebno za oba oka: 28 000 · 2 · 90 = 5 040 000 trokuta/s

jednoprolazno: 28 000 · 90 = 2 520 000 trokuta/s za obradu vrhova; rasterizacija se i dalje izvodi za dva pogleda

Broj trokuta robota sam za sebe nije velik za suvremenu grafičku karticu; važan je zbroj cijele scene i broj poziva za crtanje. Primjer pokazuje zašto se u VR-u svaka ušteda množi s dva i s 90.

Veza s ishodom: I3.

1.11 Pronađi pogrešku. Poklopac robota modeliran je kao polovica i zrcaljen. U sceni se poklopac izvana ne vidi, a iznutra se vidi. Što je pogreška i kako se ispravlja?

Prikaži rješenje

Zrcaljenje je okrenulo normale (redoslijed vrhova trokuta) zrcaljene polovice ili cijelog dijela. Razvojna okruženja u pravilu ne iscrtavaju stražnju stranu trokuta, pa se ploha čija normala gleda prema unutra izvana ne vidi. Ispravak: u programu za mrežu preračunati ili okrenuti normale prema van i primijeniti transformaciju zrcaljenja prije izvoza. Uključivanje dvostranog materijala samo skriva pogrešku i udvostručuje posao sjenčanja.

Veza s ishodom: I3.

1.12 Postupak. Navedite redom korake postavljanja ishodišta i orijentacije dijela „motor L“ prije izvoza.

Prikaži rješenje
  1. Primijeniti sve transformacije (mjerilo 1, zakret 0) da mreža bude u stvarnim mjerama.
  2. Postaviti ishodište na os izlaznog vratila, na čelu prirubnice koja naliježe na šasiju.
  3. Orijentirati dio tako da os vratila leži uzduž osi koja je u okruženju zadana za vrtnju kotača.
  4. Uskladiti os „gore“ i „naprijed“ s protokolom izvoza (CAD i razvojno okruženje često imaju različitu os gore).
  5. Imenovati dio prema pravilu (npr. MR1_Motor_L) i izvesti.
  6. U razvojnom okruženju provjeriti položaj ishodišta i da se motor bez pomaka poklapa s priključnom točkom na šasiji.

Veza s ishodom: I2.

1.13 Usporedba. Usporedite poligonalni model, NURBS model, vokselni model i oblak točaka. Koji od njih razvojno okruženje izravno iscrtava u VR-u?

Prikaži rješenje

Poligonalni model (mreža trokuta ili četverokuta) je oblik koji grafičke kartice izravno iscrtavaju; svi drugi prikazi za VR se u pravilu pretvaraju u njega. NURBS su matematičke plohe točnog oblika, osnova CAD sustava; prije prikaza se teseliraju. Vokselni model opisuje volumen u mreži kockica (npr. medicinske snimke, razoriva okolina); prikazuje se pretvorbom u mrežu ili posebnim postupcima. Oblak točaka (laserski skener) je skup izmjerenih točaka bez ploha; može se prikazati kao točke ili rekonstruirati u mrežu.

Izravno se iscrtava poligonalni model.

Veza s ishodom: I2.

1.14 Objašnjenje. Za okoliš laboratorija predloženo je snimanje stvarne radionice fotogrametrijom. Navedite dvije prednosti i dvije mane tog pristupa za VR-1.

Prikaži rješenje

Prednosti: realističan izgled i teksture bez ručnog modeliranja; brzo se dobije cijeli prostor s opremom u stvarnim mjerama.

Mane: dobivena mreža ima stotine tisuća do milijune trokuta i nepravilnu topologiju, pa je potrebna velika decimacija i retopologija da stane u budžet samostalnih naočala (300 000 trokuta za cijelu scenu); osvjetljenje je „zapečeno“ u teksture, a sjajne i prozirne površine (metal, staklo) rekonstruiraju se loše. Dobra praksa: fotogrametrija za pozadinu, a stol i dijelove robota modelirati iz CAD-a.

Veza s ishodom: I4.

1.15 Usporedba. Razvrstajte objekte VR-1 na statične, pokretne i skeletne: radni stol, kotač, model ruke, poklopac, police. Po čemu se te skupine razlikuju u pripremi?

Prikaži rješenje

Statični: radni stol, police — nikad se ne gibaju; smiju se spajati, dobivaju drugu UV mapu za zapečeno svjetlo.

Pokretni (kruti): kotač, poklopac — gibaju se kao cjelina; imaju vlastito ishodište, kolizijski oblik i masu, ne spajaju se s drugima.

Skeletni: model ruke — mreža se deformira kosturom (kostima prstiju), animira se prema tipkama; treba topologiju pogodnu za savijanje i težine vrhova po kostima.

Veza s ishodom: I3.

1.16 Definicija. Što je PBR materijal i koje mape obično čine materijal dijela robota?

Prikaži rješenje

PBR (engl. physically based rendering) je model sjenčanja koji svojstva površine opisuje fizikalno utemeljenim veličinama, pa materijal izgleda uvjerljivo pri svakom osvjetljenju. Uobičajene mape: osnovna boja (engl. base color, albedo, bez sjena), metalnost (metal ili nemetal), hrapavost (engl. roughness, širina odsjaja), mapa normala (sitni reljef bez geometrije) i zasjenjenje okoline (engl. ambient occlusion). Metalnost, hrapavost i zasjenjenje često se spajaju u jednu kombiniranu mapu po kanalima.

Veza s ishodom: I3.

1.17 Računski zadatak. Koliko memorije zauzima jedna tekstura RGBA razlučivosti 1024 × 1024 i 2048 × 2048 bez kompresije, bez mip-razina i s njima? Koliko se ušteda po mapi postiže smanjenjem 2048 → 1024?

Prikaži rješenje

1024² · 4 B = 4 194 304 B = 4 MB; s mip-razinama · 4/3 ≈ 5,3 MB

2048² · 4 B = 16 MB; s mip-razinama ≈ 21,3 MB

ušteda = 21,3 − 5,3 = 16 MB po mapi (75 %)

Smanjenje stranice na pola smanjuje memoriju na četvrtinu. (MB = 1024 × 1024 B.)

Veza s ishodom: I4.

1.18 Računski zadatak. Uređaj A ima 2448 piksela na 116° vidnog polja. Koliko piksela zaslona pada na 1 mm površine dijela koji se gleda s 0,5 m? Koliko teksela po mm daje tekstura od 1024 px preko gornje plohe šasije duge 220 mm i je li to dovoljno?

Prikaži rješenje

2448 / 116 ≈ 21,1 piksela po stupnju

1 mm na 0,5 m: 2 · arctg(0,5 / 500) = 0,115° → 0,115 · 21,1 ≈ 2,4 piksela/mm

1024 / 220 ≈ 4,7 teksela/mm

Na jedan piksel dolaze oko dva teksela, što je dovoljno i ostavlja rezervu za pogled s manje udaljenosti. Uz 512 px (2,3 teksela/mm) tekstura bi bila na granici i izbliza mutna.

Veza s ishodom: I3.

1.19 Objašnjenje. Zašto statični objekti okoliša dobivaju drugu UV mapu za svjetlo i zašto se u njoj otoci ne smiju preklapati, iako se u prvoj UV mapi smiju?

Prikaži rješenje

Prva UV mapa služi za teksturu materijala: ako dvije ravne plohe (npr. dvije jednake noge stola) dijele isti dio teksture, to je ušteda i ne smeta. Druga UV mapa služi za mapu svjetla (engl. lightmap) u koju se unaprijed peče osvjetljenje i sjene. Svaka točka površine ima svoje osvjetljenje, pa svaki dio površine mora imati vlastiti prostor u mapi; preklopljeni otoci dobili bi istu sjenu na dva mjesta. Otoci trebaju i razmak (rub) da se svjetlo ne „prelijeva“ između njih pri mip-razinama. Pokretni dijelovi robota drugu UV mapu ne trebaju jer se osvjetljavaju dinamički.

Veza s ishodom: I3.

1.20 Objašnjenje. Što je atlas tekstura i kako smanjuje broj poziva za crtanje u okolišu laboratorija?

Prikaži rješenje

Atlas je jedna veća tekstura u koju su složene teksture više objekata, a UV mape tih objekata preslikane su na svoje dijelove atlasa. Objekti tada mogu dijeliti isti materijal. Poziv za crtanje (engl. draw call) je naredba grafičkoj kartici da iscrta skup trokuta s jednim materijalom; objekti s istim materijalom mogu se spojiti ili iscrtati zajedno. U VR-1 police, ormar i stol za alat s atlasom i spajanjem svode okoliš sa 168 na 98 poziva. Cijena: atlas mora imati dovoljnu razlučivost, a spojeni objekti više se ne mogu zasebno gibati ni skrivati.

Veza s ishodom: I4.

1.21 Pronađi pogrešku. Slika I.2 prikazuje UV mapu šasije. Pronađite tri pogreške i objasnite posljedicu svake.

011 1 2 3 4 5 1 – gornja ploha šasije 2 – bočna ploha, lijevo 3 – bočna ploha, desno 4 – prednja ploha 5 – donja ploha stvarne mjere ploha: prednja 180 × 40 mm gornja 220 × 180 mm
Slika I.2 — Razmotana UV mapa šasije u kvadratu 0–1 s pet otoka.
Prikaži rješenje

1 i 2 se preklapaju (gornja i lijeva bočna ploha): na preklopu obje plohe dobivaju istu teksturu, pa se npr. natpis s gornje plohe pojavi na boku.

3 izlazi izvan kvadrata 0–1: uz ponavljanje teksture dio desnog boka dobiva sadržaj s lijevog ruba mape, bez ponavljanja razvuče se rubni piksel.

4 je premalen: prednja ploha je 180 × 40 mm, a otok je manji od donje plohe 5 koja se nikad ne vidi. Gustoća teksela prednje plohe mnogo je manja nego na ostalim plohama i izbliza je mutna. Ispravno: jednaka gustoća teksela za vidljive plohe, a nevidljivoj donjoj plohi smije se dati manje prostora.

Veza s ishodom: I3.

1.22 Definicija. Navedite četiri uloge digitalnih objekata u virtualnom okruženju i za svaku primjer iz VR-1.

Prikaži rješenje

Okoliš — daje prostor i orijentaciju: zidovi, pod, police, radni stol. Interaktivni objekti — korisnik ih hvata ili pokreće: 12 dijelova robota, prekidač. Informacijski objekti — prenose podatke: oznake i ploče šest točaka interesa, brojač sklopljenih dijelova. Avatar — predstavlja korisnika: modeli ruku (i po potrebi tijela) koji prate kontrolere.

Veza s ishodom: I3.

1.23 Objašnjenje. Zašto se za dio robota kolizijski oblik ne generira iz vidljive mreže, nego se slaže od jednostavnih tijela? Koji oblik biste dodijelili kotaču, bateriji i šasiji?

Prikaži rješenje

Fizikalni sustav na svakom koraku provjerava sudare svih pokretnih tijela; za mrežu od nekoliko tisuća trokuta to je mnogo sporije i manje stabilno nego za kutiju, valjak ili kuglu. Vidljivi detalji (provrti, rubovi) za sudar su nebitni. Kotač: valjak; baterija: kutija; šasija: jedna ili dvije kutije ili konveksna ljuska. Konkavni oblici slažu se od više konveksnih jer mnogi fizikalni sustavi pokretna konkavna tijela ne podržavaju.

Veza s ishodom: I3.

1.24 Računski zadatak. Šasija stoji na stolu; njezino ishodište je u točki (3,20; 2,10; 0,75) m u koordinatama scene (os Z gore), a šasija je zakrenuta za 90° oko osi Z. Kotač L je dijete šasije s lokalnim položajem (0,000; 0,085; 0,0325) m (X naprijed, Y lijevo). Koliki je položaj kotača u sceni?

Prikaži rješenje

zakret za 90° oko Z: x′ = x · cos 90° − y · sin 90° = −y;   y′ = x · sin 90° + y · cos 90° = x

x = 3,20 − 0,085 = 3,115 m;   y = 2,10 + 0 = 2,10 m;   z = 0,75 + 0,0325 = 0,7825 m

Kotač je u točki (3,115; 2,10; 0,7825) m. Visina 0,7825 m je visina stola plus polumjer kotača, što potvrđuje da kotač dodiruje ploču stola. Zato se lokalni položaji u hijerarhiji zadaju u odnosu na roditelja: kad se šasija pomakne ili zakrene, kotač ide s njom bez ijedne dodatne naredbe.

Veza s ishodom: I3.

1.25 Definicija. Što je razina detalja (engl. level of detail, LOD) i prema čemu razvojno okruženje odlučuje koju razinu iscrtati?

Prikaži rješenje

Razina detalja je jedna od više inačica istog modela s različitim brojem trokuta (za MR-1: LOD0 28 000, LOD1 9 000, LOD2 2 500). Okruženje bira razinu prema udaljenosti od kamere ili, češće, prema veličini koju objekt zauzima na zaslonu; bliži i veći objekt dobiva detaljniju razinu. U VR-u se prag zadaje s obzirom na razlučivost naočala i stereo prikaz, a prijelaz se provjerava u naočalama jer skokovi razine izbliza jako upadaju u oči.

Veza s ishodom: I3.

1.26 Računski zadatak. Koliki kut i koliko piksela na uređaju A (21,1 piksela po stupnju) zauzima robot duljine 220 mm s udaljenosti 1,5 m i 4 m? Obrazložite pragove LOD1 i LOD2.

Prikaži rješenje

kut = 2 · arctg(0,11 / d)

d = 1,5 m: 8,4° → 8,4 · 21,1 ≈ 177 piksela

d = 4 m: 3,15° → ≈ 66 piksela

Na 1,5 m robot je širok oko 177 piksela: 28 000 trokuta dali bi gotovo jedan trokut po pikselu površine (177 × 145 ≈ 25 700 piksela), što je rasipno; 9 000 trokuta dovoljno je za obris. Na 4 m robot ima oko 66 piksela i 2 500 trokuta potpuno opisuju njegov oblik. Pragovi su zato razumni za VR-1.

Veza s ishodom: I3.

1.27 Računski zadatak. Okoliš laboratorija ima 180 000 trokuta (pretpostavka zadatka). Koliko bi robota u LOD0 (28 000 trokuta) stalo u granicu samostalnih naočala od 300 000 trokuta? Koliki je udio jednog robota u toj granici?

Prikaži rješenje

(300 000 − 180 000) / 28 000 = 4,29 → 4 robota

udio jednog robota = 28 000 / 300 000 = 9,3 %

Za uređaj A s granicom 750 000 trokuta udio je samo 3,7 %. Broj trokuta nije jedino ograničenje: svaki robot donosi i 12 poziva za crtanje, a granica za B je 150 poziva.

Veza s ishodom: I4.

1.28 Računski zadatak. Robot ima 12 dijelova i jedan materijal po dijelu. Koliko poziva za crtanje troši robot i koliki je to udio granice za B (150 poziva)? Koliko bi bilo da svaki dio ima tri materijala?

Prikaži rješenje

12 dijelova · 1 materijal = 12 poziva → 12 / 150 = 8 %

12 · 3 = 36 poziva → 36 / 150 = 24 %

Svaki materijal na objektu u pravilu znači zaseban poziv. Zato je u početnim podacima propisan jedan materijal po dijelu: zadržava vizualnu kvalitetu (tri mape u jednom materijalu), a štedi dvije trećine poziva.

Veza s ishodom: I4.

1.29 Postupak. Sastavite kontrolni popis provjere modela prije uvoza u razvojno okruženje (najmanje šest stavki).

Prikaži rješenje
  1. Mjerilo i jedinice: dio ima stvarne mjere, transformacije primijenjene.
  2. Osi: gore i naprijed prema protokolu izvoza.
  3. Ishodište na funkcijskoj točki.
  4. Broj trokuta u budžetu za LOD0, LOD1, LOD2.
  5. Normale prema van, nema dvostrukih vrhova ni rupa.
  6. UV mapa bez preklapanja (za svjetlo) i s jednakom gustoćom teksela.
  7. Jedan materijal, teksture 1024 px.
  8. Kolizijski oblik od jednostavnih tijela, nazvan prema pravilu.
  9. Naziv prema pravilu imenovanja.

Veza s ishodom: I3.

1.30 Pronađi pogrešku. U popisu dijelova VR1-D01 za prekidač piše: „LOD0 4 800 trokuta, tekstura 4096 px, kolizija: generirana iz vidljive mreže, ishodište: ishodište sklopa“. Pronađite četiri pogreške.

Prikaži rješenje

4 800 trokuta za mali prekidač je koliko i za cijelu upravljačku pločicu; budžet prekidača je oko 500 trokuta. 4096 px je 16 puta više teksela od propisanih 1024 px i besmisleno za dio od nekoliko centimetara. Kolizija iz vidljive mreže je spora; za prekidač je dovoljna kutija. Ishodište sklopa znači da se prekidač hvata i uskače u odnosu na točku izvan sebe; ishodište treba biti u središtu prekidača ili na točki spajanja s poklopcem.

Veza s ishodom: I3.

1.31 Usporedba. Usporedite spajanje mreža i instanciranje kao načine smanjenja opterećenja. Koji je prikladan za 20 jednakih kutija s vijcima na policama, a koji za zidove i pod?

Prikaži rješenje

Spajanje pretvara više objekata u jedan: jedan poziv za crtanje, ali spojeni objekti ne mogu se zasebno gibati, a cijela mreža se iscrtava i kad se vidi samo mali dio. Prikladno za zidove, pod i strop, koji se ionako gibaju zajedno i uvijek su oko korisnika.

Instanciranje iscrtava istu mrežu više puta s različitim položajima jednim pozivom ili malim brojem poziva; mreža je u memoriji jednom. Prikladno za 20 jednakih kutija na policama.

Veza s ishodom: I4.

1.32 Objašnjenje. Pridružite hrvatske nazive engleskima i jednom rečenicom objasnite svaki: level of detail, draw call, pivot, normal map, UV unwrapping, collision mesh.

Prikaži rješenje

level of detail — razina detalja: inačica modela s manje trokuta za veće udaljenosti. draw call — poziv za crtanje: naredba grafičkoj kartici za jedan skup trokuta s jednim materijalom. pivot — ishodište: točka oko koje se objekt zakreće i prema kojoj se postavlja. normal map — mapa normala: tekstura koja simulira sitni reljef promjenom smjera normala. UV unwrapping — UV razmotavanje: rasprostiranje ploha modela u ravninu teksture. collision mesh — kolizijski oblik: pojednostavljeno tijelo za izračun sudara.

Veza s ishodom: I7.

Modul 2 · Teorijske osnove i pripreme za korištenje virtualne stvarnosti

Pitanja pokrivaju teorijske osnove i opremu: definiciju i razvoj VR-a, imerziju i prisutnost, kontinuum virtualnosti, percepciju i kinetozu, vergenciju i akomodaciju, vrijeme od pokreta do fotona, fiziku, zvuk i haptiku u sceni, pokretače i OpenXR, praćenje i kontrolere, zaslone i leće, gustoću piksela te vrste uređaja i puštanje u rad.

2.1 Definicija. Definirajte virtualnu stvarnost te razliku između imerzije i prisutnosti.

Prikaži rješenje

Virtualna stvarnost (VR) je računalno stvoreno trodimenzionalno okruženje koje korisnik doživljava iznutra: slika se prikazuje stereo, prati pokrete glave (i tijela) u stvarnom vremenu, a korisnik s okruženjem djeluje rukama ili kontrolerima. Imerzija je objektivno svojstvo sustava — koliko osjetila i u kojoj mjeri sustav zamjenjuje (vidno polje, razlučivost, praćenje, zvuk, haptika). Prisutnost je subjektivni doživljaj korisnika da je „ondje“, u virtualnom prostoru. Veća imerzija olakšava prisutnost, ali je ne jamči: kašnjenje ili pogrešno mjerilo mogu je poništiti.

Veza s ishodom: I1.

2.2 Objašnjenje. Opišite u crtama razvoj virtualne stvarnosti od prvih zaslona na glavi do današnjih samostalnih naočala. Što je bila glavna tehnička prepreka u svakom razdoblju?

Prikaži rješenje

Prvi zasloni na glavi s praćenjem pojavili su se krajem 1960-ih u istraživačkim laboratorijima; bili su teški, s jednostavnom žičanom grafikom. Sljedeća desetljeća obilježili su skupi sustavi za simulatore letenja, vojsku i istraživanja, a 1990-ih pokušaj potrošačkih uređaja koji nije uspio zbog male razlučivosti, velikog kašnjenja i kinetoze. Nakon 2010. zasloni mobitela, jeftini inercijski senzori i snažne grafičke kartice omogućili su PC-VR naočale s niskim kašnjenjem, a zatim samostalne naočale s unutarnjim praćenjem i prolazom slike.

Prepreke redom: računalna snaga, cijena, kašnjenje i razlučivost, pa potrošnja energije i masa samostalnih uređaja.

Veza s ishodom: I1.

2.3 Objašnjenje. Navedite tri primjene virtualne stvarnosti u industriji ili obrazovanju i za svaku jednu korist koja se teško postiže bez VR-a.

Prikaži rješenje

Obuka za rukovanje opremom (npr. zamjena alata na glodalici, sklapanje robota u VR-1): pogreška ne košta ni alat ni ozljedu, a postupak se ponavlja neograničeno. Pregled projekta u mjerilu 1 : 1 (proizvodna ćelija, raspored stroja): dohvat, vidljivost i prolazi provjeravaju se tijelom prije gradnje. Sigurnosna obuka (evakuacija, rad na visini): uvjeti koji su u stvarnosti opasni ili neponovljivi. Zajednička korist je da se iskustvo stječe radnjom, a ne gledanjem.

Veza s ishodom: I1.

2.4 Definicija. Što je kontinuum virtualnosti?

Prikaži rješenje

Kontinuum virtualnosti je zamišljena ljestvica koja povezuje potpuno stvarno okruženje na jednom kraju i potpuno virtualno okruženje na drugom. Između su oblici miješane stvarnosti: proširena stvarnost (stvarni svijet s dodanim virtualnim sadržajem) bliže stvarnom kraju i proširena virtualnost (virtualni svijet s dodanim stvarnim elementima) bliže virtualnom. Kontinuum pokazuje da VR, AR i MR nisu odvojene tehnologije, nego položaji na istoj ljestvici.

Veza s ishodom: I1.

2.5 Analiza scene. Na slici I.3 označena su četiri položaja. Pridružite im primjere: (a) VR-1 s uključenim prolazom slike u kojem se stvarni stol vidi, a robot je virtualan; (b) VR-1 u punom VR-u; (c) video s kamere radionice bez ikakvih dodataka; (d) virtualni laboratorij u kojem se u prozoru vidi stvarna ruka korisnika iz kamere.

stvarnookruženje virtualnookruženje miješana stvarnost (MR) proširena stvarnost proširena virtualnost A B C D udio računalno stvorenog sadržaja raste s lijeva nadesno
Slika I.3 — Kontinuum virtualnosti s četiri označena položaja A–D.
Prikaži rješenje

A — (c) stvarno okruženje bez dodataka. B — (a) stvarni svijet s dodanim virtualnim robotom: proširena stvarnost. C — (d) virtualni svijet s dodanim stvarnim elementom: proširena virtualnost. D — (b) potpuno virtualno okruženje. B i C zajedno pripadaju miješanoj stvarnosti.

Veza s ishodom: I1.

2.6 Usporedba. Usporedite proširenu stvarnost (AR) i miješanu stvarnost (MR) na primjeru uređaja B s prolazom slike u boji.

Prikaži rješenje

U AR-u se virtualni sadržaj prikazuje preko stvarnog svijeta, ali ne mora biti prostorno vezan uz njega (npr. natpis u kutu pogleda). U MR-u virtualni objekti su usidreni u stvarni prostor i s njim djeluju: virtualni robot stoji na stvarnom stolu, zaklanja ga stvarna ruka, a pada na stvarni pod. Uređaj B prolazom slike i kamerama za praćenje može raditi oboje; za MR mora prepoznati ravnine i prepreke u prostoru. Granica između pojmova u praksi nije oštra i proizvođači je različito upotrebljavaju.

Veza s ishodom: I1.

2.7 Definicija. Što znači kratica XR i kako se na engleskom nazivaju VR, AR i MR?

Prikaži rješenje

XR (engl. extended reality, produžena stvarnost) je skupni naziv za sve oblike na kontinuumu virtualnosti: virtualnu (engl. virtual reality, VR), proširenu (engl. augmented reality, AR) i miješanu stvarnost (engl. mixed reality, MR). Standard OpenXR nosi to ime jer je zajedničko sučelje za sve te uređaje.

Veza s ishodom: I7.

2.8 Objašnjenje. Što je razmak zjenica (IPD) i što se događa ako se na naočalama ne podesi prema korisniku?

Prikaži rješenje

Razmak zjenica (engl. interpupillary distance, IPD) je udaljenost između središta zjenica, kod odraslih najčešće oko 58–72 mm. Naočale koriste IPD na dva načina: mehanički (razmak leća, da oko gleda kroz optičko središte) i programski (razmak dviju virtualnih kamera stereo para). Ako se ne podesi, slika je mutnija na rubovima, oči se naprežu, a osjećaj veličine i udaljenosti je pogrešan: preveliki razmak kamera čini svijet manjim, premali većim. Pri puštanju u rad IPD se podešava za svakog korisnika.

Veza s ishodom: I5.

2.9 Računski zadatak. Korisnik s IPD od 64 mm gleda dio robota na 0,5 m, a optika naočala postavlja sliku u žarišnu ravninu na oko 1,5 m (pretpostavka zadatka). Koliki je kut vergencije za 0,5 m i za 2 m? Kolika je razlika između vergencije i akomodacije u dioptrijama za predmet na 0,5 m?

IPD predmet θ žarišna ravnina vergencija: 0,5 m akomodacija: ≈ 1,5 m (pretpostavka)
Slika I.4 — Vergencija i akomodacija: oči s razmakom IPD, predmet na 0,5 m i žarišna ravnina optike na oko 1,5 m.
Prikaži rješenje

θ = 2 · arctg((IPD / 2) / d)

d = 0,5 m: θ = 2 · arctg(0,032 / 0,5) = 7,3°;   d = 2 m: θ = 1,8°

vergencija 1 / 0,5 = 2,0 D; akomodacija 1 / 1,5 = 0,67 D; razlika 1,33 D

Oči se usmjeravaju kao da je predmet na 0,5 m, a leća oka ostaje izoštrena na 1,5 m. Što je predmet bliže, razlika je veća; zato je dugotrajno gledanje sitnih detalja izbliza u VR-u zamorno.

Veza s ishodom: I1.

2.10 Objašnjenje. Što je sukob vergencije i akomodacije i koja dva pravila dobre prakse iz njega slijede za ploče s tekstom u VR-1?

Prikaži rješenje

U stvarnom svijetu oči istodobno usmjeravaju osi prema predmetu (vergencija) i izoštravaju leću na istu udaljenost (akomodacija). U naočalama slika je optički na jednoj stalnoj udaljenosti, pa se vergencija mijenja, a akomodacija ne. Mozak dobiva proturječne podatke, što uzrokuje umor očiju, glavobolju i nejasnu sliku izbliza.

Dobra praksa: (1) ploče s tekstom točaka interesa postaviti na udaljenost blizu žarišne ravnine, okvirno 1–2 m, a ne na 20 cm pred lice; (2) predmete koji se dugo gledaju izbliza (dio u ruci) ne opterećivati sitnim tekstom — tekst ide na ploču, a dio ostaje u ruci.

Veza s ishodom: I1.

2.11 Definicija. Što je kinetoza (bolest simulatora) i koji su njezini glavni uzroci u VR-u?

Prikaži rješenje

Kinetoza u VR-u je skup simptoma (mučnina, znojenje, vrtoglavica, glavobolja, umor očiju) koji nastaje kad se podaci osjetila ne slažu. Glavni uzroci: prividno gibanje koje vestibularni sustav ne osjeti (kontinuirano kretanje, okretanje palicom, ubrzanja), veliko kašnjenje od pokreta do fotona, pad broja slika u sekundi i trzanje, pogrešan IPD i pogrešno mjerilo te dugo trajanje. Osjetljivost se jako razlikuje među ljudima, pa se zadane postavke biraju prema osjetljivijim korisnicima.

Veza s ishodom: I1.

2.12 Računski zadatak. Korisnik brzo okrene glavu kutnom brzinom od 200°/s. Kolika je kutna pogreška slike ako je vrijeme od pokreta do fotona 20 ms, a kolika uz 50 ms? Koliko je to piksela na uređaju A (21,1 piksela po stupnju)?

Prikaži rješenje

20 ms: 200 · 0,020 = 4,0° → 4,0 · 21,1 ≈ 84 piksela

50 ms: 200 · 0,050 = 10° → ≈ 211 piksela

Pri 50 ms scena bi pri svakom okretu vidljivo „kasnila“ za glavom, što je jedan od najjačih uzroka kinetoze. Zato je granica ≤ 20 ms, a pokretači dodatno predviđaju položaj glave za trenutak prikaza.

Veza s ishodom: I1.

2.13 Računski zadatak. Izračunajte vrijeme okvira za 72 Hz, 90 Hz i 120 Hz. Kolika je granica za GPU pri 90 Hz ako je zadana kao 9,0 ms i koliki je to udio okvira?

Prikaži rješenje

72 Hz: 1000 / 72 = 13,9 ms;   90 Hz: 11,1 ms;   120 Hz: 8,33 ms

9,0 / 11,1 = 0,81 → 81 % okvira

Preostalih 19 % (oko 2,1 ms) je rezerva za pokretač, sastavljanje slike i korekciju izobličenja leća te za kolebanja opterećenja.

Veza s ishodom: I5.

2.14 Objašnjenje. Koja fizikalna svojstva ima scena VR-1 (gravitacija, masa, sudari) i zašto dio koji korisnik drži u ruci privremeno nema fiziku?

Prikaži rješenje

Scena ima gravitaciju 9,81 m/s² prema dolje, dijelovi imaju masu (ukupno 1,2 kg) i kolizijske oblike, pa ispušten dio pada na stol ili pod i odbija se. Ruka korisnika nema masu ni silu: prati kontroler bez obzira na sudare. Kad bi dio u ruci zadržao fiziku, fizikalni sustav i ruka „vukli“ bi ga u različitim smjerovima, pa bi podrhtavao ili propadao. Zato se pri hvatanju fizika dijela isključuje, a pri puštanju uključuje uz brzinu ruke u tom trenutku.

Veza s ishodom: I4.

2.15 Računski zadatak. Prostorni zvuk koristi razliku vremena dolaska zvuka do dvaju ušiju. Kolika je najveća razlika za razmak ušiju od 0,18 m i brzinu zvuka 343 m/s (pojednostavljeni model)? Zašto je važna za zvuk robota koji vozi po stolu?

Prikaži rješenje

Δt = 0,18 / 343 = 0,000 52 s ≈ 0,52 ms

Mozak razlike od dijela milisekunde prepoznaje kao smjer izvora. Kad zvuk motora robota dolazi iz stvarnog smjera robota i mijenja se dok korisnik okreće glavu, korisnik ga pronalazi i bez gledanja, a prisutnost raste. Stvarni modeli prostornog zvuka uzimaju u obzir i razliku jakosti te oblik glave i uha.

Veza s ishodom: I1.

2.16 Objašnjenje. Što je prostorni zvuk u VR-u i što je potrebno da zvuk ostane „na mjestu“ kad korisnik okrene glavu?

Prikaži rješenje

Prostorni zvuk je zvuk koji se korisniku reproducira tako da izvor ima položaj u prostoru scene: smjer, udaljenost i, po potrebi, odjek prostorije. Signal za lijevo i desno uho filtrira se prema smjeru izvora u odnosu na glavu (funkcije prijenosa glave, engl. head-related transfer function, HRTF). Da zvuk ostane na mjestu, filtriranje se mora obnavljati prema praćenom položaju i orijentaciji glave, s kašnjenjem sličnim slici; inače zvuk „putuje“ s glavom.

Veza s ishodom: I1.

2.17 Usporedba. Usporedite vibracijsku haptiku u kontrolerima s haptikom s povratnom silom. Koju vrstu ima VR-1 i čemu služi?

Prikaži rješenje

Vibracijska haptika (vibromotori u kontrolerima) daje kratke impulse različite jakosti i trajanja: potvrda hvata, dodir, uskakanje dijela. Jednostavna je i jeftina, ali ne sprječava pokret. Povratna sila (egzoskeleti, rukavice s aktuatorima, robotske ruke) stvarno se opire pokretu i omogućuje osjet mase i krutosti, ali je skupa, teška i rijetka izvan istraživanja. VR-1 koristi vibraciju kontrolera: kratak trzaj pri hvatanju, jači pri uskakanju dijela na šasiju i trzaj kad zraka ne pogodi dio.

Veza s ishodom: I1.

2.18 Definicija. Što je pokretač (engl. runtime) i što je OpenXR?

Prikaži rješenje

Pokretač je programska podrška proizvođača ili platforme koja upravlja naočalama: prati glavu i kontrolere, prima slike od aplikacije, ispravlja ih za leće i prikazuje, vodi prostor za igru i granicu sigurnosti. OpenXR je otvoren standard (skup funkcija) preko kojeg aplikacija komunicira s bilo kojim pokretačem koji ga podržava. Aplikacija napisana za OpenXR radi na uređajima više proizvođača bez posebnog koda za svaki.

Veza s ishodom: I5.

2.19 Objašnjenje. Prema slici I.5 opišite tok podataka između aplikacije VR-1 i opreme na uređajima A i B. Gdje je granica između onoga što piše razvojni tim i onoga što daje proizvođač?

aplikacija VR-1 razvojno okruženje sučelje OpenXR pokretač A pokretač B upravljački programi upravljački programi naočale A, bazne stanice naočale B s kamerama slike okvira položaji, tipke
Slika I.5 — Slojevi od VR aplikacije do opreme: aplikacija, razvojno okruženje, OpenXR, pokretač, upravljački programi i naočale.
Prikaži rješenje

Aplikacija u razvojnom okruženju traži od OpenXR sučelja predviđeni položaj glave i kontrolera te stanje tipki (prema gore: položaji, tipke), iscrtava stereo par i predaje slike okvira (prema dolje). Sučelje OpenXR prosljeđuje pozive pokretaču uređaja A ili B, pokretač preko upravljačkih programa komunicira s naočalama, baznim stanicama ili kamerama.

Razvojni tim piše aplikaciju i postavke projekta; razvojno okruženje daje dodatak za OpenXR; pokretač i upravljački programi dolaze od proizvođača. Zato ista aplikacija radi na A i B, a razlike (praćenje, granica) rješava pokretač.

Veza s ishodom: I5.

2.20 Usporedba. Usporedite razvojno okruženje s vizualnim programiranjem nacrtima (npr. Unreal Engine) i okruženje s C# skriptama (npr. Unity s paketom za XR interakciju) za izradu VR-1. Što je SDK u tom kontekstu?

Prikaži rješenje

Nacrti: logika se slaže od čvorova i veza, lakše za početak i za prikaz toka događaja, snažno iscrtavanje; veliki nacrti postaju nepregledni, a projekti su veći. C# skripte: logika u tekstu, lakša za verzioniranje i ponovnu uporabu, paket za XR interakciju daje gotove komponente za hvatanje i interaktore; traži osnovno znanje programiranja.

SDK (engl. software development kit) je paket biblioteka, dodataka i primjera za neku platformu ili uređaj (npr. dodaci za praćenje ruku ili prolaz slike). Dobra praksa: osnovu graditi na OpenXR-u, a SDK proizvođača dodavati samo za mogućnosti koje OpenXR još ne pokriva.

Veza s ishodom: I4.

2.21 Definicija. Što znači 3DoF, a što 6DoF? Navedite primjer uređaja ili načina rada za svaki.

Prikaži rješenje

DoF (engl. degrees of freedom) su stupnjevi slobode. 3DoF prati samo orijentaciju (tri zakreta: oko okomite osi, poprečne i uzdužne), ne i pomak: glava se može okretati, ali nagib naprijed ne približava scenu. Primjer: jednostavni preglednici videa od 360°. 6DoF prati i tri pomaka (lijevo–desno, gore–dolje, naprijed–natrag): korisnik se može sagnuti do dijela i obići stol. Uređaji A i B prate glavu i kontrolere u 6DoF, što VR-1 zahtijeva.

Veza s ishodom: I1.

2.22 Usporedba. Usporedite praćenje izvana prema unutra (uređaj A) i praćenje iznutra prema van (uređaj B). Po dvije prednosti i mane.

Prikaži rješenje
Izvana prema unutra (A)Iznutra prema van (B)
Prednostivelika točnost i stabilnost u cijelom prostoru; kontroleri se prate i iza leđa i iznad glave dok ih vidi stanicanema postavljanja stanica, uređaj se prenosi i pokreće bilo gdje; kamere služe i za prolaz slike i praćenje ruku
Manestanice treba montirati i kalibrirati; prostor je vezan uz prostorijukontroler izvan vidnog polja kamera (iza leđa, blizu lica) prati se kratko samo procjenom; ovisi o osvjetljenju i teksturi prostora

Veza s ishodom: I5.

2.23 Računski zadatak. Inercijska mjerna jedinica (IMU) u kontroleru daje podatke 1000 puta u sekundi, a kamere za praćenje 30 puta u sekundi (pretpostavka zadatka). Koliko uzoraka svakog izvora dolazi na jedan okvir od 90 Hz? Zašto se izvori spajaju?

Prikaži rješenje

IMU: 1000 / 90 = 11,1 uzoraka po okviru

kamera: 90 / 30 = 3 okvira po jednom uzorku kamere

IMU je brz, ali mjeri ubrzanje i kutnu brzinu, pa integracijom položaj polako „odluta“. Kamera daje apsolutan položaj, ali rjeđe i s kašnjenjem. Spajanjem (fuzijom senzora) IMU daje glatko i brzo gibanje između uzoraka kamere, a kamera ispravlja odlutani položaj.

Veza s ishodom: I5.

2.24 Objašnjenje. Što omogućuje praćenje ruku, a što praćenje očiju? Navedite po jednu primjenu u VR-1.

Prikaži rješenje

Praćenje ruku kamerama naočala određuje položaj zglobova prstiju bez kontrolera; VR-1 može otvoriti točku interesa prstohvatom (engl. pinch, dodir vrhova palca i kažiprsta), a jednostavne dijelove hvatati šakom. Nedostatak: nema tipki ni haptike, a ruke izvan vidnog polja kamera se gube.

Praćenje očiju određuje smjer pogleda; u VR-1 omogućuje odabir točke interesa pogledom i iscrtavanje s punom razlučivošću samo u središtu pogleda (engl. foveated rendering), što štedi vrijeme GPU-a. Podaci o pogledu su osobni podaci i obrađuju se uz pristanak korisnika.

Veza s ishodom: I1.

2.25 Usporedba. Usporedite zaslone LCD, OLED i mikro-OLED za VR naočale.

Prikaži rješenje

LCD: pozadinsko osvjetljenje i tekući kristali; visoka gustoća podpiksela i jeftina izrada, ali crna nije potpuno crna i odziv je sporiji. OLED: svaki piksel sam svijetli; potpuna crna, visok kontrast i brz odziv, ali tradicionalno manja gustoća i vidljiva struktura piksela. Mikro-OLED: OLED na silicijskoj podlozi, vrlo male ploče s vrlo velikom gustoćom piksela; visoka kvaliteta i mali uređaji, ali skuplji i manje svjetline. Izbor utječe na oštrinu, kontrast i potrošnju.

Veza s ishodom: I1.

2.26 Usporedba. Usporedite Fresnelove leće i „pancake“ leće.

Prikaži rješenje

Fresnelove leće imaju koncentrične stepenaste prstenove koji zamjenjuju debelu leću: lagane su i jeftine, ali daju odbljeske i zrake oko kontrastnih predmeta, a oštrina pada prema rubu. „Pancake“ leće svjetlost više puta reflektiraju između slojeva s polarizacijom, pa je optički put dug, a udaljenost zaslona od oka mala: naočale su tanje i oštrije po cijelom polju, ali gube velik dio svjetlosti i trebaju svjetliji zaslon.

Veza s ishodom: I1.

2.27 Računski zadatak. Izračunajte gustoću piksela (piksela po stupnju) za uređaj A (2448 px na 116°) i uređaj B (2064 px na 110°). Koliko su puta grublji od granice razlučivanja ljudskog oka (oko 60 piksela po stupnju)?

Prikaži rješenje

A: 2448 / 116 ≈ 21,1 piksela po stupnju;   B: 2064 / 110 ≈ 18,8

60 / 21,1 ≈ 2,8 puta;   60 / 18,8 ≈ 3,2 puta

Račun je prosjek po polju; zbog optike je gustoća u središtu nešto veća, a na rubu manja. Posljedica: tekst i sitni detalji moraju biti krupniji nego na monitoru, a teksture iznad potrebne gustoće teksela ne donose vidljiv dobitak.

Veza s ishodom: I1.

2.28 Računski zadatak. Koliko piksela u sekundi uređaj mora prikazati za oba oka pri 90 Hz za uređaj A (2 × 2448 × 2448) i uređaj B (2 × 2064 × 2208)?

Prikaži rješenje

A: 2 · 2448 · 2448 = 11 985 408 px po okviru · 90 = 1,08 · 10⁹ px/s

B: 2 · 2064 · 2208 = 9 114 624 px po okviru · 90 = 0,82 · 10⁹ px/s

To su pikseli zaslona; aplikacija obično iscrtava u nešto većoj razlučivosti jer se slika poslije izobličuje za leće. Uređaj B mora sličan broj piksela izračunati mobilnim procesorom, zato su njegove granice (300 000 trokuta, 150 poziva) znatno niže.

Veza s ishodom: I5.

2.29 Računski zadatak. Uređaj B spojen na računalo prima sliku kao komprimirani video. Koliki bi bio protok nekomprimirane slike (24 bita po pikselu, 90 Hz, 2 × 2064 × 2208) i koliki je omjer kompresije ako veza prenosi 200 Mbit/s (pretpostavka zadatka)?

Prikaži rješenje

9 114 624 px · 24 bit · 90 = 1,97 · 10¹⁰ bit/s ≈ 19,7 Gbit/s

omjer = 19 700 / 200 ≈ 98 : 1

Kompresija takvog omjera unosi vrijeme kodiranja i dekodiranja i moguće artefakte, pa je vrijeme od pokreta do fotona u tom načinu dulje nego na uređaju A ili pri samostalnom radu. Zato se Z02 za spojeni način ispituje zasebno.

Veza s ishodom: I5.

2.30 Usporedba. Usporedite PC-VR naočale, samostalne naočale, naočale s prolazom slike i XR naočale s prozirnom optikom za laboratorij VR-1.

Prikaži rješenje

PC-VR (uređaj A): iscrtava računalo, najviše snage i najbolja slika; vezan kabelom i računalom. Samostalne (uređaj B): procesor i baterija u naočalama, prenosive i brzo spremne; manja snaga, stroži budžet. S prolazom slike: kamere prikazuju stvarni prostor na zaslonima, pa jedan uređaj radi VR i MR (B ima prolaz u boji). XR s prozirnom optikom: stvarni svijet vidi se izravno kroz staklo, virtualni sadržaj se projicira; najprirodniji pogled na stvarnost, ali manje vidno polje za virtualni sadržaj i virtualni predmeti ne mogu biti neprozirni i tamni. VR-1 je razvijen za A i B, a MR način je moguć samo na B.

Veza s ishodom: I5.

2.31 Postupak. Opišite redom puštanje VR sustava u rad prije prve uporabe VR-1 u novoj prostoriji.

Prikaži rješenje
  1. Pregledati prostoriju: ukloniti prepreke, kabele i predmete s poda, osigurati slobodan prostor najmanje 2,0 × 1,5 m (preporučeno 3,0 × 2,5 m).
  2. Za uređaj A postaviti bazne stanice dijagonalno, iznad visine glave, nagnute prema prostoru; za B osigurati dovoljno osvjetljenje bez izravnog sunca.
  3. Instalirati ili ažurirati pokretač i upravljačke programe, spojiti i upariti kontrolere.
  4. Pokrenuti postavljanje prostora za igru: razina poda, središte, granica sigurnosti 0,3 m od zidova i namještaja.
  5. Podesiti IPD i remen za korisnika, provjeriti oštrinu.
  6. Očistiti obloge i leće (leće samo suhom krpicom od mikrovlakana), pripremiti pribor za higijenu.
  7. Pokrenuti VR-1 i provjeriti visinu stola (T02) i granicu (T03).

Veza s ishodom: I5.

2.32 Računski zadatak. Prostor za igru VR-1 je 3,0 × 2,5 m, a granica sigurnosti je 0,3 m od zida. Kolika mora biti najmanja stvarna prostorija? Koliko je puta preporučeni prostor veći od najmanjeg (2,0 × 1,5 m)?

Prikaži rješenje

prostorija: (3,0 + 2 · 0,3) × (2,5 + 2 · 0,3) = 3,6 × 3,1 m = 11,16 m²

površine: 3,0 · 2,5 = 7,5 m²; 2,0 · 1,5 = 3,0 m² → 7,5 / 3,0 = 2,5 puta

U najmanjem prostoru stol od 1600 × 800 mm ostavlja malo mjesta za hod oko njega, pa se korisnik više oslanja na teleport. Granica se mjeri od svih prepreka, ne samo od zidova.

Veza s ishodom: I5.

2.33 Pronađi pogrešku. U zapisniku postavljanja piše: „Bazne stanice postavljene u isti kut prostorije na 1,0 m visine. Granica nacrtana uz sam zid. IPD ostavljen na zadanoj vrijednosti za sve korisnike. Naočale ostavljene na prozoru između termina.“ Pronađite četiri pogreške.

Prikaži rješenje

Stanice u istom kutu i nisko: tijelo korisnika zaklanja kontrolere, pa se u suprotnom dijelu prostora praćenje gubi; stanice idu dijagonalno, iznad glave, nagnute prema prostoru. Granica uz zid: ruka s kontrolerom udara u zid prije upozorenja; granica mora biti najmanje 0,3 m od zida. Isti IPD za sve: slika je mutna, a mjerilo pogrešno za korisnike s drukčijim razmakom zjenica. Naočale na prozoru: izravno sunce kroz leće djeluje kao povećalo i može trajno oštetiti zaslone; naočale se spremaju u kutiju, dalje od sunca.

Veza s ishodom: I5.

Modul 3 · Razvoj okruženja virtualne stvarnosti

Pitanja pokrivaju razvoj aplikacije: projekt i dodatak OpenXR, programsku logiku s nacrtima i skriptama, kameru, kontrolere i ruke, hvatanje, puštanje, prebacivanje i točke interesa, kretanje i udobnost, sklapanje robota i vezu sa simulacijom, izgradnju za oba uređaja te testne slučajeve, profiliranje i izvješće.

3.1 Postupak. Opišite redom izradu novog VR projekta za VR-1 u razvojnom okruženju s nacrtima (npr. Unreal Engine).

Prikaži rješenje
  1. Stvoriti novi projekt iz predloška za virtualnu stvarnost (naziv predloška razlikuje se po inačici).
  2. U postavkama projekta uključiti dodatak za OpenXR i isključiti dodatke za platforme koje se ne koriste.
  3. Uključiti jednoprolazno iscrtavanje za oba oka i provjeriti razlučivost iscrtavanja.
  4. Postaviti ciljne platforme: računalo (uređaj A) i samostalne naočale (uređaj B).
  5. Urediti mape projekta (modeli, materijali, nacrti, razine) i pravila imenovanja.
  6. Izgraditi praznu scenu za oba uređaja i provjeriti 90 sl/s (KT1).

U okruženju s C# skriptama (npr. Unity) koraci su isti: predložak ili prazan projekt, upravitelj dodataka za XR s OpenXR-om, paket za XR interakciju i ciljne platforme.

Veza s ishodom: I5.

3.2 Objašnjenje. Zašto je uredna struktura mapa i imenovanja u VR projektu važna već prvi dan, a ne tek pri predaji?

Prikaži rješenje

VR projekt ima stotine datoteka: 12 dijelova s tri razine detalja i kolizijom, materijali, teksture, nacrti, zvukovi, razine. Tri člana tima rade istodobno. Bez jasnih mapa i pravila dvije osobe stvaraju isti materijal dvaput, reference se kidaju pri premještanju datoteka, a nije jasno koji je nacrt aktivan. Premještanje datoteka kasnije u projektu često ruši veze i traži popravke. Dogovor na početku (npr. Modeli/MR1, Nacrti/Interakcija, prefiksi naziva) jeftin je, a kasniji popravak skup.

Veza s ishodom: I4.

3.3 Definicija. Objasnite pojmove nacrt (Blueprint), čvor, događaj, varijabla i funkcija u vizualnom programiranju.

Prikaži rješenje

Nacrt je vizualni program pridružen objektu ili razini, sastavljen od čvorova i veza. Čvor je jedna radnja ili vrijednost (npr. zbroji, postavi položaj, ispiši tekst). Događaj je čvor koji pokreće izvođenje kad se nešto dogodi (početak igre, svaki okvir, pritisak tipke, ulazak u zonu). Varijabla sprema stanje objekta (npr. BrojSklopljenih, Drzi). Funkcija je imenovani skup čvorova koji se poziva s više mjesta i vraća rezultat. U C# skriptama odgovarajući su pojmovi klasa, metoda, polje i povratni poziv događaja.

Veza s ishodom: I6.

3.4 Pronađi pogrešku. Na slici I.6 prikazan je dio nacrta koji vrti kotač robota. Na uređaju A kotač se vrti brže nego na uređaju B kad B padne na 72 sl/s. Pronađite pogrešku i predložite ispravak.

događaj: okvirdelta vremena postavi KutKut + 2,0 zakreni kotačkut vrtnje Kut varijabla Kut = 0 tok izvođenja podatak
Slika I.6 — Dio nacrta za vrtnju kotača na svakom okviru.
Prikaži rješenje

Događaj „okvir“ izvodi se jednom po okviru, a kutu se svaki put dodaje stalnih 2,0°. Brzina vrtnje zato ovisi o broju slika u sekundi. Izlaz „delta vremena“ (vrijeme od prethodnog okvira) nije spojen.

Ispravak: kut povećavati za ω · Δt, gdje je ω kutna brzina u °/s, a Δt delta vremena u sekundama. Za istu brzinu kao pri 90 sl/s: ω = 2,0 · 90 = 180 °/s; tada je dodatak pri 90 sl/s 180 · 0,0111 = 2,0°, a pri 72 sl/s 180 · 0,0139 = 2,5°, pa je brzina jednaka na oba uređaja.

Veza s ishodom: I6.

3.5 Računski zadatak. Kolika je kutna brzina kotača iz prethodnog zadatka (dodatak 2° po okviru) pri 90 sl/s i pri 72 sl/s? Za koliko posto se razlikuju?

Prikaži rješenje

90 sl/s: 2 · 90 = 180 °/s;   72 sl/s: 2 · 72 = 144 °/s

razlika = (180 − 144) / 180 = 20 %

Robot bi na sporijem uređaju vozio 20 % sporije i drukčije se zaustavljao prije ruba. Svaka vremenski ovisna promjena mora se množiti s delta vremena.

Veza s ishodom: I6.

3.6 Objašnjenje. Kako se u VR aplikaciji ispisuju poruke za otklanjanje pogrešaka (npr. „dio uskočio: kotač L“) i zašto ispis na zaslon računala nije dovoljan?

Prikaži rješenje

Poruke se ispisuju u zapisnik (engl. log) razvojnog okruženja i, po potrebi, na zaslon. Kad korisnik nosi naočale, ne vidi zaslon računala, pa se za ispitivanje u naočalama koristi mala ploča s tekstom u sceni (npr. uz lijevu ruku) ili se zapisnik čita nakon izvođenja. Na samostalnim naočalama zapisnik se dohvaća alatima za spajanje uređaja. Poruke za otklanjanje pogrešaka isključuju se u paketu za predaju jer troše vrijeme i zbunjuju korisnika.

Veza s ishodom: I7.

3.7 Objašnjenje. Zašto se kamera u VR sceni ne postavlja na fiksnu visinu, nego je dijete XR ishodišta na razini poda?

Prikaži rješenje

Pokretač daje položaj glave u odnosu na pod prostora za igru. Kad je XR ishodište na razini poda scene, a kamera njegovo dijete, visina očiju u sceni jednaka je stvarnoj visini očiju svakog korisnika i stol od 750 mm je točno ondje gdje ga ruka očekuje. Fiksna visina (npr. 1,70 m) za nižeg bi korisnika spustila stol ispod stvarne visine ruke i narušila mjerilo 1 : 1. Teleport tada pomiče samo ishodište, a kamera i kontroleri zadržavaju svoj relativni položaj.

Veza s ishodom: I5.

3.8 Računski zadatak. Korisnik u načinu rada sjedeći ima oči na 1,20 m iznad poda, a scena je projektirana za stojećeg korisnika s očima na 1,64 m. Za koliko treba podići XR ishodište u tom načinu rada? Hoće li stol od 750 mm tada biti na stvarnoj visini ruke?

Prikaži rješenje

pomak = 1,64 − 1,20 = 0,44 m

Ishodište se podiže za 0,44 m, pa korisnik vidi scenu kao da stoji. Stol je tada 0,44 m niže u odnosu na stvarno tijelo: virtualna ploča na 0,75 m pojavljuje se ondje gdje je stvarna visina oko 0,31 m, dakle ispod stvarnog stola ili krila. Način sjedeći zato mora imati posebno podešenu visinu stola ili hvatanje zrakom; mjerilo 1 : 1 za tijelo u tom načinu ne vrijedi potpuno.

Veza s ishodom: I5.

3.9 Objašnjenje. Kako se modeli ruku animiraju prema tipkama kontrolera? Zašto se koristi analogna vrijednost okidača, a ne samo „pritisnut/nepritisnut“?

Prikaži rješenje

Tipke okidača i hvata daju analognu vrijednost od 0 (otpušteno) do 1 (potpuno pritisnuto), a dodir palca na tipki daje logičku vrijednost. Svaki okvir te se vrijednosti čitaju kao ulazne akcije i predaju animaciji ruke, koja miješa (interpolira) položaje otvorene i zatvorene šake, posebno za kažiprst (okidač) i ostale prste (hvat). Analogna vrijednost daje postupno zatvaranje koje prati stvarne prste, pa korisnik vidi ruku kao svoju; skok između dva položaja djeluje umjetno i narušava prisutnost.

Veza s ishodom: I6.

3.10 Računski zadatak. Kažiprst modela ruke u otvorenom položaju ima kut savijanja 0°, a u zatvorenom 70°. Koliki je kut pri vrijednosti okidača 0,6 uz linearno miješanje? Koliko okvira traje zatvaranje ako korisnik pritisne okidač od 0 do 1 za 0,2 s pri 90 Hz?

Prikaži rješenje

kut = 0° + 0,6 · (70° − 0°) = 42°

0,2 s · 90 Hz = 18 okvira

U 18 okvira kut raste za oko 3,9° po okviru, što oko vidi kao glatko gibanje. Ako animacija dodatno zaglađuje ulaz, zatvaranje kasni za prstom; zaglađivanje se zato drži kratkim.

Veza s ishodom: I6.

3.11 Definicija. Objasnite pojmove interaktor, objekt koji se hvata i priključna točka u sustavu interakcije.

Prikaži rješenje

Interaktor je ono što djeluje: ruka, zraka kontrolera, pogled ili miš; ima zonu ili zraku kojom pronalazi objekte i ulaze (tipke) kojima ih hvata ili odabire. Objekt koji se hvata je interaktivni objekt s komponentom koja kaže da se može uzeti, kako se drži (točka hvata) i što se događa pri puštanju (fizika, bacanje). Priključna točka (engl. snap point, socket) je mjesto na drugom objektu na koje dio uskače kad se pusti dovoljno blizu, npr. mjesto kotača na vratilu motora.

Veza s ishodom: I6.

3.12 Usporedba. Usporedite hvatanje rukom (do 0,8 m) i hvatanje zrakom (do 3 m) u VR-1. Kad je koje primjereno?

Prikaži rješenje

Rukom: prirodno, precizno, daje najveću prisutnost; zahtijeva da je dio na dohvat i da ga ništa ne zaklanja (npr. ploča stola). Primjereno za sklapanje, gdje se dio okreće i postavlja.

Zrakom: doseže dijelove koji su se otkotrljali, pali ili su izvan dohvata; manje prirodno i manje precizno na većoj udaljenosti. Primjereno za dohvat i za korisnike koji ne mogu hodati oko stola. U VR-1 zraka dio privlači u ruku, a sklapanje se uvijek radi rukom.

Veza s ishodom: I6.

3.13 Računski zadatak. Ruka korisnika je u točki (0,30; 0,20; 1,05) m, a baterija na stolu u (0,85; 0,10; 0,78) m. Može li se baterija uhvatiti rukom (≤ 0,8 m) ili je potrebna zraka?

Prikaži rješenje

d = √((0,85 − 0,30)² + (0,10 − 0,20)² + (0,78 − 1,05)²) = √(0,3025 + 0,0100 + 0,0729) = √0,3854 ≈ 0,62 m

0,62 m ≤ 0,8 m, pa je baterija u dosegu hvatanja rukom. U stvarnoj izvedbi udaljenost se mjeri od zone hvata ruke do najbliže točke kolizijskog oblika dijela, ne do ishodišta, pa je stvarni razmak nešto manji.

Veza s ishodom: I6.

3.14 Računski zadatak. Pri puštanju dijela aplikacija mu daje brzinu ruke. Ruka je u zadnja 3 okvira (90 Hz) prešla 0,12 m. Kolika je brzina puštenog dijela? Zašto se ne uzima samo zadnji okvir?

Prikaži rješenje

Δt = 3 / 90 = 0,0333 s;   v = 0,12 / 0,0333 = 3,6 m/s

Praćenje ima mali šum; brzina iz jednog okvira (npr. 5 mm za 11 ms) može naglo skočiti i baciti dio u pogrešnom smjeru. Prosjek preko nekoliko okvira daje stabilnije bacanje. Za sklapanje na stolu često se brzina puštanja dodatno ograničava da dio ne odleti sa stola.

Veza s ishodom: I6.

3.15 Objašnjenje. Opišite logiku prebacivanja dijela iz ruke u ruku i navedite što se mora dogoditi s fizikom i s varijablom koja pamti tko drži dio.

Prikaži rješenje

Kad druga ruka pokrene hvat nad dijelom koji je već u ruci: prva ruka otpušta dio bez uključivanja fizike, dio se pričvršćuje na drugu ruku zadržavajući trenutačni relativni položaj (bez skoka u točku hvata), animacija prve ruke vraća se u otvoren položaj, a varijabla „tko drži“ prelazi na drugu ruku. Fizika se uključuje tek kad dio pusti posljednja ruka. Ako se fizika uključi pri prebacivanju, dio na jedan okvir padne; ako se prva ruka ne odvoji, dio je dijete obiju ruku i trza se.

Veza s ishodom: I6.

3.16 Objašnjenje. Točka interesa u VR-1 mora raditi mišem, pogledom, kontrolerom i gestom. Kako je treba ustrojiti i zašto se prvo ispituje mišem?

Prikaži rješenje

Jedna komponenta točke interesa ima tri metode ili događaja: HoverEnter (pokazivač je nad točkom: istakni), HoverExit (ukloni isticanje) i Select (otvori ploču, pusti zvuk, zabilježi posjet), te jedan tekst. Miš, pogled, kontroler i geste samo su različiti ulazi koji pozivaju te iste metode: svaki ulaz šalje zraku i javlja ulazak, izlazak i odabir.

Mišem se logika ispituje na računalu bez naočala, brzo i bez ponovnog stavljanja uređaja. Kad radi mišem, dodavanje XR ulaza ne mijenja logiku, pa se pogreške lako razdvajaju na pogreške logike i pogreške ulaza.

Veza s ishodom: I6.

3.17 Pronađi pogrešku. Komponenta točke interesa u C# skripti (primjer):

void Update() {
  if (pokazivacNad) Select();
}
Korisnik se žali da se ploča s tekstom „trese“ i zvuk ponavlja. Pronađite pogrešku.

Prikaži rješenje

Metoda Update izvodi se svaki okvir, pa se Select poziva 90 puta u sekundi dok je pokazivač nad točkom: ploča se ponovno otvara, a zvuk se pokreće iznova. Odabir mora biti događaj (pritisak tipke, dovršeno zadržavanje pogleda), a ne stanje. Ispravak: Select pozivati jednom iz obrade ulaza pri pritisku, a u Update najviše osvježavati isticanje; uz to zapamtiti da je ploča otvorena i ne otvarati je ponovno. (Primjer treba provjeriti u vlastitoj inačici okruženja.)

Veza s ishodom: I6.

3.18 Računski zadatak. Odabir pogledom otvara točku interesa nakon zadržavanja pogleda od 1 s. Programer je odbrojavanje napisao kao brojanje okvira do 90. Koliko će trajati zadržavanje na uređaju koji padne na 72 sl/s? Kako ispraviti?

Prikaži rješenje

pri 90 sl/s: 90 okvira = 1,0 s;   pri 72 sl/s: 90 / 72 = 1,25 s

Zadržavanje se produljuje za 25 %, a prsten napretka puni se sporije. Ispravak: zbrajati delta vremena dok zbroj ne dosegne 1,0 s, neovisno o broju okvira.

Veza s ishodom: I6.

3.19 Usporedba. Usporedite teleport, okretanje u koracima i kontinuirano kretanje s obzirom na udobnost i prisutnost.

Prikaži rješenje
NačinUdobnostPrisutnost i orijentacija
teleportnajviša: nema prividnog gibanjaskok može dezorijentirati; luk i cilj pomažu
okretanje u koracima (30°)visoka: zakret u jednom okvirusvijet „skače“; korisnik se dio puta okreće tijelom
kontinuirano kretanje (1,5 m/s)najniža: vid i vestibularni sustav u neskladuprirodno, prostor se doživljava cjelovito; vinjeta ublažava

U VR-1 teleport je zadan, kontinuirano kretanje je izborno i uvijek uz vinjetu.

Veza s ishodom: I1.

3.20 Računski zadatak. Luk teleporta kreće iz kontrolera na 1,1 m iznad poda pod kutom od 45°. Kolika početna brzina daje domet od 4,0 m po podu (g = 9,81 m/s²)? Koliki bi domet bio bez visine kontrolera uz istu brzinu?

Prikaži rješenje

R = (v · cos α / g) · (v · sin α + √((v · sin α)² + 2 · g · h))

Numeričkim rješavanjem (raspolavljanje ili pokušaj i pogreška): v ≈ 5,55 m/s. Provjera: v · sin 45° = 3,92 m/s; √(3,92² + 2 · 9,81 · 1,1) = 6,08; R = 3,92 / 9,81 · (3,92 + 6,08) = 4,0 m.

bez visine: R₀ = v² · sin 2α / g = 5,55² / 9,81 = 3,14 m

Visina kontrolera produljuje domet za oko 0,9 m. U izvedbi se luk dodatno reže na 4 m vodoravne udaljenosti, jer korisnik kontroler drži na različitim visinama.

Veza s ishodom: I6.

3.21 Analiza scene. Slika I.7 prikazuje tlocrt s korisnikom U i pet mogućih ciljeva teleporta (mjerilo 1 m = 50 px). Za svaki cilj odredite je li valjan prema pravilima VR-1: pod, najviše 4 m, ne na stolu, ne izvan laboratorija, najmanje 0,3 m od zida.

zid laboratorija; iza je izvan scene stol U 1 2 3 4 5 granica dometa 4 m 1 m
Slika I.7 — Tlocrt s korisnikom U, granicom dometa teleporta od 4 m i pet mogućih ciljeva.
Prikaži rješenje

1 — pod na oko 3,0 m: valjan. 2 — na ploči stola: nevaljan (stol nije pod; korisnik bi „stajao“ u stolu). 3 — pod na 4,6 m: nevaljan, izvan dometa od 4 m. 4 — iza zida, izvan laboratorija: nevaljan, iako je udaljenost oko 3,8 m. 5 — pod na oko 3 m, ali samo 0,2 m od zida: nevaljan jer je bliže od 0,3 m; ispravno je cilj pomaknuti na 0,3 m od zida ili ga odbiti.

Za nevaljan cilj luk mijenja izgled (npr. druga boja ili iscrtkan), a teleport se ne izvodi.

Veza s ishodom: I6.

3.22 Računski zadatak. Kontinuirano kretanje ima brzinu 1,5 m/s. Koliki je pomak po okviru pri 90 Hz i koliko traje prelazak laboratorija po širini od 6 m? Zašto se uz njega uključuje vinjeta?

Prikaži rješenje

16,7 mm po okviru (1,5 / 90);   t = 6 / 1,5 = 4,0 s

Za 4 s oči vide stalno gibanje, a vestibularni sustav ne osjeća nikakvo ubrzanje. Najjači poticaj za kinetozu dolazi iz perifernog vida; vinjeta za vrijeme gibanja zatamnjuje rub vidnog polja i time smanjuje nesklad. Ubrzanja i usporavanja se izbjegavaju: brzina se odmah postavlja na 1,5 m/s i odmah pada na nulu.

Veza s ishodom: I6.

3.23 Objašnjenje. Koje postavke udobnosti treba ponuditi u izborniku VR-1 i koje vrijednosti su zadane?

Prikaži rješenje

Zadano: teleport (luk do 4 m), okretanje u koracima od 30°, kontinuirano kretanje isključeno. Izborno: kontinuirano kretanje 1,5 m/s uz vinjetu (jakost vinjete se može podesiti, ali ne isključiti), veličina koraka okretanja (npr. 15°, 30°, 45°), način sjedeći ili stojeći, dominantna ruka, veličina teksta ploča. Postavke se pamte po korisniku. Obrazloženje zadanih vrijednosti (1 od 8 ispitanika s mučninom pri kontinuiranom kretanju) upisuje se u VR1-D05.

Veza s ishodom: I1.

3.24 Postupak. Opišite postupak uvoza i sklapanja robota MR-1 u sceni: od uvezenih dijelova do brojača „12 / 12“.

Prikaži rješenje
  1. Uvesti 12 dijelova s razinama detalja i kolizijom; provjeriti mjerilo i ishodišta.
  2. Sastaviti referentni sklop i na šasiji zapisati 11 priključnih točaka (položaj i orijentacija svakog dijela u odnosu na šasiju).
  3. Dijelove postaviti na stol, u pojas dohvata, s fizikom i komponentom za hvatanje.
  4. Uz svaku priključnu točku prikazati prozirni „ciljni“ položaj dijela kad korisnik drži taj dio.
  5. Pri puštanju provjeriti udaljenost i kut do pripadne točke; ako su u dopuštenom odstupanju, dio uskače, postaje dijete šasije, gubi fiziku, a brojač se povećava.
  6. Kad je brojač 12 / 12 (šasija se računa kao postavljena), omogućiti prekidač i vožnju.

Veza s ishodom: I6.

3.25 Računski zadatak. Kotač se pušta s pomakom (12; −9; 6) mm i zakretom od 18° (nagib osi kotača prema osi vratila) u odnosu na priključnu točku. Dopušteno odstupanje je 15 mm i 10°. Hoće li kotač uskočiti? Što treba vidjeti korisnik?

Prikaži rješenje

d = √(12² + 9² + 6²) = √261 ≈ 16,2 mm > 15 mm ✗

kut 18° > 10° ✗

Kotač ne uskače jer nije ispunjen nijedan uvjet: pomak od 16,2 mm veći je od 15 mm, a zakret od 18° veći je od 10°. Moraju biti ispunjena oba uvjeta, pa bi i sam pomak ili sam zakret bio dovoljan razlog da dio ne uskoči. Korisnik mora vidjeti zašto: npr. ciljni položaj svijetli drugom bojom dok kut nije dobar, a pri puštanju izvan uvjeta dio padne s fizikom na stol. Uvjet kuta ima smisla za dijelove koji se mogu postaviti naopako (baterija, pločica); za rotacijski simetričan kotač kut oko vlastite osi ne treba provjeravati.

Veza s ishodom: I6.

3.26 Objašnjenje. Kako se VR-1 povezuje sa simulacijom robota? Što aplikacija šalje, a što prima, i zašto se primljeni podaci interpoliraju?

Prikaži rješenje

Kad korisnik uključi prekidač, aplikacija simulatoru robota (ili ugrađenom kinematskom modelu) šalje poruku s naredbom: brzine lijevog i desnog kotača ili ciljnu putanju. Simulator računa gibanje diferencijalnog pogona, očitanja senzora (ultrazvuk, IR senzori linije) i šalje natrag položaj i orijentaciju robota te kutove kotača. Simulator obično radi drukčijom frekvencijom od iscrtavanja (npr. 50 Hz naprema 90 Hz), pa se između dviju poruka položaj i kutovi interpoliraju; bez toga bi se robot gibao u trzajima.

Veza s ishodom: I6.

3.27 Računski zadatak. Robot vozi brzinom 0,2 m/s na kotačima Ø65 mm. Koliko okretaja u minuti ima kotač i za koliko stupnjeva se zakrene po okviru pri 90 Hz? Koliko okvira iscrtavanja dolazi na jednu poruku simulatora od 50 Hz?

Prikaži rješenje

opseg = π · 0,065 = 0,204 m;   n = 0,2 / 0,204 = 0,98 okr/s = 58,8 min⁻¹

po okviru: 0,98 · 360° / 90 = 3,9°

90 / 50 = 1,8 okvira po poruci

Za prelazak stola duljine 1,6 m robot treba 8 s. Pomak od 3,9° po okviru dovoljno je malen da vrtnja kotača izgleda glatko.

Veza s ishodom: I6.

3.28 Usporedba. Usporedite izgradnju paketa za PC-VR (uređaj A) i za samostalne naočale (uređaj B). Na što treba paziti kod B?

Prikaži rješenje

Za A paket se gradi za operacijski sustav računala; granice su 750 000 trokuta, 1000 poziva i 1,5 GB. Za B paket se gradi za mobilnu arhitekturu naočala, s drugim formatima kompresije tekstura, jednostavnijim sjenčanjem i strožim granicama (300 000 trokuta, 150 poziva, 500 MB).

Kod B paziti na: postavke kvalitete za mobilnu platformu (sjene, naknadna obrada), kompresiju tekstura prikladnu platformi, isključivanje nepotrebnih dodataka, provjeru rada bez spajanja na računalo, profiliranje na samom uređaju, a ne u uređivaču, veličinu paketa i vrijeme pokretanja ≤ 10 s.

Veza s ishodom: I5.

3.29 Definicija. Što je testni slučaj (engl. test case) i koje podatke mora sadržavati?

Prikaži rješenje

Testni slučaj je unaprijed zapisan, ponovljiv opis jedne provjere funkcionalnosti ili zahtjeva. Sadrži: oznaku (T01–T18), zahtjev koji provjerava (npr. Z08), preduvjete i uređaj, korake postupka, očekivani rezultat s mjerljivim kriterijem, stvarni rezultat, prolaz ili pad, datum i izvršitelja. Pali test ostaje zapisan uz opis pogreške i ponovljeni test nakon ispravka.

Veza s ishodom: I7.

3.30 Računski zadatak. Na uređaju A izmjereno je GPU vrijeme 7,8 ms, a na uređaju B pri pogledu na cijeli laboratorij 76 sl/s. Koliki je udio GPU vremena A u okviru od 90 Hz i u granici od 9,0 ms? Koliko je vrijeme okvira na B i za koliko prekoračuje okvir?

Prikaži rješenje

A: 7,8 / 11,1 = 70 % okvira; 7,8 / 9,0 = 86,7 % granice; rezerva 1,2 ms

B: 1000 / 76 = 13,16 ms; prekoračenje 13,16 − 11,11 = 2,05 ms

A zadovoljava Z01 s rezervom, B ne zadovoljava u najzahtjevnijem pogledu. Ispravak u referentnoj izvedbi bile su razine detalja za okoliš (262 000 trokuta, 138 poziva, 90 sl/s).

Veza s ishodom: I7.

3.31 Računski zadatak. U prvom krugu ispitivanja prošlo je 16 od 18 testnih slučajeva. Koliki je postotak prolaza? Ako se nakon ispravaka ponovi 8 testova i svi prođu, kakav je konačni rezultat i što se upisuje u izvješće?

Prikaži rješenje

16 / 18 = 88,9 %

Nakon ispravaka i regresijskog ponavljanja 8 testova (T06–T10 nakon ispravka hvatanja te T12, T16 i T17 nakon ispravka razina detalja) konačni rezultat je 18 / 18 = 100 %. U izvješće se upisuju oba kruga: prvi s 16 / 18 i opisom dviju pogrešaka, drugi s 18 / 18, datumima i popisom ponovljenih testova. Brisanje prvog kruga skrilo bi korisnu informaciju o slabim mjestima aplikacije.

Veza s ishodom: I7.

3.32 Objašnjenje. Kako se profiliranjem utvrđuje je li aplikacija ograničena procesorom (CPU) ili grafičkom karticom (GPU) i zašto je to važno prije optimizacije?

Prikaži rješenje

Alat za profiliranje prikazuje zasebno vrijeme CPU-a (logika, fizika, priprema poziva za crtanje) i GPU-a (iscrtavanje) po okviru. Dulje od njih određuje vrijeme okvira. Jednostavna provjera: smanji se razlučivost iscrtavanja; ako broj slika u sekundi poraste, aplikacija je ograničena GPU-om; ako se ne promijeni, ograničena je CPU-om. Važno je jer su mjere različite: za GPU manje piksela, jednostavnije sjenčanje, razine detalja; za CPU manje poziva za crtanje (spajanje, instanciranje) i jednostavnija logika. Optimizacija krivog dijela ne donosi ništa.

Veza s ishodom: I7.

3.33 Objašnjenje. Pridružite hrvatske nazive engleskima i jednom rečenicom objasnite: frame time, motion-to-photon latency, snap turn, play area, passthrough, regression testing.

Prikaži rješenje

frame time — vrijeme okvira: vrijeme izrade jedne slike (11,1 ms pri 90 Hz). motion-to-photon latency — vrijeme od pokreta do fotona: kašnjenje od pokreta glave do promjene svjetla na zaslonu. snap turn — okretanje u koracima: trenutačan zakret za stalni kut. play area — prostor za igru: stvarni slobodni prostor u kojem se korisnik smije kretati. passthrough — prolaz slike: prikaz stvarnog okruženja s kamera naočala. regression testing — regresijsko ispitivanje: ponavljanje testova nakon ispravka da se provjeri da nije nastala nova pogreška.

Veza s ishodom: I7.

3.34 Pronađi pogrešku. U izvješću o ispitivanju zapis glasi: „T17 — performanse: radi dobro, oko 90 fps.“ Što je pogrešno u tom zapisu i kako bi trebao glasiti?

Prikaži rješenje

Zapis ne navodi uređaj, uvjet (koji pogled, koliko dugo), izmjerene vrijednosti (najmanja vrijednost, CPU i GPU vrijeme, trokuti, pozivi) ni odnos prema zahtjevu; „oko 90“ je prosjek koji skriva padove, a „radi dobro“ nije kriterij.

Ispravno, npr.: „T17 (Z01, Z03), uređaj B, samostalni način, paket od [datum]. 60 s profiliranja, uključujući pogled na cijeli laboratorij iz kuta. Prvi krug: srednje 88 sl/s, najmanje 76 sl/s pri pogledu na cijeli laboratorij — PAD. Ispravak: razine detalja za okoliš. Drugi krug: 90 sl/s, 138 poziva, 262 000 trokuta — PROLAZ.“ (Srednja vrijednost u prvom krugu ovdje je primjer oblika zapisa.)

Veza s ishodom: I7.

Primjeri ispitnih setova

Tri seta pokazuju kako se iz baze sastavlja pisani ispit od 50 bodova za 90 minuta. Svaki set sadrži više vrsta pitanja, barem tri računska zadatka i barem jedno pitanje sa crtežom, a bodovi su raspoređeni tako da svaki ishod zastupljen u setu nosi dovoljno bodova za zasebnu procjenu.

Uz ukupni prag prolaznosti postavlja se i prag po ishodu: pristupnik mora u svakom ishodu zastupljenom u setu ostvariti najmanje polovinu bodova tog ishoda (zaokruženo naviše). Tako se sprječava da se dobrim računanjem nadoknadi potpuno neznanje u drugom dijelu — primjerice, da se odličnim proračunom budžeta prođe ispit bez ijednog ispravno objašnjenog pojma kinetoze.

Set I · Modeli za virtualnu stvarnost (modul 1, uz jedno pitanje iz modula 2)

Rb.PitanjeVrstaIshodBodovi
1.1.1DefinicijaI33
2.1.4Analiza sceneI35
3.1.6UsporedbaI44
4.1.7Računski zadatakI36
5.1.18Računski zadatakI36
6.1.21Pronađi pogreškuI36
7.1.2ObjašnjenjeI25
8.1.26Računski zadatakI35
9.2.13Računski zadatakI54
10.1.32ObjašnjenjeI76
Ukupno50

Prag po ishodu (50 %): I2: 3 od 5 bodova, I3: 16 od 31 bodova, I4: 2 od 4 bodova, I5: 2 od 4 bodova, I7: 3 od 6 bodova. Ukupni prag: 25 od 50 bodova.

Set II · Teorija i oprema (modul 2)

Rb.PitanjeVrstaIshodBodovi
1.2.1DefinicijaI13
2.2.5Analiza sceneI14
3.2.9Računski zadatakI16
4.2.20UsporedbaI44
5.2.12Računski zadatakI15
6.2.18DefinicijaI53
7.2.22UsporedbaI56
8.2.27Računski zadatakI15
9.2.31PostupakI56
10.2.33Pronađi pogreškuI58
Ukupno50

Prag po ishodu (50 %): I1: 12 od 23 bodova, I4: 2 od 4 bodova, I5: 12 od 23 bodova. Ukupni prag: 25 od 50 bodova.

Set III · Razvoj i ispitivanje (modul 3, uz jedno pitanje iz modula 1)

Rb.PitanjeVrstaIshodBodovi
1.3.4Pronađi pogreškuI66
2.3.1PostupakI53
3.3.13Računski zadatakI64
4.3.16ObjašnjenjeI66
5.3.20Računski zadatakI66
6.3.21Analiza sceneI65
7.3.25Računski zadatakI65
8.3.30Računski zadatakI75
9.3.34Pronađi pogreškuI76
10.1.28Računski zadatakI44
Ukupno50

Prag po ishodu (50 %): I4: 2 od 4 bodova, I5: 2 od 3 bodova, I6: 16 od 32 bodova, I7: 6 od 11 bodova. Ukupni prag: 25 od 50 bodova.

Preporuka za trajanje: oko 1,5 minute po bodu za računske zadatke i analizu scene, oko 1 minute po bodu za ostale vrste; tako set od 50 bodova staje u 90 minuta uz 10–15 minuta za provjeru. Dopušten je džepni kalkulator; formule za kosi hitac, vrijeme okvira i kut gledanja mogu se dati na listiću.

Pažnja

Pri sastavljanju vlastitog seta ne birajte dva pitanja koja traže isti račun (npr. 2.27 i 1.18 oba računaju gustoću piksela uređaja A), jer pogreška u jednom broju tada donosi dvostruki gubitak bodova.