Preskoči na sadržaj
FORTRONIQ

MODUL 2 · TEORIJSKE OSNOVE I PRIPREME ZA KORIŠTENJE VIRTUALNE STVARNOSTI

Nastavna jedinica 2.4

Značajke okruženja virtualne stvarnosti

Virtualno okruženje uvjerljivo je kad se ponaša dosljedno: predmeti padaju i sudaraju se, zvuk dolazi s mjesta izvora, kontroler zavibrira pri dodiru, a stol je visok koliko treba. Jedinica obrađuje fizikalna svojstva scene, mjerilo, prostorni zvuk, haptiku i osvjetljenje na primjeru laboratorija VR-1.

Moći ću:
  • objasniti ulogu dosljednog ponašanja scene u doživljaju vjerodostojnosti
  • opisati kako simulacija fizike obrađuje gravitaciju, masu, trenje i sudare te odabrati kolizijske oblike
  • provjeriti mjerilo 1 : 1 i visinu očiju u sceni
  • objasniti načela prostornog zvuka i slabljenja zvuka s udaljenošću
  • navesti mogućnosti i ograničenja haptičke povratne veze
  • usporediti pečeno i dinamičko osvjetljenje s obzirom na trošak iscrtavanja u VR-u
  • izračunati pomak tijela po koraku simulacije fizike i procijeniti opasnost od prolaska kroz tanke plohe

Što okruženje čini uvjerljivim

U jedinici 2.1 prisutnost je opisana kroz iluziju mjesta i iluziju vjerodostojnosti. Iluziju mjesta najviše osiguravaju praćenje, stereo prikaz i nisko kašnjenje. Iluzija vjerodostojnosti ovisi o značajkama okruženja: ponaša li se virtualni svijet onako kako tijelo očekuje. Korisnik ne mora znati fiziku da bi primijetio da pušteni vijak lebdi u zraku ili da kotač prolazi kroz stol.

Pet značajki odlučuje o tome je li okruženje dosljedno:

  • fizikalna svojstva — gravitacija, masa, trenje, sudari;
  • mjerilo — predmeti i prostor u stvarnoj veličini, stol na pravoj visini;
  • prostorni zvuk — zvuk dolazi s mjesta izvora i mijenja se s udaljenošću;
  • haptika — dodir, hvatanje i spajanje potvrđeni osjetom u ruci;
  • osvjetljenje — svjetlo i sjene koje pomažu procijeniti oblik i položaj predmeta.

Sve se one plaćaju vremenom procesora i grafičke kartice, a u VR-u je budžet strog: u laboratoriju VR-1 vrijeme okvira je 11,1 ms, a GPU i CPU smiju potrošiti najviše 9,0 ms. Zato za svaku značajku treba odlučiti koliko je stvarno potrebna za zadatak.

Fizikalna svojstva: gravitacija, masa i sudari

Razvojna okruženja imaju ugrađenu simulaciju fizike (engl. physics engine) koja za svako dinamičko tijelo u svakom koraku računa brzinu i položaj iz sila, a zatim provjerava sudare i razrješava ih. Svojstva koja se zadaju tijelu:

  • Gravitacija. Ubrzanje sile teže, 9,81 m/s², zadaje se za cijelu scenu. Uz mjerilo 1 : 1 predmeti padaju prirodnom brzinom; ako je scena pogrešno skalirana, npr. deset puta veća, pad izgleda usporen.
  • Masa. Određuje kako tijelo reagira na udar i silu. Robot MR-1 ima 1,2 kg; baterija je u stvarnosti teži dio od poklopca, pa se pri sudaru i guranju mora i ponašati tako.
  • Trenje i odskočnost. Materijal fizike (engl. physics material) određuje koliko tijelo klizi i odskače. Gumeni kotač ne smije odskakivati kao lopta, a metalni dio ne smije klizati po stolu kao po ledu.
  • Prigušenje. Linearno i kutno prigušenje zaustavlja tijelo koje bi se inače predugo kotrljalo.

Za sudare svako tijelo ima kolizijski oblik (engl. collision shape), koji je gotovo uvijek jednostavniji od vidljive mreže. Hijerarhija oblika po trošku ide od primitivnih (kutija, kugla, kapsula) preko konveksne ljuske do složene mreže. Dobra praksa za laboratorij VR-1: šasija i poklopac kao nekoliko kutija, kotači kao valjci ili kapsule, stol kao jedna kutija. Složena mreža kao kolizijski oblik koristi se samo za statičke objekte.

Tijelo može biti statičko (ne pomiče se: zidovi, stol), dinamičko (pod utjecajem sila: dijelovi koji padaju) ili kinematičko (pomiče ga program, a ne sile: ruka, pokretna traka). Poseban je slučaj dio u ruci. Ako se drži kinematički, točno prati ruku, ali prolazi kroz stol jer ga ništa ne zaustavlja. Ako se drži fizikalno, preko virtualne opruge ili zgloba, zaustavlja se na stolu, a ruka se od njega vizualno odvoji. Virtualni dio nema stvarnu težinu u ruci; da bi teži dijelovi djelovali teže, može ih se namjerno pustiti da s malim zaostatkom prate ruku.

Za sklapanje robota u laboratoriju VR-1 prikladnije je ne oslanjati se samo na fiziku. Dio tada ne mora umetnuti s točnošću od desetinke milimetra; kad se približi svom mjestu unutar zadane tolerancije, npr. nekoliko milimetara i nekoliko stupnjeva, privuče se na točku spajanja i postane dio sklopa. Tako se izbjegava frustracija i nestabilnost fizike pri dodiru mnogo tijela.

Diskretno otkrivanje Kontinuirano (CCD) v / f ≈ 43 mm pod debljine 20 mm dio je prošao kroz pod put tijekom koraka isti pod debljine 20 mm dio je zaustavljen na podu
Slika 2.7 — Pri diskretnom otkrivanju sudara provjeravaju se samo položaji na kraju svakog koraka, pa brz dio može preskočiti tanku plohu. Kontinuirano otkrivanje provjerava cijeli put tijekom koraka.

Simulacija fizike radi u koracima stalne duljine. Između dva koraka tijelo preskoči put v / f, gdje je v brzina tijela, a f frekvencija simulacije. Ako je taj put veći od debljine plohe, tijelo se u jednom koraku nalazi iznad nje, a u sljedećem ispod, i sudar se nikad ne otkrije (slika 2.7). Rješenja su deblji kolizijski oblici poda i stola, kontinuirano otkrivanje sudara (engl. continuous collision detection, CCD) za male i brze dijelove te viša frekvencija simulacije fizike. Kao dobra praksa, frekvencija fizike u VR-u ne bi trebala biti niža od frekvencije prikaza, jer predmet u ruci inače može zaostajati i trzati se. Zadana frekvencija fizike razlikuje se po razvojnim okruženjima i treba je provjeriti u postavkama projekta.

Mjerilo i visina očiju

U VR-u mjerilo nije samo pitanje točnosti modela, nego i tijela. Korisnik sa sobom donosi vlastitu visinu, duljinu ruke i razmak zjenica, pa odmah primijeti ako je stol previsok ili vrata preuska. Pravila su jednostavna, ali se lako prekrše:

  • jedinica scene je metar i svi modeli dolaze u mjerilu 1 : 1 (vidi modul 1);
  • visinu očiju ne postavlja aplikacija, nego je daje praćenje; aplikacija samo zna gdje je pod, jer je pod određen pri postavljanju prostora za igru;
  • scena se ne smije skalirati da bi „bolje stala“, jer se time mijenja doživljena veličina svih predmeta i brzina pada;
  • svijet se može namjerno prikazati u drugom mjerilu (npr. korisnik smanjen da uđe u robot), ali to je odluka oblikovanja, a ne pogreška uvoza.

U laboratoriju VR-1 ploča stola je na 750 mm, a robot MR-1 dimenzija 220 × 180 × 110 mm. Jednostavna provjera nakon uvoza: u scenu se postavi kocka brida 1 m i usporedi sa stolom, a zatim se u naočalama provjeri seže li ruka do stola na očekivanoj visini. Ako je pod pogrešno određen, npr. 10 cm previsoko, cijeli laboratorij izgleda kao da korisnik kleči.

Zapamtite

Ako se virtualni stol u načinu miješane stvarnosti poravna sa stvarnim stolom iste visine, dobiva se pasivna haptika: korisnik dio doista odloži na stvarnu plohu. To je najjeftiniji i najuvjerljiviji oblik haptike.

Prostorni zvuk

Čovjek određuje smjer zvuka iz razlika između dvaju ušiju (slika 2.8). Razlika vremena dolaska (engl. interaural time difference, ITD) nastaje jer zvuk s desne strane stiže prije do desnog uha; za zvuk točno sa strane okvirno iznosi 0,6 do 0,7 ms. Razlika razine (engl. interaural level difference, ILD) nastaje jer glava zaklanja dalje uho, što je izraženije na višim frekvencijama. Oblik vanjskog uha, glave i ramena dodatno boji zvuk ovisno o smjeru, i to se opisuje funkcijom prijenosa glave (engl. head-related transfer function, HRTF). Prostorni zvuk u VR-u filtrira svaki izvor prema njegovu smjeru u odnosu na glavu, pa zvuk ostaje na mjestu i kad korisnik okrene glavu.

glava izvor zvuka kraći put dulji put oko glave slabljenje s udaljenošću 1 m: 0 dB 2 m: −6 dB 4 m: −12 dB ITD: razlika vremena dolaska, do ≈ 0,7 ms ILD: razlika razine zbog sjene glave
Slika 2.8 — Smjer zvuka određuju razlika vremena dolaska i razlika razine između ušiju; slabljenje u slobodnom prostoru iznosi oko 6 dB pri svakom udvostručenju udaljenosti.

Uz smjer, zvuk nosi i udaljenost. U slobodnom prostoru intenzitet zvuka pada s kvadratom udaljenosti (zakon obrnutog kvadrata), pa razina pada za oko 6 dB pri svakom udvostručenju udaljenosti. Razvojna okruženja nude krivulje slabljenja koje se mogu prilagoditi, a za zatvorene prostore i jeku, koja govori koliko je prostorija velika i od čega su zidovi.

U laboratoriju VR-1 zvuk može imati tri zadaće: potvrdu (klik kad dio sjedne na mjesto), stanje (zvuk motora kad robot vozi, koji se pojačava kad se robot približi) i navođenje pažnje (kratak zvuk s mjesta sljedeće točke interesa, pa korisnik okrene glavu prema izvoru). Dobra praksa je da svaki važan događaj ima i vidljivu i zvučnu potvrdu, jer dio korisnika radi bez slušalica ili s utišanim zvukom.

Haptika

Haptika (engl. haptics) je povratna veza preko osjeta dodira. U standardnoj opremi to je vibracija kontrolera: mali motor s ekscentrom ili linearni vibracijski aktuator u ručki kojemu aplikacija zadaje jakost, frekvenciju i trajanje impulsa. Iako je jednostavna, vibracija bitno povećava dojam dodira ako je kratka i vremenski točno usklađena s događajem.

Tipične primjene u laboratoriju VR-1:

  • vrlo kratak slab impuls kad ruka dotakne dio koji se može uhvatiti;
  • jači kratak impuls pri hvatanju i pri spajanju dijela na mjesto;
  • slaba stalna vibracija dok se drži motor koji je uključen;
  • bez vibracije pri praznom hodu ruke kroz zrak, da korisnik ne otupi na podražaj.

Postoje i napredniji uređaji: haptičke rukavice koje daju osjet pojedinim prstima, uređaji s povratnom silom i egzoskeleti koji mogu zakočiti prste. Oni su skupi, zahtijevaju posebnu integraciju i rijetko se koriste u obrazovnim aplikacijama. Kao što je navedeno kod mjerila, pasivna haptika stvarnim predmetom poravnatim s virtualnim često daje više od skupih uređaja.

Pažnja

Haptika ne može prenijeti težinu ni otpor. Aplikacija koja uči zatezanje vijaka zadanim momentom može pokazati postupak i redoslijed, ali ne i osjet momenta. To treba jasno reći polaznicima.

Osvjetljenje

Svjetlo i sjene u VR-u nisu ukras. Kontaktna sjena ispod dijela koji se spušta na stol najpouzdaniji je znak koliko je dio daleko od plohe; bez nje korisnik često dio pusti prerano ili ga pritisne kroz stol. Sjenčanje pokazuje oblik, a odsjaji materijal.

Osvjetljenje je, s druge strane, među najskupljim dijelovima iscrtavanja, a u VR-u se sve iscrtava dvaput. Zato se razlikuju dva pristupa:

PristupKako radiKada
Pečeno (statičko) osvjetljenjesvjetlo i sjene izračunaju se unaprijed i spreme u teksturu svjetla preko druge UV mape; pri izvođenju gotovo ništa ne koštazidovi, pod, stol, oprema koja se ne pomiče
Dinamičko osvjetljenjesvjetlo i sjene računaju se u svakom okviru; prate pokretne predmetedijelovi u ruci, robot koji vozi, ruke
Sonde za odsjajeunaprijed snimljena okolina koju sjajni materijali odražavajumetalne i lakirane površine

Za laboratorij VR-1 prikladna je ova podjela (preporuka): prostor osvijetljen pečenim svjetlom, a pokretni dijelovi i robot jednim dinamičkim usmjerenim svjetlom sa sjenama ograničenima na područje stola. Na uređaju B, kojemu je budžet 300 000 trokuta i 150 poziva za crtanje, dinamičke sjene treba dodatno pojednostaviti ili zamijeniti jednostavnom kontaktnom sjenom. Svaka takva odluka provjerava se mjerenjem vremena okvira na oba uređaja.

Korak simulacije i prolazak kroz plohe

Kad dio padne s visine h, vrijeme pada i brzina pri udaru su

t = √(2h / g)     v = √(2gh)     s = v / f

gdje je s put koji tijelo prijeđe u jednom koraku simulacije frekvencije f. Ako je s veći od debljine plohe, diskretno otkrivanje sudara može je preskočiti. Proračun je pojednostavljen: stvarna granica ovisi i o debljini samog dijela i o načinu na koji okruženje razrješava sudare.

Pad dijela i korak simulacije fizikeRačunski prikaz

Prikaz računa vrijeme pada i brzinu udara dijela te put koji dio prijeđe u jednom koraku simulacije, i uspoređuje ga s debljinom plohe.

Vrijeme pada—
Brzina pri udaru—
Put po koraku—
Koraka tijekom pada—

Dio koji padne s ruba stola, s 0,75 m, pada oko 0,39 s i udara brzinom od oko 3,84 m/s. Pri simulaciji na 90 Hz prelazi oko 43 mm po koraku, a cijeli pad traje oko 35 koraka. Ako je pod u sceni modeliran kao tanka ploha od 20 mm (pretpostavka za primjer), dio je može preskočiti. Povećanje frekvencije na 120 Hz smanjuje put na oko 32 mm, što još nije dovoljno; tek pri 240 Hz put pada na oko 16 mm. Jeftinije rješenje je deblji kolizijski oblik poda i kontinuirano otkrivanje sudara za male dijelove. Dio koji korisnik baci rukom brzinom od 5 m/s na 90 Hz prelazi oko 56 mm po koraku, pa je CCD za bačene dijelove nužan.

Ključni pojmovi

PojamZnačenje
Simulacija fizike (engl. physics engine)dio okruženja koji računa gibanje tijela pod silama i razrješava sudare
Kolizijski oblik (engl. collision shape)pojednostavljeni oblik tijela za otkrivanje sudara
Kinematičko tijelo (engl. kinematic body)tijelo koje pomiče program, a ne sile
Kontinuirano otkrivanje sudara (engl. continuous collision detection, CCD)provjera sudara duž cijelog puta tijekom koraka, protiv prolaska kroz tanke plohe
Razlika vremena dolaska (engl. interaural time difference, ITD)razlika u vremenu kad zvuk stigne do lijevog i desnog uha
Funkcija prijenosa glave (engl. head-related transfer function, HRTF)opis kako glava i uho mijenjaju zvuk ovisno o smjeru izvora
Haptika (engl. haptics)povratna veza preko osjeta dodira, najčešće vibracijom kontrolera
Pasivna haptika (engl. passive haptics)stvarni predmet poravnat s virtualnim koji korisnik može dotaknuti
Pečeno osvjetljenje (engl. baked lighting)svjetlo i sjene izračunati unaprijed i spremljeni u teksturu svjetla

Provjeri se

Kratka provjera prije prelaska na sljedeću jedinicu. Odgovor se potvrđuje klikom, a obrazloženje se prikazuje odmah.

Pitanje 1 od 4

Zašto se za stol u laboratoriju VR-1 kao kolizijski oblik koristi kutija, a ne vidljiva mreža?

Kolizijski oblik treba biti što jednostavniji; primitivni oblici su najjeftiniji za provjeru sudara.

Pitanje 2 od 4

Dio držan kinematički u ruci prolazi kroz stol. Zašto?

Kinematičko tijelo slijedi zadani položaj bez obzira na sudare. Za zaustavljanje na stolu dio se drži fizikalno, preko opruge ili zgloba.

Pitanje 3 od 4

Za koliko pada razina zvuka u slobodnom prostoru kad se udaljenost od izvora udvostruči?

Intenzitet pada s kvadratom udaljenosti, pa razina pri svakom udvostručenju udaljenosti padne za oko 6 dB.

Pitanje 4 od 4

Što je najpouzdaniji vidni znak korisniku koliko je dio koji spušta udaljen od stola?

Kontaktna sjena koja se približava dijelu pokazuje udaljenost od plohe i sprječava prerano puštanje.

Odgovoreno 0 od 4.