MODUL 1 · MODELIRANJE DIGITALNIH OBJEKATA ZA VIRTUALNU STVARNOST
Nastavna jedinica 1.3
Slobodno modeliranje i obrada mreže
Program za slobodno modeliranje u lancu pripreme za virtualnu stvarnost služi za dvije stvari: za izradu objekata koji nemaju CAD izvor i za obradu teseliranih mreža. Ova jedinica pokazuje kako se provjerava i čisti topologija, kako se mreža decimira do budžeta i kako se postavljaju ishodišta i transformacije prije izvoza.
- objasniti ulogu programa za slobodno modeliranje u lancu pripreme modela za VR
- prepoznati pogreške topologije koje smetaju prikazu u stvarnom vremenu i ukloniti ih
- odabrati postupak decimacije prema vrsti plohe i ciljnom broju trokuta
- postaviti ishodište i primijeniti transformacije prije izvoza
- pripremiti mrežu za izvoz u razvojno okruženje
- izračunati broj trokuta nakon decimacije, procijenjeni broj vrhova i memoriju mreže
Program za mrežu u lancu pripreme
U lancu CAD sustav → program za mrežu → razvojno okruženje srednja karika najčešće odlučuje hoće li model u naočalama raditi pri 90 sl/s. Ondje se teselirana mreža čisti, smanjuje, razmotava i imenuje.
Osnovni alati slobodnog modeliranja — izvlačenje, rezovi, petlje bridova, modifikatori, podjela ploha i kiparenje — obrađeni su u području Proširena stvarnost, u jedinici Slobodno modeliranje. Ovdje se usredotočujemo na ono što je za virtualnu stvarnost posebno: broj trokuta za stereo iscrtavanje, čistoću sjenčanja koja se vidi s oba oka i ishodišta za dohvat rukom.
U laboratoriju VR-1 program za slobodno modeliranje (npr. Blender) ima dvije zadaće:
- izradu objekata bez CAD izvora — prostorija 8 × 6 m s visinom 3 m, radni stol, police, ploča s uputama, rekviziti;
- obradu teseliranih CAD mreža — dvanaest dijelova robota MR-1 koji iz fine teselacije dolaze s ukupno 312 000 trokuta, a trebaju završiti na 28 000 u najdetaljnijoj razini (LOD0).
Objekti izrađeni izravno u programu za mrežu od početka se modeliraju za prikaz: s predviđenim brojem trokuta, u mjerilu 1 : 1 i s ishodištem na pravom mjestu. Teselirane mreže traže više rada, jer ih je stvarao algoritam, a ne modelar.
Topologija mreže iz kuta prikaza u stvarnom vremenu
Topologija je raspored vrhova, bridova i ploha u mreži. Za modele koji se deformiraju — ruke, avatar, odjeća — presudne su uredne petlje bridova od četverokuta, jer o njima ovisi kako se mreža savija. Za krute objekte poput dijelova robota važnije su tri druge stvari: ukupan broj trokuta, ispravno sjenčanje i oblik samih trokuta.
Uski, izduženi trokuti (engl. sliver triangles) posebno su nepovoljni. Grafički procesor sjenča piksele u malim skupinama od 2 × 2, pa trokut širok jedan piksel troši rad kao da je širi, a na njegovim rubovima nastaju vidljive nepravilnosti sjenčanja. CAD teselatori takve trokute stvaraju redovito, najviše na dugačkim ravnim plohama uz zaobljene rubove.
U laboratoriju VR-1 uredna topologija četverokuta potrebna je prije svega za modele ruku. Prsti se savijaju prema položaju tipki na kontroleru ili prema praćenju ruku, a mreža bez petlji bridova oko zglobova pri savijanju se lomi i gubi volumen. Korisnik te ruke gleda iz blizine cijelo vrijeme, pa se svaka takva pogreška odmah primijeti.
Za virtualnu stvarnost važna je i mnogostrukost (engl. manifold): svaki brid dijele najviše dvije plohe, a mreža zatvorenog dijela nema rupa. Nemnogostruke mreže ne smetaju samom prikazu, ali stvaraju probleme pri decimaciji, izradi kolizijskog oblika i pečenju tekstura.
Čišćenje mreže nakon uvoza
Prvi korak nakon uvoza teseliranog modela je čišćenje. Redoslijed je važan: decimacija na neočišćenoj mreži umnožava pogreške. Nazivi naredbi razlikuju se po programu i inačici, pa su ovdje opisane funkcije.
| Problem | Uzrok | Postupak |
|---|---|---|
| Dvostruki vrhovi na istom mjestu | svaka ploha CAD modela teselira se zasebno | spajanje vrhova unutar male udaljenosti (npr. 0,01 mm), uz čuvanje oštrih bridova |
| Normale okrenute prema unutra | pogrešna orijentacija plohe u izvozu | preračunavanje normala prema van, zatim vizualna provjera s prikazom stražnjih strana |
| Degenerirani trokuti | trokuti bez površine na spojevima ploha | brisanje trokuta ispod zadane površine |
| Unutarnje plohe | skriveni dijelovi i dodirne plohe u sklopu | brisanje ploha koje se izvana nikad ne vide |
| Rupe u mreži | plohe koje teselator nije uspio obraditi | zatvaranje rupe novom plohom |
Pažnja
Spajanje vrhova s prevelikom udaljenošću sažima sitne dijelove u točku i spaja susjedne dijelove koji trebaju ostati odvojeni. Za dijelove robota MR-1 udaljenost spajanja drži se ispod 0,1 mm, a nakon spajanja provjerava se da je broj objekata i dalje dvanaest.
Decimacija do budžeta
Decimacija (engl. decimation) smanjuje broj trokuta uz što manju promjenu oblika. Programi za obradu mreže obično nude tri načina:
- Sažimanje bridova (engl. edge collapse) — bridovi se redom sažimaju u točku, najprije oni čije uklanjanje najmanje mijenja oblik. Zadaje se omjer ili ciljni broj trokuta.
- Planarna decimacija — spaja susjedne plohe koje leže u gotovo istoj ravnini (zadaje se granični kut). Idealna je za CAD modele s mnogo ravnih ploha, poput šasije i poklopca.
- Ponavljanje podjele unatrag — za mreže nastale podjelom ploha; kod teseliranih CAD modela rijetko je primjenjiva.
Budžet se ne dijeli ravnomjerno. Dio koji korisnik drži u ruci i gleda izbliza (motor, baterija, senzor) zaslužuje više trokuta od šasije koja uglavnom leži na stolu. Kotač se vrti i obris mu je stalno vidljiv, pa mu treba dovoljno segmenata po opsegu, dok se kuglični oslonac jedva vidi. Dobra praksa je najprije ukloniti trokute tamo gdje ne donose ništa (planarna decimacija ravnih ploha), a tek zatim smanjivati zakrivljene plohe.
| Dio MR-1 | Kako ga korisnik vidi | Prednost pri raspodjeli trokuta |
|---|---|---|
| motor s reduktorom, baterija, senzor udaljenosti | u ruci, s 0,3–0,5 m, uz točku interesa | visoka |
| pogonski kotači | obris stalno vidljiv, vrte se u vožnji | visoka za opseg, niska za bočne plohe |
| upravljačka pločica, prekidač | izbliza, ali uglavnom ravne plohe | srednja, detalji u teksturi |
| šasija, poklopac | najveći dijelovi, pretežno ravne plohe | niska nakon planarne decimacije |
| kuglični oslonac, IR modul linije | ispod robota, rijetko u vidnom polju | najniža |
Za robota MR-1 ukupno smanjenje je s 312 000 na 28 000 trokuta, odnosno na 9 % izvornog broja ili 11,1 puta manje. Najveći dio uštede u pravilu dolazi s ravnih ploha i zaobljenja malih polumjera. Detalji koji su nestali iz geometrije, primjerice utisnute oznake na poklopcu, mogu se vratiti pečenjem u mapu normala, o čemu govori jedinica 1.5.
Kod mreža nastalih skeniranjem ili fotogrametrijom (jedinica 1.4) decimacija često nije dovoljna, jer takve mreže imaju milijune trokuta nepravilnog rasporeda. Tada se radi retopologija (engl. retopology): preko izvornog oblika izrađuje se nova, lagana i uredna mreža, a detalji izvornika prenose se pečenjem u teksture.
Zapamtite
Nakon decimacije model se uvijek pregledava u naočalama s udaljenosti s koje ga korisnik stvarno gleda. Ono što na monitoru izgleda grubo s 10 cm udaljenosti često je s 0,6 m sasvim dobro, i obrnuto: pogreška obrisa koja se na monitoru ne primijeti u stereo prikazu upada u oči.
Ishodište i primjena transformacija
Svaki objekt ima dva sloja podataka: podatke mreže (položaje vrhova) i transformaciju objekta (položaj, rotaciju i mjerilo). Model može izgledati ispravno, a da je robot zapravo mreža u milimetrima kojoj je mjerilo objekta postavljeno na 0,001. Razvojna okruženja i fizikalni sustavi takve kombinacije ne tumače uvijek jednako, pa prije izvoza primijenite transformacije: mjerilo 1, rotacija 0, a stvarne dimenzije ostaju zapisane u samoj mreži.
Program za obradu mreže nudi naredbe za postavljanje ishodišta u središte geometrije, u težište ili u zadanu točku. Za dijelove robota vrijede pravila iz jedinice 1.1: sklop na podlozi u osi kotača, kotač u osi vrtnje, dijelovi koji se hvataju u težištu ili sredini hvatišta. Dijelovi koji se u sklopu ugrađuju na zadano mjesto mogu imati ishodište i u točki ugradnje, jer tada logika „uskakanja“ na mjesto uspoređuje samo dva položaja.
Pažnja
Negativno mjerilo po jednoj osi (zrcaljenje) okreće normale. Ako lijevi kotač nastane zrcaljenjem desnog, nakon primjene transformacije ponovno preračunajte normale.
Izvoz u razvojno okruženje
Gotova mreža izvozi se u formatu glTF ili FBX. Postavke izvoznika mijenjaju se po inačici, ali provjeravate uvijek isto:
- Odabir: izvoze se samo objekti za scenu, bez pomoćnih objekata, visokodetaljnih izvornika i mjerne kocke.
- Osi: izvoznik za glTF sam pretvara uspravnu os u Y; za FBX provjerite kako ih zapisuje i kako ih čita uvoznik.
- Modifikatori: primjenjuju se pri izvozu, jer ih razvojno okruženje ne poznaje.
- Nazivi i hijerarhija: dvanaest dijelova ispod korijena
MR1_sklop, nazivi prema dogovoru projekta. - Materijali: jedan materijal po dijelu, s nazivom koji se u razvojnom okruženju lako prepozna.
- Kontrola: izvezenu datoteku ponovno uvezite u prazan projekt i provjerite dimenzije, broj trokuta i ishodišta.
Budući da se ovaj niz ponavlja nakon svake izmjene konstrukcije, u timu od tri osobe koji radi šest tjedana isplati se korake od čišćenja do izvoza zapisati kao skriptu u programu za obradu mreže. Ručni rad ostaje za odluke (koliko trokuta kojem dijelu), a skripta preuzima ponavljanje.
Decimacija i memorija mreže
Za zatvorenu mrežu bez rupa vrijedi topološka relacija V − E + F = 2 (vrhovi, bridovi, plohe), a budući da svaki trokut ima tri brida koja dijeli sa susjedima, broj vrhova približno je polovina broja trokuta: V ≈ T / 2. Na šavovima UV mape i oštrim bridovima vrh se zapisuje više puta, pa se procjena uvećava za udio razdvojenih vrhova s. Svaki vrh nosi položaj (12 B), normalu (12 B) i UV koordinatu (8 B), dakle najmanje 32 B; s tangentom i drugom UV mapom 56 B. Indeksi trokuta zauzimaju 3 × 2 B ako je vrhova manje od 65 536, inače 3 × 4 B.
T1 = T0 · u V ≈ T1 / 2 · (1 + s) M ≈ V · b + 3 · T1 · i
Iz izvornog broja trokuta i ciljnog udjela računa broj trokuta nakon decimacije, procjenu broja vrhova i memoriju mreže (vrhovi i indeksi) prije i nakon.
Za robota MR-1 s 312 000 trokuta i ciljnim udjelom od 9 % dobiva se oko 28 000 trokuta, odnosno smanjenje od oko 11 puta. Uz 30 % razdvojenih vrhova procjena je oko 18 200 vrhova i oko 0,72 MB za mrežu s osnovnim zapisom vrha (32 B). Prije decimacije ista bi mreža imala oko 202 800 vrhova i trebala 4-bajtne indekse, ukupno gotovo 9,8 MB. Datoteka glTF robota od 3,2 MB veća je od same mreže jer nosi i teksture i materijale dvanaest dijelova. Memorija nije jedini razlog decimacije: broj trokuta po okviru, koji se iscrtava za oba oka, važniji je za vrijeme okvira od 11,1 ms.
Ključni pojmovi
| Pojam | Značenje |
|---|---|
| topologija (engl. topology) | raspored i povezanost vrhova, bridova i ploha u mreži |
| mnogostrukost (engl. manifold) | svojstvo mreže u kojoj svaki brid dijele najviše dvije plohe; uvjet za pouzdanu obradu |
| uski trokut (engl. sliver triangle) | izduženi trokut vrlo male širine; kvari sjenčanje i troši rad grafičkog procesora |
| decimacija (engl. decimation) | smanjenje broja trokuta uz što manju promjenu oblika |
| sažimanje bridova (engl. edge collapse) | postupak decimacije u kojem se brid sažima u jednu točku |
| retopologija (engl. retopology) | ručna ili poluautomatska izrada nove, uredne mreže preko postojećeg oblika |
| ishodište (engl. pivot, origin) | točka objekta oko koje se okreće, postavlja i drži |
| primjena transformacija (engl. apply transforms) | prijenos položaja, rotacije i mjerila objekta u podatke mreže, tako da mjerilo bude 1 |
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 su uski, izduženi trokuti iz CAD teselacije nepovoljni za prikaz u stvarnom vremenu?
Trokut širok oko jednog piksela sjenča se kao da je širi, a na rubovima nastaju nepravilnosti sjenčanja.
Pitanje 2 od 4
Koji je postupak decimacije najprikladniji za ravne plohe šasije robota MR-1?
Planarna decimacija spaja susjedne plohe u istoj ravnini, pa ravna ploha dolazi na minimalan broj trokuta bez promjene izgleda.
Pitanje 3 od 4
Robot je izvezen kao mreža u milimetrima s mjerilom objekta 0,001. Što treba učiniti prije izvoza?
Razvojna okruženja i fizikalni sustavi ne tumače uvijek jednako mjerilo objekta; primjenom transformacija mjerilo postaje 1.
Pitanje 4 od 4
Model ima 28 000 trokuta i 30 % razdvojenih vrhova. Koliko vrhova otprilike ima?
V ≈ T/2 · (1 + s) = 14 000 · 1,3 = 18 200.
Odgovoreno 0 od 4.
Vježbe uz jedinicu
Gradivo ove jedinice priprema za sljedeće vježbe: