Preskoči na sadržaj
FORTRONIQ
IzbornikDigitalni sadržajiVirtualna stvarnostVježbeV3 Materijali PBR, UV mapiranje i teksture

VJEŽBA V3 · MODUL 1 · MODELIRANJE DIGITALNIH OBJEKATA ZA VIRTUALNU STVARNOST

Vježba V3 · 2 sata

Materijali PBR, UV mapiranje i teksture

Dijelovi mobilnog robota MR-1 dobivaju UV mape, zapečene normale i materijale PBR s teksturama od 1024 piksela. Proračunom se provjeravaju gustoća teksela i memorija tekstura, pa se odlučuje kada je dovoljan jedan atlas.

Moći ću:
  • razmotati mrežu u UV mapu sa šavovima na skrivenim rubovima i ujednačenom gustoćom teksela
  • zapeći normale i okluziju s fine mreže na mrežu LOD0
  • izraditi materijal metalnost/hrapavost s osnovnom bojom, normalom i složenom ORM teksturom
  • izračunati memoriju tekstura s mip-razinama i bez kompresije te potrebnu gustoću teksela

O vježbi

Vježba V3Trajanje: 2 sataModul 1

Prije vježbe proći gradivo: 1.5 Materijali, teksture i UV mapiranje.

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 (LOD0, 28 000 trokuta, 12 dijelova) treba dobiti materijale koji izgledaju uvjerljivo na 0,3 m od oka, jer korisnik dijelove drži u ruci. Svaki dio ima jedan materijal, a teksturirani materijal ima tri teksture: osnovna boja, normala i ORM (okluzija, hrapavost, metalnost složene u kanale R, G, B). Jednaki dijelovi (dva kotača, dva motora) dijele materijal, a dio jednolične površine, npr. kuglični oslonac, može imati samo stalne faktore bez teksture (jedinica 1.5). Izvorne teksture od 2048 px smanjuju se na 1024 px, a cijeli robot u glTF-u treba stati u oko 3,2 MB.

Materijali: šasija eloksirani aluminij, poklopac mat plastika, kotači guma, motori metalno kućište, pločica zeleni lak s natpisima, baterija plastika s naljepnicom. Treba odrediti i vrijednosti metalnosti i hrapavosti.

Oprema i pribor

  • računalo s programom za slobodno modeliranje (npr. Blender), mreža LOD0 iz V02 i fina mreža iz V01
  • testna tekstura šahovnice 1024 × 1024 px
  • razvojno okruženje s VR predloškom i VR naočale (ili prozor s kamerom)
  • zapisnik: dio, broj UV otoka, gustoća teksela, vrijednosti materijala

Pravila koja se primjenjuju

PBR, metalnost/hrapavost. Materijal opisuju fizikalne veličine, pa izgleda ispravno pod svakim svjetlom. Metalnost je za većinu površina 0 ili 1; hrapavost nosi razliku između sjajnog i mat. Format glTF koristi upravo taj model: hrapavost čita iz kanala G, metalnost iz kanala B, a okluziju iz kanala R, pa se sve tri mogu složiti u jednu ORM teksturu.

Gustoća teksela. Svi dijelovi koji se gledaju izbliza trebaju približno istu gustoću (pikseli teksture po metru), da jedan dio ne izgleda mutno uz oštar susjedni.

Razmak otoka. Između UV otoka ostavlja se razmak (dobra praksa: oko 8 px pri 1024 px), jer ga mip-razine smanjuju.

Pažnja

Karta normala ovisi o konvenciji smjera zelenog kanala, a okruženja se u tome razlikuju. Ako izbočine izgledaju udubljeno, obrnite zeleni kanal pri uvozu. Karte normala i ORM uvoze se kao linearni podaci, ne kao boja.

Crtež

šasija, šavovi naglašeni gornja donja bok čelo leđa 0 1 UV mapa, razmak među otocima
Slika V3.1 — Šasija razrezana po naglašenim šavovima i složena u UV kvadrat 0–1. Otoci se ne dodiruju; razmak štiti od prelijevanja boje na mip-razinama. Drugi bok dijeli otok s prvim samo ako mu tekstura smije biti jednaka.

Postupak

  1. Otvorite LOD0 i finu mrežu u istoj datoteci; moraju se točno preklapati.
  2. Za svaki dio označite šavove na rubovima koje korisnik rijetko vidi: dno šasije, unutarnja strana kotača, spoj poklopca i šasije.
  3. Razmotajte mrežu i stavite testnu šahovnicu. Kvadrati moraju biti jednaki i neiskrivljeni; ujednačite mjerilo otoka svih dijelova.
  4. Složite otoke u kvadrat 0–1 s razmakom oko 8 px pri 1024 px, bez preklapanja.
  5. Zapecite normale i okluziju s fine mreže na LOD0 (1024 px). Udaljenost zrake ili kavez postavite tako da nema rupa ni ponovljenih rubova.
  6. Izradite materijale. Polazne vrijednosti (preporuka, uskladite prema izgledu): aluminij metalnost 1, hrapavost 0,35; plastika 0 i 0,6; guma 0 i 0,9; lak pločice 0 i 0,3.
  7. Složite okluziju, hrapavost i metalnost u kanale R, G, B jedne teksture, izvezite teksture 1024 px i glTF i zapišite veličinu datoteke.
  8. U razvojnom okruženju uvezite model, uključite mip-razine i kompresiju tekstura, a normale i ORM označite kao linearne. Pregledajte dio u ruci na 0,3 m.

Inačica bez naočala: pregled u prozoru s kamerom na 0,3 m od dijela, pod dva različita svjetla.

Pitanja i zadaci

1. Računski. Koliko memorije zauzima tekstura 1024 × 1024 px RGBA (4 bajta po pikselu) bez kompresije, bez mip-razina i s njima? Koliko 2048 × 2048 px?

Prikaži rješenje

1024 · 1024 · 4 B = 4 194 304 B = 4 MB (binarnih, MiB). Mip-razine dodaju trećinu: 4 · 4/3 = 5,3 MB. Za 2048 px: 16 MB, s mip-razinama 21,3 MB, četiri puta više.

2. Računski. Pretpostavite najgori slučaj: svih 12 materijala ima po tri vlastite teksture. Kolika je memorija svih tekstura s mip-razinama pri 2048 px i pri 1024 px? Koliko je pri 1024 px uz blok-kompresiju od 1 bajta po pikselu?

Prikaži rješenje

36 tekstura. Pri 2048 px: 36 · 21,3 = 768 MB. Pri 1024 px: 36 · 5,33 = 192 MB. Uz 1 B po pikselu: 192 / 4 = 48 MB. Procjena: za jedan predmet na samostalnim naočalama s dijeljenom memorijom i 192 MB je previše, pa je kompresija obavezna. U stvarnom modelu kotači i motori dijele materijal, a oslonac nema teksturu, pa je tekstura i memorije manje.

3. Računski. Tekstura od 1024 px pokriva duljinu šasije 0,22 m. Kolika je gustoća teksela i je li dovoljna za uređaj A (oko 21 piksel po stupnju) na 0,3 m?

Prikaži rješenje

1024 / 0,22 = 4 655 px/m. Na 0,3 m jedan stupanj pokriva 300 · tg 1° = 5,24 mm, a u njemu je 4,655 · 5,24 ≈ 24 teksela, više od 21 piksela zaslona. Potrebno je najmanje 21 / 5,24 = 4,0 teksela po mm, tj. 4 010 px/m, pa je 1024 px dovoljno; 2048 px ne bi se vidjelo.

4. Računski. Razmak otoka je 8 px pri 1024 px. Koliki je na mip-razinama 512, 256, 128 i 64 px i od koje razine počinje prelijevanje?

Prikaži rješenje

Razmak se prepolovljuje: 4, 2, 1 i 0,5 px. Na 128 px ostaje jedan piksel, a na 64 px susjedni otoci se miješaju. To se vidi tek na velikim udaljenostima, gdje ionako vrijede LOD1 i LOD2.

5. Gdje stavljate šav na kotaču i zašto?

Prikaži rješenje

Plašt se reže jednim šavom poprijeko, a bočne plohe su zasebni otoci. Šav plašta ide na unutarnju stranu uz osovinu ili na mjesto gdje ga reljef gaznoga sloja skriva.

6. Zašto se normale zapekuju s fine mreže, a ne modeliraju na LOD0?

Prikaži rješenje

Zaobljenja rubova, utori i natpisi fine mreže (312 000 trokuta) prenose se u teksturu, pa ih LOD0 s 28 000 trokuta prikazuje osvjetljenjem, bez dodatnih trokuta.

7. Treba li robotu druga UV mapa za zapečeno svjetlo? A stolu?

Prikaži rješenje

Robotu ne: dijelovi se pomiču, a zapečeno svjetlo vrijedi samo za nepomične predmete. Stol i prostorija su nepomični, pa dobivaju drugu UV mapu bez preklapanja otoka.

8. Računski. Deset izložbenih robota iz V02 spaja se u objekte s jednim atlasom 2048 px (tri teksture). Kolika je memorija atlasa i što se dobiva?

Prikaži rješenje

3 · 21,3 = 64 MB bez kompresije, 16 MB uz 1 B po pikselu, i to jednom za svih deset, jer dijele isti atlas. Dobiva se jedan poziv za crtanje po robotu umjesto 12.

Za nastavnika

Otvori upute za nastavnika

Priprema

Pripremite LOD0 i finu mrežu MR-1 poravnate u istoj datoteci, testnu šahovnicu i za usporedbu jedan gotov materijal s ispravnim ORM kanalima.

Tijek sata

  1. 10 min: PBR, ORM, gustoća teksela, slika V3.1.
  2. 25 min: šavovi i razmotavanje, šahovnica.
  3. 15 min: slaganje otoka i zapečenje.
  4. 20 min: materijali i izvoz.
  5. 10 min: uvoz i pregled izbliza.
  6. 10 min: računska pitanja.

Očekivani rezultati

UV mape bez preklapanja i rastezanja, zapečene normale bez rupa, materijal za svaki od 12 dijelova (teksturirani s tri teksture od 1024 px), glTF blizu 3,2 MB i zapisnik s gustoćom teksela.

Česte pogreške

  • karta normala uvezena kao boja ili s obrnutim zelenim kanalom
  • šavovi na vidljivim bridovima poklopca
  • metalnost 0,5 za „polumetal“
  • otoci bez razmaka

Vrednovanje

KriterijBodovi
UV mape: šavovi, gustoća, razmak5
zapečene normale i okluzija4
materijali PBR i ORM kanali4
izvoz, veličina datoteke, uvoz2
računska i opisna pitanja5
Ukupno20