VJEŽBA V2 · MODUL 1 · MODELIRANJE DIGITALNIH OBJEKATA ZA VIRTUALNU STVARNOST
Vježba V2 · 2 sata
Optimizacija mreže i razine detalja
Mreža mobilnog robota MR-1 smanjuje se s 312 000 na 28 000 trokuta, a zatim se izrađuju još dvije razine detalja za veće udaljenosti. Proračunom se provjerava drži li scena laboratorija VR-1 budžet trokuta i poziva za crtanje na samostalnim naočalama.
- raspodijeliti budžet trokuta po dijelovima prema vidljivosti
- smanjiti mrežu decimacijom uz očuvanje obrisa, rubova i UV šavova
- izraditi razine detalja LOD0, LOD1 i LOD2 i jednostavne kolizijske oblike
- izračunati zbroj trokuta i poziva za crtanje scene i usporediti ga s budžetom uređaja
- procijeniti veličinu predmeta na zaslonu u pikselima za zadane udaljenosti
O vježbi
Prije vježbe proći gradivo: 1.3 Slobodno modeliranje i obrada mreže, 1.7 Priprema i optimizacija modela za virtualnu stvarnost.
Pitanja i zadaci na ovoj stranici su bez odgovora. Rješenje s postupkom otvara se gumbom Prikaži rješenje ispod svakog pitanja, a upute za nastavnika nalaze se na dnu stranice.
Zadatak
Model MR-1 iz vježbe V01 ima 312 000 trokuta u 12 dijelova. Za laboratorij VR-1 treba izraditi tri razine detalja (engl. level of detail, LOD): LOD0 28 000 trokuta do 1,5 m, LOD1 9 000 od 1,5 m i LOD2 2 500 od 4 m.
U sceni je jedan robot na stolu za sklapanje, četiri izložbena na polici 2,5 m od korisnika i šest u vitrini na zidu 5 m daleko. Okoliš (prostorija, stol, police) ima 190 000 trokuta i 60 poziva za crtanje. Budžet uređaja B (samostalne naočale) je ≤ 300 000 trokuta i ≤ 150 poziva za crtanje. Treba dokazati da ga scena drži.
Oprema i pribor
- računalo s programom za slobodno modeliranje (npr. Blender) i modelom MR-1 iz V01
- razvojno okruženje za prikaz u stvarnom vremenu (npr. Unreal Engine) s VR predloškom i ispisom statistike iscrtavanja
- VR naočale ili prozor s kamerom na visini očiju 1,65 m
- zapisnik: dio, trokuta prije i poslije, LOD1, LOD2, kolizijski oblik
Pravila koja se primjenjuju
Budžet okvira. Pri 90 Hz vrijeme okvira je 11,1 ms, a scena se iscrtava dvaput, za svako oko. Broj trokuta i poziva za crtanje planira se prije modeliranja, a ne nakon pada broja slika.
Trokuti ondje gdje se gledaju. Obris i obli rubovi koje korisnik gleda izbliza dobivaju trokute; ravne plohe i skriveni dijelovi što manje. Razine detalja mijenjaju se prema udaljenosti ili veličini na zaslonu, a stvarni prag ovisi o vidnom polju uređaja.
Kolizija je zaseban oblik. Za fiziku i hvatanje koriste se jednostavni primitivi (kvadar, valjak, kugla); za pokretne dijelove nikad vidljiva mreža.
Pažnja
Decimacija bez zaštite rubova i UV šavova razara teksture i ostavlja rupe na spojevima ploha. Nakon svakog koraka pogledajte obris izbliza (0,5 m) i provjerite normale; tek onda smanjujte dalje.
Crtež
Postupak
- Uvezite model iz V01 i u statistici scene očitajte broj trokuta po dijelu.
- Raspodijelite 28 000 trokuta po dijelovima (pitanje 1) i upišite cilj u zapisnik.
- Na ravnim plohama najprije uklonite suvišne trokute planarnom decimacijom (otapanjem ploha koje leže u istoj ravnini, jedinica 1.3), pa tek onda primijenite decimaciju s omjerom za pojedini dio. Uključite zaštitu granica i UV šavova ako je vaša inačica nudi.
- Provjerite obris s 0,5 m, okrenutost normala i zaglađivanje prema kutu (oštri rubovi ostaju oštri).
- Kopirajte LOD0 i smanjite ga na 9 000 (LOD1). Za LOD2 spojite sve dijelove u jedan objekt i smanjite na 2 500: na 4 m nitko ne hvata dijelove.
- Izradite kolizijske oblike: kvadar za šasiju i poklopac, valjke za kotače i motore, kvadre za bateriju i pločicu. Imenujte ih prema pravilu koje vaše okruženje prepoznaje pri uvozu.
- Izvezite, u razvojnom okruženju postavite razine detalja i pragove (ovisno o inačici, po udaljenosti ili udjelu zaslona) i postavite robote prema slici V2.1.
- Uključite ispis statistike iscrtavanja i zapišite trokute i pozive za crtanje iz položaja korisnika pri stolu.
Inačica bez naočala: prozor s kamerom na visini 1,65 m; prijelaze razina provjerite približavanjem kamere policama.
Pitanja i zadaci
1. Predložite raspodjelu 28 000 trokuta na 12 dijelova MR-1 i obrazložite je.
Prikaži rješenje
Primjer: poklopac 5 000, šasija 4 500, kotači 2 × 3 000, senzor udaljenosti 2 500, pločica 2 000, motori 2 × 1 500, baterija 1 500, modul IR senzora 1 500, oslonac 1 000, prekidač 1 000; zbroj 28 000. Najviše dobivaju veliki obli vidljivi dijelovi i oni s točkama interesa, najmanje mali dijelovi jednostavnog oblika.
2. Računski. Koliki je udio LOD1 i LOD2 u odnosu na LOD0 i na izvornu mrežu?
Prikaži rješenje
LOD1: 9 000 / 28 000 = 32 %, a prema izvornoj 9 000 / 312 000 = 2,9 %. LOD2: 2 500 / 28 000 = 8,9 %, prema izvornoj 0,8 %.
3. Računski. Izračunajte broj trokuta scene sa slike V2.1 s razinama detalja i bez njih i usporedite s budžetom uređaja B.
Prikaži rješenje
S razinama: 190 000 + 28 000 + 4 · 9 000 + 6 · 2 500 = 269 000, što je 89,7 % od 300 000; scena prolazi. Bez razina: 190 000 + 11 · 28 000 = 498 000, dakle 166 % budžeta.
4. Računski. Svaki od 12 dijelova ima jedan materijal. Koliko je poziva za crtanje ako se svi roboti ostave rastavljeni, a koliko ako se 10 izložbenih spoji u po jedan objekt s jednim materijalom (atlasom)?
Prikaži rješenje
Rastavljeno: 60 + 11 · 12 = 192 > 150. Spojeno: 60 + 12 + 10 · 1 = 82 poziva, 55 % budžeta. Interaktivni robot ostaje rastavljen jer se dijelovi hvataju.
5. Računski. Na uređaju B je oko 18,8 piksela po stupnju. Koliko je piksela širok robot duljine 0,22 m na 0,5 m, 1,5 m i 4 m?
Prikaži rješenje
Kut: α = 2 · arctg(0,11 / d). Za 0,5 m α = 24,8°, oko 466 px; za 1,5 m 8,4°, oko 157 px; za 4 m 3,15°, oko 59 px. Na 4 m robot je visok oko 30 px i pokriva manje od 2 000 piksela, pa je 2 500 trokuta već više od trokuta po pikselu; veći se detalj ne bi vidio.
6. Računski. Na uređaju B izmjereno je prije optimizacije 72 sl/s i 214 poziva, a poslije 90 sl/s i 138 poziva. Koliko je smanjenje poziva i dobitak vremena okvira?
Prikaži rješenje
Pozivi: 1 − 138 / 214 = 35,5 % manje. Vrijeme okvira: 1000 / 72 = 13,9 ms, 1000 / 90 = 11,1 ms, dobitak 2,8 ms.
7. Što je „iskakanje“ pri promjeni razine detalja i kako se ublažava?
Prikaži rješenje
Vidljiv skok oblika kad se razina zamijeni. Ublažava se pragom na udaljenosti gdje je razlika manja od piksela, sličnim obrisom susjednih razina, malim preklopom pragova da se razina ne mijenja pri sitnom pomaku glave i, gdje okruženje nudi, postupnim pretapanjem.
8. Zašto se za koliziju kotača koristi valjak, a ne mreža kotača?
Prikaži rješenje
Primitiv se računa analitički i stabilno, a mreža od tisuće trokuta usporava fiziku i daje trzanje pri dodiru. Valjak je dovoljno točan za hvatanje i kotrljanje.
Za nastavnika
Otvori upute za nastavnika
Priprema
Pripremite rezervni model MR-1 s finom teselacijom za one koji nisu završili V01 i scenu s okolišem od oko 190 000 trokuta i 60 poziva. Provjerite gdje vaša inačica okruženja ispisuje statistiku iscrtavanja.
Tijek sata
- 10 min: budžet, razine detalja, pregled slike V2.1.
- 15 min: raspodjela trokuta (pitanje 1).
- 30 min: decimacija, normale, provjera obrisa (koraci 3–4).
- 15 min: LOD1, LOD2, kolizijski oblici.
- 10 min: uvoz, postavljanje, statistika.
- 10 min: računska pitanja i rasprava.
Očekivani rezultati
Tri razine detalja unutar ±10 % ciljnog broja, kolizijski oblici za sve dijelove i zapisnik sa statistikom scene ispod 300 000 trokuta i 150 poziva.
Česte pogreške
- decimacija cijelog robota jednim omjerom, pa kotači postanu uglati
- rupe na UV šavovima i obrnute normale
- izložbeni roboti ostavljeni rastavljeni
- vidljiva mreža korištena kao kolizija
Vrednovanje
| Kriterij | Bodovi |
|---|---|
| raspodjela trokuta i LOD0 bez oštećenja obrisa | 5 |
| LOD1, LOD2 i pragovi prijelaza | 4 |
| kolizijski oblici | 3 |
| statistika scene unutar budžeta B | 3 |
| računska i opisna pitanja | 5 |
| Ukupno | 20 |