Preskoči na sadržaj
FORTRONIQ

MODUL 1 · MODELIRANJE DIGITALNIH OBJEKATA ZA VIRTUALNU STVARNOST

Nastavna jedinica 1.6

Uloga digitalnih objekata u virtualnom okruženju

Isti 3D model u sceni može biti zid, dio koji se hvata, ploča s uputom ili ruka korisnika. Jedinica pokazuje što svaka od tih uloga traži od modela: kolizijski oblik, fizikalna svojstva, mjesto u hijerarhiji scene i ishodište, na primjeru virtualnog laboratorija VR-1.

Moći ću:
  • razvrstati objekte scene prema ulozi: okoliš, interaktivni, informacijski objekt i avatar
  • odrediti što koja uloga traži od modela prije uvoza u razvojno okruženje
  • odabrati kolizijski oblik prema obliku dijela i cijeni provjere sudara
  • zadati fizikalna svojstva interaktivnog objekta: masu, kruto tijelo, kinematički način
  • složiti hijerarhiju sklopa s ispravnim ishodištima i priključnim mjestima
  • oblikovati informacijsku ploču točke interesa čitljivu u naočalama
  • izračunati pomak objekta po koraku fizike i kritičnu brzinu prolaska kroz ploču stola

Četiri uloge objekata u sceni

Modelar koji priprema građu za virtualnu stvarnost mora prije uvoza znati što će pojedini objekt u sceni raditi. Isti poklopac robota može biti ukras na polici, dio koji korisnik uzima i stavlja na šasiju ili prikaz na informacijskoj ploči. U svakom od tih slučajeva model treba drukčije postavke. Zato se objekti razvrstavaju prema ulozi, a uloga se zapisuje već u nazivu datoteke ili objekta.

UlogaŠto radiPrimjer u laboratoriju VR-1Što traži od modela
Okolišstvara prostor, ne miče sepod, zidovi 8 × 6 m visine 3 m, radni stol, policemjerilo 1 : 1, jednostavna kolizija, druga UV mapa za svjetlo, plohe za teleport
Interaktivnikorisnik ga hvata, pomiče, sklapa12 dijelova robota MR-1, alat na stoluishodište na točki hvatanja, kolizijski oblik, masa, priključno mjesto
Informacijskiprenosi podatak ili uputu6 točaka interesa s pločama, upute za sklapanječitljiv tekst, položaj u prostoru, stanje „prikazano / skriveno“
Avatarpredstavlja korisnika u scenimodeli ruku ili kontrolera, zraka za hvatanjepraćeni položaj, kolizija samo s interaktivnim objektima, animacija prema tipkama

Objekti okoliša čine najveći dio scene po površini, a najmanji po logici. Njihova je prva zadaća mjerilo tijela. Korisnik u naočalama odmah osjeti ako je stol visok 800 umjesto 750 mm ili ako su vrata uža od ramena, jer uspoređuje prostor sa svojim tijelom, a ne s drugim objektima. Druga zadaća je navigacija: pod i plohe po kojima je dopušten teleport označavaju se kao takve, a stol, police i zidovi kao zapreke. Treća je cijena. Okoliš se ne miče, pa dobiva pečeno svjetlo, spaja se u veće mreže i dijeli atlas tekstura, kao što je opisano u jedinici 1.5 Materijali, teksture i UV mapiranje.

Interaktivni objekti

Interaktivni objekt je sve što korisnik može dohvatiti. U laboratoriju VR-1 to su svi dijelovi robota MR-1: šasija, poklopac, dva pogonska kotača Ø65 mm, dva motora s reduktorom, kuglični oslonac, baterija, upravljačka pločica, ultrazvučni senzor udaljenosti, modul s dva IR senzora linije i prekidač. Hvatanje je predviđeno rukom do 0,8 m i zrakom (engl. ray) do 3 m, a dio se može prebaciti iz jedne ruke u drugu.

Svaki interaktivni objekt prolazi kroz nekoliko stanja: slobodan (leži na stolu i podliježe fizici), istaknut (ruka ili zraka je nad njim, pa se obris ili boja mijenja), u ruci (prati kontroler), postavljen (sjeo je na svoje mjesto u sklopu). Model za to treba pripremiti tri stvari.

  1. Ishodište (engl. pivot) na mjestu gdje ga ruka prirodno drži, ili zasebnu točku hvatanja kao prazni pomoćni objekt. Kotač koji se hvata za rub, a ishodište mu je u središtu šasije, u ruci će lebdjeti desetak centimetara ustranu.
  2. Kolizijski oblik koji odgovara obliku dovoljno da dio ne propadne kroz stol i da ga ruka može obuhvatiti.
  3. Priključno mjesto (engl. socket, snap point) na dijelu na koji se sklapa: prazni objekt s položajem i orijentacijom na koje dio „sjeda“ kad se donese dovoljno blizu. U sklopu MR-1 takvih je mjesta jedanaest, po jedno za svaki dio koji se ugrađuje na šasiju.

Priključno mjesto najbolje je modelirati u CAD sustavu ili programu za mrežu, gdje su poznate stvarne mjere, i izvesti ga zajedno s modelom kao prazni objekt s dogovorenim nazivom. Ako se postavlja tek u razvojnom okruženju, lako se pomakne za nekoliko milimetara, a u naočalama se takva pogreška vidi kao kotač koji ne sjeda na osovinu.

Kolizijski oblici

Provjera sudara radi se svakim korakom fizike za sve objekte koji se mogu dodirnuti. Kad bi se provjeravala na vidnoj mreži od nekoliko tisuća trokuta, pojela bi velik dio vremena okvira. Zato svaki objekt uz vidnu mrežu ima i kolizijski oblik (engl. collision shape, collider): pojednostavljeno tijelo koje se ne prikazuje, a služi samo za dodir.

vidna mreža točan oblik skupa provjera kutija najjeftinija prazni kutovi kapsula glatko kotrljanje loše za ravnu plohu dva primitiva dobar oblik i dalje jeftino ispuna: kolizijski oblik · crta: vidna mreža
Slika 1.6.1 — Motor s reduktorom robota MR-1: vidna mreža i tri kolizijska oblika. Za dio koji se hvata i slaže najčešće je dobar izbor spoj dvaju ili triju jednostavnih tijela.

Kolizijski oblici poredani od najjeftinijeg do najskupljeg su:

  • primitivi — kugla, kapsula, kutija; provjera je gotovo besplatna, a oblik grub;
  • spoj primitiva — nekoliko jednostavnih tijela vezanih za isti objekt, kao na slici desno;
  • konveksna ljuska (engl. convex hull) — najmanje ispupčeno tijelo koje obuhvaća mrežu, s ograničenim brojem vrhova; dobro prati oblik, ali ne može imati udubinu;
  • mreža kao kolizija — točna, ali skupa i u većini okruženja dopuštena samo za statične objekte okoliša.

Kolizijski oblici mogu se izraditi u programu za mrežu i izvesti zajedno s modelom. Neka okruženja ih prepoznaju po dogovorenom predmetku u nazivu (npr. UCX_ za konveksni oblik u Unreal Engineu); drugi ih dodaju kao komponentu u samom okruženju. Pravilo naziva provjerite u dokumentaciji svoje inačice.

Mali dijelovi traže posebnu pažnju. Prekidač robota MR-1 manji je od prsta, pa njegov kolizijski oblik gotovo ne može pogoditi zamišljena točka hvatanja na dlanu. Za hvatanje se zato dodaje zaseban, nešto veći volumen okidača (engl. trigger volume), koji ne sudjeluje u sudarima nego samo javlja da je ruka blizu. Takvi slučajevi pojavljuju se i pri ispitivanju: u laboratoriju VR-1 jedan od dva neuspjela testna slučaja bio je upravo hvatanje prekidača koji je pao ispod ruba stola.

Pažnja

Kolizijski oblik ruke ne smije se sudarati s kolizijskim oblikom tijela ili druge ruke. Inače korisnik koji prebacuje dio iz ruke u ruku „gura“ vlastitu ruku, a dio poskakuje. Rješava se slojevima (kanalima) kolizije: ruke se sudaraju samo s interaktivnim objektima.

Fizika: masa, gravitacija i prolazak kroz objekte

Slobodan interaktivni objekt je kruto tijelo (engl. rigid body): ima masu, na njega djeluje gravitacija, odbija se i klizi po stolu. Masa se zadaje prema stvarnom dijelu, a zbroj masa svih dijelova MR-1 treba dati 1,2 kg koliko ima sklopljeni robot. Tako se baterija, koja je među težim dijelovima, i u sceni ponaša teže od poklopca: sporije se zakreće kad se gurne i čvršće leži na stolu.

Dok je objekt u ruci, fizika se najčešće isključuje ili podređuje ruci. Objekt tada postaje kinematički (engl. kinematic): položaj mu određuje kontroler, a on gura druge objekte, ali oni ne guraju njega. Drugi način je da ga ruka vuče oprugom ili silom, pa dio zapinje o rub stola kao pravi. Prvi način je stabilniji i jednostavniji, drugi uvjerljiviji, ali traži podešavanje.

Fizika se računa u koracima (engl. physics step). Ako je korak jednak frekvenciji zaslona, pri 90 Hz traje 11,1 ms. Tijelo koje se giba brzinom v u jednom koraku prijeđe put v · Δt. Kad je taj put veći od zbroja debljina objekta i zapreke, objekt se u jednom koraku nalazi iznad ploče, a u sljedećem ispod nje: sudar se nikad ne zabilježi. Ta pojava naziva se tuneliranje (engl. tunneling). U VR-u je češća nego u igri na zaslonu, jer korisnik dijelove baca i ispušta rukom, a mali dijelovi su tanki. Rješenja su kontinuirana provjera sudara (engl. continuous collision detection, CCD) za male i brze dijelove, deblji kolizijski oblik zapreke i manji korak fizike. CCD troši više vremena, pa se uključuje samo gdje treba, a ne za cijelu scenu.

Zapamtite

Mnoga okruženja zadano računaju fiziku s drugim korakom nego što je frekvencija zaslona. Za VR je dobra praksa korak fizike uskladiti s frekvencijom osvježavanja ciljnog uređaja, inače se objekt u ruci može trzati (ovisno o okruženju i uključenoj interpolaciji).

Hijerarhija scene i ishodišta

Objekti u sceni čine stablo: svaki ima roditelja (engl. parent) i može imati djecu (engl. children). Položaj djeteta zapisan je lokalno, u odnosu na roditelja, a okruženje ga pretvara u globalni položaj u sceni. Kad se roditelj pomakne, pomiču se i sva djeca. Hijerarhija zato nije samo red u popisu objekata, nego i dio ponašanja.

Scena VR-1 Okoliš Robot MR-1 Informacije Igrač pod, zidovi radni stol police, alat plohe teleporta šasija (korijen) kotač L, D motor L, D poklopac pločica, senzori baterija 11 priključnih mjesta 6 točaka interesa ploče s opisom upute sklapanja kamera (glava) ruka L ruka D zraka hvatanja tirkizno: grana koja se mijenja pri sklapanju
Slika 1.6.2 — Hijerarhija scene laboratorija VR-1. Šasija je korijen sklopa; dio koji sjedne na priključno mjesto postaje njezino dijete, a dok je u ruci, dijete je ruke.

U sklopu robota MR-1 šasija je korijen: svi dijelovi su njezina djeca, pa se sklopljeni robot pomiče kao cjelina kad ga korisnik podigne ili kad krene voziti. Tijekom sklapanja dio mijenja roditelja: na stolu je dijete okoliša ili scene, u ruci dijete ruke, a kad sjedne na priključno mjesto, postaje dijete šasije. Zato ishodišta moraju biti postavljena tako da promjena roditelja ne pomakne dio: kotač ima ishodište u osi vrtnje, kako bi se poslije mogao vrtjeti oko vlastite osi, a priključno mjesto na šasiji ima isto ishodište i istu orijentaciju osi.

Iz toga slijede tri pravila koja se provjeravaju još u programu za modeliranje: transformacije su primijenjene (mjerilo 1, bez zaostale rotacije), osi dijela usklađene su s osima sklopa, a nazivi objekata su jednoznačni i opisni (npr. MR1_kotac_L, MR1_soket_kotac_L). O ishodištima općenito piše jedinica 1.3 Slobodno modeliranje i obrada mreže.

Informacijski objekti i avatar

Točka interesa (engl. point of interest, POI) u laboratoriju VR-1 ima dva dijela: oznaku na dijelu (mali svjetleći znak ili obris) i informacijsku ploču s tekstom koja se otvara kad je korisnik aktivira. Točaka je šest: motor, kotač, baterija, pločica, senzor udaljenosti i prekidač. Ploča je model kao i svaki drugi, ali ima vlastita pravila.

  • Ploča stoji u prostoru, uz dio na koji se odnosi, a ne zalijepljena na vidno polje. Tekst koji se miče s glavom teško se čita i brzo zamara.
  • Visina slova određuje se kutom, a ne točkama. Kao polazište dobre prakse uzmite da velika slova zauzmu barem oko 1° vidnog kuta: na 1 m to je oko 17 mm, na 1,5 m oko 26 mm. Na zaslonu s oko 21 piksela po stupnju tako slovo ima dvadesetak piksela visine.
  • Kontrast i podloga. Svijetli tekst na tamnoj, neprozirnoj podlozi čita se bolje od teksta preko scene. Ploča ne treba kolizijski oblik za sudare, samo volumen za pokazivanje zrakom.
  • Ploča se okreće prema korisniku samo oko okomite osi, kako se ne bi naginjala kad se korisnik sagne.

Avatar je prikaz korisnika u sceni. U laboratoriju VR-1 to su samo ruke ili modeli kontrolera, jer se tijelo ne prati. Prikazivati tijelo koje se ne prati, s rukama koje se ne poklapaju sa stvarnima, obično više smeta nego pomaže. Model ruke treba ishodište u točki koju daje praćenje kontrolera, kostur za animaciju prstiju prema tipkama i kolizijski oblik koji se sudara samo s interaktivnim objektima. Kako se ruke vežu za kontrolere i animiraju, obrađuje treći modul.

Prolazak kroz objekte pri koraku fizike

Računski prikaz provjerava hoće li mali dio koji padne ili je bačen proći kroz ploču stola bez sudara. Pomak po koraku i kritična brzina iznose

s = v / f · vk = (do + dp) · f · hk = vk² / (2g)

gdje je f frekvencija koraka fizike, do debljina objekta, dp debljina ploče, a hk visina slobodnog pada pri kojoj objekt dosegne kritičnu brzinu.

Prolazak dijela kroz ploču stolaRačunski prikaz

Računa pomak objekta u jednom koraku fizike, kritičnu brzinu pri kojoj sudar može promaknuti i visinu pada pri kojoj se ta brzina dosegne.

Pomak po koraku—
Kritična brzina—
Visina pada do kritične brzine—

Za zadane vrijednosti pretpostavljamo prekidač debljine 12 mm i ploču stola debljine 25 mm. Pri koraku fizike od 90 Hz i brzini 3 m/s prekidač se u jednom koraku pomakne oko 33 mm, a kritična brzina iznosi oko 3,3 m/s. Toliku brzinu dio dosegne već slobodnim padom s oko 0,57 m iznad stola, dakle kad ga korisnik ispusti iz ruke u visini prsa. Bačen iz zamaha lako prijeđe 5 m/s. Za prekidač i ostale sitne dijelove robota MR-1 zato treba uključiti kontinuiranu provjeru sudara ili ploči stola dati deblji kolizijski oblik (npr. kutiju debljine 100 mm, koja se ne vidi).

Ključni pojmovi

PojamZnačenje
kolizijski oblik (engl. collision shape, collider)pojednostavljeno nevidljivo tijelo na kojem se provjeravaju sudari umjesto na vidnoj mreži
konveksna ljuska (engl. convex hull)najmanje ispupčeno tijelo koje obuhvaća mrežu; dobar kompromis točnosti i cijene
kruto tijelo (engl. rigid body)objekt kojim upravlja fizika: masa, gravitacija, sudari, trenje
kinematički objekt (engl. kinematic)objekt kojem položaj zadaje logika ili kontroler; gura druge, a njega ne guraju
tuneliranje (engl. tunneling)prolazak brzog tankog objekta kroz zapreku jer se sudar u koraku fizike ne zabilježi
volumen okidača (engl. trigger volume)nevidljivo tijelo koje ne sudjeluje u sudaru, nego samo javlja ulazak i izlazak drugog objekta
priključno mjesto (engl. socket, snap point)prazni objekt s položajem i orijentacijom na koje se dio postavlja pri sklapanju
hijerarhija scene (engl. scene hierarchy)stablo odnosa roditelj–dijete u kojem se položaj djeteta zapisuje u odnosu na roditelja
točka interesa (engl. point of interest, POI)mjesto u sceni koje na zahtjev korisnika prikazuje podatak ili uputu o dijelu

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

Kojoj ulozi pripada informacijska ploča uz motor robota MR-1?

Ploča prenosi podatak ili uputu o dijelu; to je informacijski objekt. Treba čitljiv tekst i volumen za pokazivanje, a ne masu.

Pitanje 2 od 4

Zašto se za motor s reduktorom najčešće bira spoj dvaju primitiva umjesto vidne mreže kao kolizije?

Provjera sudara radi se svakim korakom fizike; primitivi su gotovo besplatni, a spoj dvaju dobro prati oblik motora i reduktora.

Pitanje 3 od 4

Kotač robota se u ruci drži desetak centimetara ustranu od kontrolera. Najvjerojatniji uzrok je:

Pri hvatanju se ishodište ili točka hvatanja postavlja na kontroler. Ako je ishodište ostalo na mjestu iz sklopa, dio lebdi pomaknut za tu udaljenost.

Pitanje 4 od 4

Pri koraku fizike 90 Hz prekidač debljine 12 mm pada na ploču kolizije debljine 25 mm. Iznad koje brzine sudar može promaknuti?

v_k = (12 + 25) mm · 90 Hz = 3330 mm/s ≈ 3,3 m/s. Tu brzinu dio dosegne padom s oko 0,57 m.

Odgovoreno 0 od 4.