MODUL 3 · RAZVOJ HOLOGRAMSKOG OKRUŽENJA
Nastavna jedinica 3.1
Izrada softverskih segmenata hologramske tehnologije
Programski dio hologramskog okruženja ne nastaje pisanjem koda nego slaganjem scene za uređaj koji se nosi na glavi. Postavlja se projekt s postavkama prozirnog prikaza, uvoze se model i materijali te se objekti slože u stablo u kojem su glava i sidro dva posebna čvora. Tek na to dolaze skripte koje sceni daju ponašanje.
- objasniti ulogu pojedinih poslova softverskog segmenta hologramskog okruženja
- postaviti projekt s mjernim jedinicama, brzinom osvježavanja i stereoskopskim prikazom
- uvesti model ćelije i pripremiti materijale za prozirni zaslon
- složiti scenu s glavom kao kamerom, sidrom kao ishodištem i svjetlom scene
- objasniti redoslijed iscrtavanja i ponašanje prozirnih ploha
- procijeniti opterećenje prikaza prema broju trokuta i načinu iscrtavanja
Pet poslova softverskog segmenta
Programski dio hologramskog okruženja naziva se softverskim segmentom. To nije jedan program nego pet poslova koji rade istodobno: razumijevanje prostora, prikaz sadržaja, logika zadatka, prostorno sučelje i veza s podacima. Korisnik ih ne razlikuje. Ako bilo koji od njih zakaže, on to vidi kao istu pogrešku — hologram nije ondje gdje bi trebao biti ili ga uopće nema.
Posao počinje zahtjevom, ne programom. Za projekt HT-1 zahtjev glasi: na praznom podu radionice 12 × 8 m treba u mjerilu 1:1 prikazati robotsku ćeliju koja se tek treba montirati, tako da tehnolog naočalama može obići prikaz, provjeriti dosege robota, položaj sigurnosne ograde i put operatera između strojeva. Iz te jedne rečenice slijedi gotovo sve ostalo: potreban je model ćelije, potrebno je mapiranje poda, potrebno je sidro na kojem ćelija stoji i potrebno je sučelje kojim se prikaz uključuje, pomiče i gasi.
Prije otvaranja projekta korisno je napisati popis onoga što scena mora sadržavati. Za HT-1 popis ima šest stavki: model ćelije, sidro na podu, oznake dosega robota, ploha sigurnosne ograde, izbornik s naredbama i natpis s podacima o ćeliji. Popis je kratak, ali svaka stavka poslije postaje čvor u stablu scene, pa se time dobiva i prva gruba građa projekta.
| Posao softverskog segmenta | Što obavlja | Na projektu HT-1 |
|---|---|---|
| Razumijevanje prostora | gradi mrežu prostorije i drži uređaj na mjestu | mreža poda radionice i sidro ćelije |
| Prikaz sadržaja | iscrtava model, natpise i oznake na prozirnom zaslonu | ćelija od 90 000 trokuta u mjerilu 1:1 |
| Logika zadatka | vodi stanja i redoslijed radnji | uključi prikaz, pomakni ćeliju, izmjeri doseg, spremi |
| Prostorno sučelje | prima naredbe i daje povratnu obavijest | izbornik u prostoru, glasovne naredbe, poruke o praćenju |
| Veza s podacima | dohvaća i šalje podatke izvan aplikacije | oznaka radionice i zapis o pregledanom rasporedu |
Pet nabrojenih poslova ne isporučuje se kao pet programa. Riječ je o jednoj aplikaciji koja ih obavlja jedan uz drugi, a u razvojnom se okruženju vide kao skupine objekata u sceni i skripte koje su im pridružene. Iz toga slijedi i redoslijed izrade. Počinje se od onoga što određuje sve ostalo — od prostora i prikaza — zatim dolazi logika, pa prostorno sučelje, a veza s podacima ostaje za kraj. Krene li se od sučelja, ono gotovo uvijek završi na krivom mjestu i u krivoj veličini, jer se u tom trenutku još ne zna kako se hologram u prostoru doista ponaša.
Razvoj za naočale razlikuje se od razvoja za ručne uređaje po jednoj važnoj stvari. Kod ručnog uređaja korisnik drži prozor kroz koji gleda i može ga spustiti. Kod naočala prozor je stalno pred očima, pa sve što je u sceni ostaje u vidnom polju. Zbog toga se u hologramskom okruženju puno više pazi na to koliko se sadržaja istodobno prikazuje i koliko dugo. Razvoj za telefon i tablet obrađuje se u susjednom području: Proširena stvarnost, jedinica 3.1.
Postavljanje projekta za naočale
Novi projekt ne kreće od modela nego od postavki. Prva je mjerna jedinica scene. Razvojna okruženja gotovo redom mjere prostor u metrima, pa broj 1 u sceni na podu radionice znači jedan metar. Model ćelije koji iz konstrukcije dolazi u milimetrima zato pri uvozu treba podijeliti s tisuću. Izostane li to dijeljenje, hologram naraste tisuću puta i korisnik se zatekne unutar jednog jedinog nosača.
Druga je ciljna platforma. Naočale za miješanu stvarnost imaju vlastiti procesor i vlastitu arhitekturu, pa se projekt gradi za tu arhitekturu, a ne za stolno računalo. Treća je način prikaza: prikaz je stereoskopski, dakle svaka se sličica iscrtava dvaput, jednom za lijevo i jednom za desno oko. Uređaj iz primjera radi na 60 Hz i ima 1440 × 936 točaka po oku, što znači da se u jednoj sekundi mora izračunati 120 slika.
Četvrta je jednoprolazno iscrtavanje (single-pass rendering). Umjesto da se cijela scena obradi dvaput, obradi se jednom, a razlika između očiju rješava se pri samom iscrtavanju. Ušteda je znatna i na jednostavnim scenama iznosi trećinu do polovice vremena. Peta je brisanje pozadine. Na prozirnom zaslonu pozadina mora ostati crna, jer crna na tom zaslonu znači da se ništa ne emitira, pa kroz nju korisnik vidi stvarnu prostoriju.
Ciljna arhitektura: ARM64
Jedinica scene: 1 jedinica = 1 m
Brzina osvjezavanja: 60 Hz, stereoskopski
Iscrtavanje: jednoprolazno
Boja pozadine kamere: crna, bez ispune
Dubinski zapis: ukljucen
Prostorno razumijevanje: ukljuceno
Uz postavke ide i popis mogućnosti koje aplikacija traži od uređaja. Za HT-1 to su prostorno razumijevanje, praćenje ruku i mikrofon. Svaka od njih poslije postaje dopuštenje u paketu aplikacije, o čemu se govori u jedinici 3.5. Dobro je tražiti samo ono što se stvarno koristi, jer svako dodatno dopuštenje troši i procesor i bateriju.
Na kraju se postavlja udaljenost ravnine izoštravanja. Naočale prikazuju sliku na jednoj optičkoj udaljenosti, obično oko 2 m. Sadržaj koji je bitno bliže ili bitno dalje od te udaljenosti oko doživljava kao neoštar ili naporan, pa se glavni dio scene planira u pojasu od 1 do 5 m. Za ćeliju u mjerilu 1:1 to je prirodno: tehnolog stoji nekoliko metara od nje.
Uvoz modela i materijali za prozirni zaslon
Model ćelije dolazi iz prvog modula. Za HT-1 to je datoteka u formatu glTF sa sažimanjem geometrije, veličine 3,6 MB, s 90 000 trokuta i teksturama razlučivosti 1024 slikovne točke. Pri uvozu se provjeravaju tri stvari: mjerilo, ishodište i smjer osi. Ishodište modela mora biti u točki koja se u stvarnosti može pokazati prstom, jer će se upravo ta točka poklopiti sa sidrom na podu. Kod ćelije je to prednji lijevi ugao postolja.
Materijali se za prozirni zaslon pripremaju drukčije nego za zaslon računala. Na prozirnom zaslonu uređaj svjetlo dodaje slici prostorije i ništa ne može oduzeti. Iz toga slijede tri pravila koja početnici često previde.
| Pravilo | Zašto vrijedi | Postupak na HT-1 |
|---|---|---|
| Crna je prozirna | uređaj crnu ne emitira, pa se kroz nju vidi prostorija | pozadina i sjene izvedene su crnom, bez ispune |
| Svijetle plohe se vide najbolje | svjetlije boje nadjačaju osvjetljenje radionice | obrisi ćelije crtaju se svijetlim linijama |
| Velike pune plohe zaklanjaju | pun zid holograma sakrije stvarni prostor iza sebe | ograda je prikazana mrežom, a ne punom plohom |
Emisijski materijal (emissive material) je materijal koji sam svijetli i ne ovisi o izvorima svjetla u sceni. Na naočalama je on najpouzdaniji izbor za obrise, oznake i natpise, jer izgleda jednako bez obzira na to kako je scena osvijetljena. Nedostatak je što takav materijal nema sjenčanja, pa oblik izgleda plošno. Zato se u praksi kombinira: tijelo robota dobiva uobičajeni materijal s odsjajem, a rubovi, oznake dosega i natpisi emisijski.
Prozirnost se koristi štedljivo. Svaka prozirna ploha traži da se sve iza nje ponovno izračuna, pa deset prozirnih ploha jedna iza druge zna prepoloviti broj sličica. Na HT-1 prozirne su samo dvije stvari: ploha sigurnosne ograde i valjak koji pokazuje doseg robota. Ostatak je neproziran ili iscrtan linijama.
Teksture od 1024 slikovne točke dovoljne su za ćeliju koja se gleda s 2 do 5 m. Veće teksture na toj udaljenosti korisnik ne razlikuje, a memoriju troše četverostruko po udvostručenju stranice. Natpisi se zato ne rade kao tekstura nego kao pravi tekst, koji uređaj iscrtava oštro na svakoj udaljenosti.
Građa scene i redoslijed slaganja
Scena je uređeno stablo, a iz njegove hijerarhije slijedi svojstvo koje je u hologramskom okruženju glavni alat: pomakne li se neki čvor, s njim se pomakne i sve što ispod njega visi. Ako sav sadržaj koji mora stajati na podu visi ispod jednog čvora sidra, onda se ispravkom položaja sidra istodobno ispravlja položaj cijele ćelije. Kad bi svaki objekt bio sam za sebe, ispravak bi trebalo napraviti devedeset puta.
U stablu scene za naočale dva čvora imaju poseban status. Prvi je glava: kamera čiji položaj i zakret ne postavlja program nego uređaj, iz vlastitog praćenja. Program taj čvor smije čitati, ali ga ne smije pomicati. Drugi je sidro: čvor čiji položaj održava sustav za prostorno razumijevanje i povremeno ga sitno ispravlja kad se mreža prostorije dopuni.
Redoslijed slaganja prati stablo. Najprije se postavi prazno sidro i provjeri drži li se na mjestu dok se hoda po radionici. Zatim se ispod njega objesi model ćelije i provjeri mjerilo — najlakše tako da se uz hologram stavi predmet poznate duljine, primjerice metar dug profil. Tek kad mjerilo stoji, dodaju se oznake dosega, ploha ograde i natpisi. Sučelje ide posljednje.
Uz svaki čvor idu sastavnice (components): dodatci od kojih svaki objektu donosi po jednu sposobnost. Prikaz mreže iscrtava geometriju, sudarač određuje na što zraka pogleda može pogoditi, skripta daje ponašanje. Objekt bez sudarača ne može se odabrati pogledom, pa se na to mora misliti odmah: hologram koji se ne da odabrati za korisnika je slika, a ne sadržaj.
Dobra je navika sve mjere ćelije držati na jednom mjestu, u jednoj skripti s postavkama. Doseg robota, širina prolaza i visina ograde tada se mijenjaju na jednom mjestu, a scena ih preuzima. Kad tehnolog na licu mjesta zatraži da se prolaz proširi s 800 na 1000 mm, izmjena je jedan broj, a ne pomicanje deset objekata.
Opterećenje prikaza i brzina
Naočale su malo računalo s baterijom, pa je proračun opterećenja dio projektiranja, a ne naknadna briga. Tri stvari troše najviše: broj trokuta, broj zasebnih objekata koji se iscrtavaju i broj prozirnih ploha. Uređaj iz primjera ima 4 GB radne memorije, a cilj projekta je najviše 900 MB za samu aplikaciju i najmanje 60 sličica u sekundi.
Broj trokuta nije jedina mjera. Scena od 90 000 trokuta u jednom objektu iscrtava se brže od scene od 90 000 trokuta razbijene u tristo objekata, jer svaki objekt znači jedan poziv prema grafičkom dijelu procesora. Zato se pri pripremi modela sitni dijelovi koji dijele isti materijal spajaju u jedan objekt.
Prikaz procjenjuje kako broj trokuta, broj istodobno prikazanih holograma i način iscrtavanja utječu na brzinu prikaza i zauzeće memorije. Ciljevi projekta HT-1 su najmanje 60 sličica u sekundi i najviše 900 MB radne memorije.
Prikaz pokazuje i granicu jednoprolaznog iscrtavanja. Prijelaz na dvoprolazni način gotovo udvostručuje trošak geometrije, pa scena koja je na jednom prolazu imala zalihu naglo padne ispod cilja. To je jedan od razloga zašto se na naočalama ne posuđuju postavke s projekta za stolno računalo.
Zapamtite
Brzina prikaza mjeri se na uređaju, ne u simulatoru na računalu. Simulator na jakom računalu uvijek pokaže šezdeset sličica u sekundi, pa daje lažnu sigurnost. Prva mjerenja na naočalama obično pokažu tridesetak posto lošiji rezultat od procjene.
Prva provjera i česte pogreške
Kad je scena složena, radi se prva provjera na uređaju. Ona ne traje dugo i ima pet koraka: pokreni aplikaciju, pričekaj da se prostorija mapira, postavi sidro, provjeri mjerilo poznatim predmetom i prohodaj krug oko holograma. Ako hologram nakon punog kruga stoji ondje gdje je bio, temelj je ispravan i može se nastaviti.
Pogreške u ovoj fazi ponavljaju se iz projekta u projekt i vrijedi ih znati unaprijed.
| Pogreška | Kako se očituje | Ispravak |
|---|---|---|
| Krivo mjerilo pri uvozu | ćelija je tisuću puta prevelika ili sitna kao dlan | podijeliti mjere s tisuću ili postaviti mjerilo pri uvozu |
| Ishodište modela u zraku | hologram lebdi iznad poda ili je ukopan | premjestiti ishodište na donji ugao postolja |
| Pozadina kamere nije crna | cijelo vidno polje je zatamnjeno | postaviti crnu boju pozadine bez ispune |
| Previše prozirnih ploha | prikaz je tečan dok se ne priđe ogradi, pa zapne | ogradu prikazati mrežom linija |
| Sadržaj nije ispod sidra | dijelovi ćelije odlutaju svaki na svoju stranu | objesiti sve statične objekte ispod čvora sidra |
Posljednja pogreška zaslužuje posebnu pažnju. Objekt koji je ostao izvan sidra u početku se ponaša pristojno, jer se sidro još nije pomaknulo. Nakon petnaestak minuta rada, kad sustav dopuni mrežu prostorije i sitno ispravi položaj sidra, taj objekt ostane na starom mjestu. Tehnolog tada vidi ćeliju kojoj je ograda odmaknuta desetak centimetara, a uzrok je u građi stabla, ne u mjerenju.
Na kraju se zapisuje kratka bilješka o stanju: koje su postavke projekta, koja je inačica modela, koliko je trokuta u sceni i koliko je sličica izmjereno. Ta bilješka kroz cijeli projekt raste i na kraju postaje dio dokumentacije koja se predaje uz okruženje.
Ključni pojmovi
| Pojam | Značenje |
|---|---|
| Softverski segment | Programski dio okruženja: prostor, prikaz, logika, sučelje i podaci. |
| Jednoprolazno iscrtavanje | Obrada scene jednom za oba oka umjesto dvaput. |
| Emisijski materijal | Materijal koji sam svijetli i ne ovisi o svjetlu u sceni. |
| Ishodište modela | Točka modela koja se poklapa s mjestom sidra u prostoriji. |
| Sastavnica | Dodatak koji se objektu pridružuje da bi znao nešto raditi ili bio nešto vidljivo. |
| Ravnina izoštravanja | Optička udaljenost na kojoj naočale prikazuju sliku. |
| Poziv iscrtavanja | Jedan nalog grafičkom dijelu procesora; više objekata znači više poziva. |
Provjeri se
Kratka provjera prije prelaska na sljedeću jedinicu. Odgovor se potvrđuje klikom, a obrazloženje se prikazuje odmah.
Pitanje 1 od 6
Koliko stvarnog prostora odgovara jednoj jedinici scene?
Jedinica scene jednaka je metru, pa se model izvezen u milimetrima pri uvozu dijeli s tisuću.
Pitanje 2 od 6
Što na prozirnom zaslonu znači crna boja?
Prozirni zaslon svjetlo samo dodaje. Ono što je crno ne emitira se, pa ostaje vidljiva prostorija.
Pitanje 3 od 6
Zašto sav statični sadržaj visi ispod čvora sidra?
Roditelj u stablu nosi djecu, pa ispravak položaja sidra ispravlja položaj cijele ćelije.
Pitanje 4 od 6
Što donosi jednoprolazno iscrtavanje?
Scena se obradi jednom, a razlika između očiju rješava se pri iscrtavanju, čime se štedi vrijeme.
Pitanje 5 od 6
Zašto se natpisi ne izrađuju kao tekstura?
Pravi tekst uređaj iscrtava u trenutku prikaza, pa je oštar i s dva i s pet metara.
Pitanje 6 od 6
Koji je uobičajeni redoslijed slaganja scene?
Najprije se provjeri drži li se sidro, zatim mjerilo modela, a sučelje se dodaje na kraju.
Odgovoreno 0 od 6.