Preskoči na sadržaj
FORTRONIQ

MODUL 1 · MODELIRANJE DIGITALNIH OBJEKATA ZA VIRTUALNU STVARNOST

Nastavna jedinica 1.4

Vrste digitalnih objekata

Isti predmet može se zapisati kao poligonalna mreža, kao egzaktne NURBS plohe, kao skup voksela ili kao oblak točaka, a u sceni može biti statičan, pokretan ili vođen kosturom. Ova jedinica uspoređuje te zapise i ponašanja iz kuta virtualne stvarnosti i pokazuje kako se odabire pravi za svaki objekt laboratorija VR-1.

Moći ću:
  • razlikovati poligonalni, NURBS i vokselni zapis te oblak točaka prema građi i namjeni
  • objasniti zašto se u prikazu u stvarnom vremenu svi zapisi na kraju svode na trokute ili točke
  • opisati postupak fotogrametrije i njegova ograničenja, posebno u pogledu mjerila
  • razvrstati objekte scene na statičke, pokretne i skeletne i navesti posljedice za pripremu
  • odabrati vrstu zapisa i ponašanja za objekte laboratorija VR-1
  • izračunati memoriju vokselnog zapisa i oblaka točaka i usporediti je s poligonalnim modelom

Isti predmet, različiti zapisi

Kad kažemo „3D model“, obično mislimo na mrežu trokuta. To je najčešći zapis u virtualnoj stvarnosti, ali ne i jedini. Ovisno o tome odakle model dolazi — iz CAD sustava, iz skenera, iz snimke kamerom ili iz simulacije — isti oblik može biti zapisan na četiri bitno različita načina.

mrežaNURBSvokselioblak točaka trokutiizravan prikaz egzaktna plohaizvor iz CAD-a i unutrašnjostCT, simulacija bez plohaskener, fotografije
Slika 1.7 — Isti zaobljeni oblik u četiri zapisa: mreža trokuta (tirkizno obris, sivo bridovi), NURBS krivulja s kontrolnim poligonom i kontrolnim točkama, vokseli koji popunjavaju volumen stepenasto i oblak točaka s površine, sa šumom mjerenja.

Za virtualnu stvarnost presudno je sljedeće: grafički procesor u stvarnom vremenu najbrže iscrtava trokute. Egzaktne plohe zato se prije prikaza teseliraju, vokseli se pretvaraju u mrežu ili iscrtavaju posebnim postupcima, a oblak točaka iscrtava se kao skup točaka ili se iz njega izrađuje mreža. Svaka pretvorba ima cijenu u vremenu pripreme i u vjernosti, a svaki izravni prikaz nepoligonalnog zapisa ima cijenu u vremenu okvira, koje pri 90 Hz iznosi 11,1 ms.

Općenite osnove 3D zapisa obrađene su u području Proširena stvarnost, u jedinici Uvod u 3D modeliranje. Ovdje ih uspoređujemo prema tome što znače za scenu u naočalama.

Poligonalni modeli

Poligonalni model (engl. polygon mesh) opisuje površinu predmeta vrhovima, bridovima i plohama. Programi za modeliranje rade s četverokutima i višekutima, ali se za prikaz sve dijeli na trokute, jer je trokut uvijek ravan i grafički ga procesor iscrtava izravno. Model nosi samo površinu: unutrašnjost predmeta ne postoji, a masa i težište zadaju se posebno.

Prednosti poligonalnog zapisa za VR su izravno iscrtavanje, dobra podrška u svim razvojnim okruženjima i formatima (glTF, FBX), mogućnost razina detalja i jednostavno pridruživanje materijala i tekstura preko UV mape. Nedostatak je što je oblik samo aproksimacija: zakrivljena ploha prikazana je ravnim trokutima, a točnost ovisi o njihovu broju.

Svi objekti laboratorija VR-1 koji se iscrtavaju u sceni na kraju su poligonalni: prostorija, stol i dvanaest dijelova robota MR-1, koji iz fine teselacije sa 312 000 trokuta nakon obrade dolaze na 28 000 u najdetaljnijoj razini.

NURBS i egzaktne plohe

NURBS (engl. non-uniform rational B-spline) matematički je opis krivulja i ploha preko kontrolnih točaka, težina i čvornog vektora. Kontrolne točke ne leže nužno na plohi, ali oblikuju je: pomakom jedne točke mijenja se samo dio plohe u njezinoj blizini. CAD sustavi pomoću takvih ploha, omeđenih bridovima, zapisuju granični prikaz modela (B-rep). Takav zapis je točan u svakoj točki i neovisan o razlučivosti: ista ploha može se teselirati na 18 ili na 127 segmenata po opsegu kotača.

Za prikaz u stvarnom vremenu egzaktne plohe se pretvaraju u trokute, bilo pri izvozu iz CAD sustava, bilo pri uvozu u razvojno okruženje putem dodatka za CAD. Postupak i postavke tolerancija obrađuje jedinica 1.2. Praktična posljedica za VR: NURBS model je izvor iz kojeg se mogu izraditi mreže različite gustoće za sve razine detalja, ali sam se ne prikazuje.

Vokseli, oblak točaka i fotogrametrija

Vokselni model (engl. voxel, od volume element) dijeli prostor na pravilnu rešetku kockica, a svaka nosi vrijednost: gustoću, materijal, temperaturu. Za razliku od mreže, voksel opisuje i unutrašnjost. Tipični izvori su industrijska računalna tomografija (CT) odljevaka i sklopova, medicinsko snimanje i rezultati simulacija. U virtualnoj stvarnosti vokselni podaci koriste se kad korisnik treba „ući“ u predmet, na primjer pregledati poroznost odljevka ili raspodjelu temperature u kućištu. Mana je memorija: broj voksela raste s trećom potencijom razlučivosti, pa dvostruko finija rešetka zauzima osam puta više prostora.

Oblak točaka (engl. point cloud) skup je točaka u prostoru, svaka s koordinatama i često s bojom. Nastaje laserskim skeniranjem, dubinskim kamerama ili fotogrametrijom. Oblak nema ploha ni povezanosti, pa se ne može izravno teksturirati niti koristiti za kolizije. Za pregled velikih prostora (pogon, hala, gradilište) oblak se može iscrtavati izravno, uz odgovarajući dodatak; za interaktivne objekte iz njega se izrađuje mreža.

Fotogrametrija (engl. photogrammetry) izrađuje model iz niza fotografija snimljenih iz različitih položaja. Program pronalazi iste značajke na više fotografija, iz njih određuje položaje kamere i rijedak oblak točaka, zatim gusti oblak, pa mrežu i na kraju teksturu iz samih fotografija. Rezultat je vrlo uvjerljiv izgled, ali i mreža s milijunima nepravilnih trokuta, koju za VR treba decimirati ili retopologizirati (jedinica 1.3).

Pažnja

Fotogrametrija iz samih fotografija ne zna stvarno mjerilo: model iste police može ispasti visok 0,2 m ili 20 m. U kadar zato postavite mjernu letvu ili ciljne oznake poznatog razmaka i prema njima skalirajte model na 1 : 1 prije bilo kakve daljnje obrade. Sjajne, prozirne i jednolične plohe (polirani metal, staklo, bijeli zid) fotogrametrija loše obrađuje.

Dobra praksa pri snimanju je ravnomjerno, raspršeno osvjetljenje bez oštrih sjena, jer se sjene inače „upeku“ u teksturu, te dovoljno preklapanje susjednih fotografija, obično više od polovine kadra. U laboratoriju VR-1 fotogrametrija ima smisla za pozadinske predmete kojih nema u CAD-u, npr. stvarnu policu s alatom ili zidnu ploču s uputama, dok robot MR-1 dolazi iz CAD sustava jer su mu mjere i dijelovi poznati.

Statički, pokretni i skeletni objekti

Druga podjela ne gleda kako je oblik zapisan, nego kako se objekt ponaša u sceni. O tome ovisi kako se model priprema, osvjetljava i optimizira.

  • Statički objekti (engl. static) se ne miču: prostorija, zidovi, strop, radni stol. Za njih razvojno okruženje može unaprijed izračunati osvjetljenje u teksturu (za što treba druga UV mapa, jedinica 1.5) i spojiti više objekata u manje poziva za crtanje (jedinica 1.7).
  • Pokretni objekti (engl. movable, dynamic) mijenjaju položaj kao kruto tijelo. Pokreće ih animacija, fizika ili ruka korisnika. Svih dvanaest dijelova robota MR-1 su pokretni: hvataju se, prenose iz ruke u ruku i ugrađuju, a kotači se u vožnji vrte oko svoje osi.
  • Skeletni objekti (engl. skeletal mesh) imaju unutarnji kostur od kostiju povezanih zglobovima, a svaki vrh mreže vezan je na jednu ili više kostiju s težinama (engl. skinning). Mreža se tako savija kao koža. U VR-1 skeletni su modeli ruku, a u aplikacijama s više korisnika i avatari.
zapešćevrh prsta Kostur ruke zapešće i dlan: 2 zgloba palac: 4 zgloba ostali prsti: po 5 zglobova ukupno 26 zglobova po ruci zglob (javlja ga praćenje) kost modela ruke vrhovi mreže vezani su na kosti s težinama
Slika 1.8 — Pojednostavljeni kostur desne ruke gledan sa stražnje strane šake: 26 zglobova kako ih opisuje standard OpenXR za praćenje ruku (zapešće, dlan, četiri zgloba palca i po pet za ostale prste). Model ruke u sceni mora imati kosti koje odgovaraju tim zglobovima.

Kod ruku je kostur zadan i izvana. Standard OpenXR za praćenje ruku opisuje svaku ruku s 26 zglobova: zapešće, dlan, četiri zgloba palca i po pet zglobova za ostala četiri prsta. Pokretač javlja položaj i orijentaciju svakog zgloba, a aplikacija ih prenosi na kosti modela ruke. Model ruke zato mora imati kostur čiji zglobovi odgovaraju tom rasporedu, inače prsti u sceni ne prate stvarne prste. Kad se koriste kontroleri bez praćenja ruku, isti se kostur pokreće animacijama prema pritisku tipki (modul 3).

Odabir vrste objekta za laboratorij VR-1

Za svaki objekt scene odlučuju se dvije stvari: iz kojeg zapisa nastaje i kako se ponaša. Tablica prikazuje odluke za laboratorij VR-1; u vlastitom projektu napravite istu tablicu prije početka modeliranja.

ObjektIzvor zapisaZapis u sceniPonašanje
Prostorija 8 × 6 × 3 mslobodno modeliranjepoligonalni, jednostavanstatički, unaprijed izračunato svjetlo
Radni stol 1600 × 800 mmslobodno modeliranjepoligonalnistatički
Polica s alatom (pozadina)fotogrametrija, skalirana mjernom letvompoligonalni nakon retopologijestatički
Dijelovi robota MR-1 (12)CAD (NURBS, STEP)poligonalni, 28 000 trokuta ukupno u LOD0pokretni, hvataju se
Pogonski kotačiCADpoligonalnipokretni, vrte se pri vožnji
Ruke korisnikaslobodno modeliranje s kosturompoligonalni, skeletniskeletni, 26 zglobova po ruci
Točke interesa (6)izrađuju se u razvojnom okruženjujednostavni oblici i tekstpokretni s dijelom, prikazuju se na zahtjev

Vokselni zapis u osnovnoj inačici VR-1 nije potreban. Imao bi smisla u proširenju, na primjer kad bi korisnik trebao vidjeti unutrašnjost motora s reduktorom snimljenu industrijskim CT-om. Tada bi to bio poseban objekt koji se prikazuje samo na zahtjev, jer bi inače zauzeo veći dio budžeta.

Zapamtite

Zapis govori odakle model dolazi i kako se obrađuje; ponašanje govori kako se priprema za scenu. Statički objekt smije biti složeniji jer se može spojiti i unaprijed osvijetliti; pokretni objekt treba vlastito ishodište i kolizijski oblik; skeletni objekt treba kostur koji odgovara izvoru pokreta.

Memorija voksela i oblaka točaka

Vokselna rešetka koja obuhvaća predmet dimenzija a × b × c uz razlučivost r ima Nv = (a/r) · (b/r) · (c/r) voksela. Ako svaki voksel nosi k bajtova (npr. 2 B za 16-bitnu gustoću iz CT-a), memorija je Nv · k. Točka u oblaku s koordinatama u tri broja s pomičnim zarezom (3 × 4 B) i bojom RGBA (4 B) zauzima 16 B.

Nv = (a · b · c) / r³    Mv = Nv · k    Mo = Nt · 16 B

Računski prikaz uspoređuje obje vrijednosti s poligonalnim modelom robota MR-1 u formatu glTF, koji s materijalima i teksturama zauzima 3,2 MB. Zapis bez sažimanja, a MB ovdje znači 1024 × 1024 B.

Memorija voksela i oblaka točakaRačunski prikaz

Za obuhvatni kvadar predmeta i razlučivost rešetke računa broj voksela i njihovu memoriju te memoriju oblaka točaka, i uspoređuje ih s glTF modelom robota od 3,2 MB.

Voksela—
Memorija voksela—
Memorija oblaka—
Vokseli prema glTF modelu—

Za obuhvatni kvadar robota MR-1 (220 × 180 × 110 mm) i razlučivost 1 mm rešetka ima oko 4,36 milijuna voksela, što uz 2 B po vokselu iznosi oko 8,3 MB — približno 2,6 puta više od cijelog glTF modela. S razlučivošću 0,5 mm broj voksela raste osam puta, na oko 34,8 milijuna, a memorija na oko 66 MB. Oblak od 2 milijuna točaka zauzima oko 30,5 MB, gotovo deset puta više od glTF modela, a pritom nema ni ploha ni materijala. Zato se u VR aplikacijama vokselni zapisi i oblaci točaka uglavnom koriste kao posebni slojevi za pregled, a interaktivni objekti se izrađuju kao lagane poligonalne mreže.

Ključni pojmovi

PojamZnačenje
poligonalna mreža (engl. polygon mesh)zapis površine vrhovima, bridovima i plohama; za prikaz se dijeli na trokute
NURBS (engl. non-uniform rational B-spline)egzaktan matematički opis krivulja i ploha preko kontrolnih točaka i težina
voksel (engl. voxel, volume element)element pravilne prostorne rešetke s vrijednošću; opisuje i unutrašnjost predmeta
oblak točaka (engl. point cloud)skup točaka s koordinatama i bojom, bez ploha i povezanosti
fotogrametrija (engl. photogrammetry)izrada 3D modela iz niza fotografija snimljenih iz različitih položaja
statički objekt (engl. static object)objekt koji se u sceni ne miče; može imati unaprijed izračunato osvjetljenje
skeletni model (engl. skeletal mesh)mreža vezana na kostur; savija se prema položaju kostiju
vezanje na kostur (engl. skinning)pridruživanje vrhova mreže kostima s težinama
zglob ruke (engl. hand joint)točka kostura ruke čiji položaj javlja praćenje; OpenXR ih opisuje 26 po ruci

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

Koji zapis opisuje i unutrašnjost predmeta, a ne samo njegovu površinu?

Voksel je element prostorne rešetke s vrijednošću, pa opisuje cijeli volumen, npr. gustoću iz CT snimke.

Pitanje 2 od 4

Što je nužan korak nakon fotogrametrije police za laboratorij VR-1, prije daljnje obrade?

Fotogrametrija iz samih fotografija ne zna stvarno mjerilo; bez reference model može biti bilo koje veličine.

Pitanje 3 od 4

U koju skupinu po ponašanju spadaju modeli ruku korisnika u VR-1?

Ruke imaju kostur čije zglobove javlja praćenje ruku ili ih pokreću animacije prema tipkama kontrolera.

Pitanje 4 od 4

Vokselna rešetka robota MR-1 ima razlučivost 1 mm. Koliko puta raste broj voksela ako se razlučivost poboljša na 0,5 mm?

Broj voksela raste s trećom potencijom omjera razlučivosti: (1 / 0,5)³ = 8.

Odgovoreno 0 od 4.