MODUL 2 · TEORIJSKE OSNOVE HOLOGRAMSKE TEHNOLOGIJE
Nastavna jedinica 2.7
Vrste softverskih rješenja
Između modela robotske ćelije i slike koja stoji na podu radionice nalazi se nekoliko slojeva programske podrške. Ova jedinica ih razdvaja, objašnjava što koji sloj radi, gdje su mu granice i kako se iz toga procjenjuje veličina gotovog paketa.
- nabrojiti slojeve programske podrške i opisati zadaću svakog od njih
- objasniti ulogu razvojnog okruženja i građu scene u njemu
- opisati što donosi paket za miješanu stvarnost i što bez njega treba pisati sam
- razvrstati alate za pripremu modela prema zadaći u lancu
- procijeniti veličinu paketa i vrijeme prijenosa na uređaj
- obrazložiti izbor programskih alata za zadani projekt
Slojevi programske podrške
Programska rješenja za hologramski prikaz nisu jedan program nego niz slojeva. Svaki sloj koristi ono što mu daje sloj ispod i nudi nešto sloju iznad. Poznavanje te podjele štedi mnogo vremena pri traženju uzroka kvara: pitanje gdje nešto ne radi gotovo je uvijek pitanje u kojem sloju leži problem.
Najniži sloj je sklopovlje: kamere, dubinski senzor, zasloni, procesor. Iznad njega je sustavski sloj uređaja koji iz senzora izvlači položaj glave, gradi mrežu prostorije i prima geste. Njega proizvođač isporučuje s uređajem i u njega se ne dira.
Iznad je razvojno okruženje, u kojem se scena slaže i program piše. Iznad njega je paket za miješanu stvarnost, zbirka gotovih dijelova za sidrenje, geste, prostorno sučelje i sve ostalo što bi se inače pisalo iznova. Na vrhu je sama aplikacija s modelima, tekstovima i ponašanjem koje traži projekt.
Podjela nije samo uredna; ona određuje i tko što može popraviti. Ako hologram treperi, uzrok je najčešće u najnižim slojevima i rješava se postavkama uređaja ili prostora. Ako hologram stoji krivo, uzrok je u sidrenju, dakle u paketu. Ako se model ne vidi, uzrok je gotovo uvijek u aplikaciji — pogrešan sloj, pogrešno mjerilo ili pogrešan materijal.
Razvojno okruženje
Razvojno okruženje (game engine) programski je paket u kojem se gradi trodimenzionalna scena i piše ponašanje njezinih dijelova. Iako mu ime dolazi iz razvoja igara, u industrijskoj se primjeni koristi upravo jednako: scena je prostor, u njoj su predmeti, a program opisuje što se s njima događa.
Osnovna jedinica je predmet u sceni. Svaki predmet ima položaj, zakret i mjerilo, a sve ostalo dobiva dodavanjem sastavnica: mreža za oblik, materijal za izgled, sudarno tijelo za dodir, skripta za ponašanje. Scena se slaže kao stablo, pa predmet koji je dijete drugog predmeta prati njegovo gibanje — upravo ono što treba za robotsku ruku u kojoj svaki segment nosi sljedeći.
| Dio okruženja | Što radi | Na što paziti u hologramskom projektu |
|---|---|---|
| prikazivač | crta scenu šezdeset puta u sekundi | birati laganiji način crtanja; prozirni zasloni ne trebaju pozadinu |
| stablo scene | opisuje odnose među predmetima | ishodište modela mora biti na podu ćelije |
| materijali | opisuju izgled površine | crna boja na prozirnom zaslonu postaje nevidljiva |
| svjetla | osvjetljavaju scenu | izbjegavati računanje sjena u stvarnom vremenu |
| skripte | opisuju ponašanje | izbjegavati rad u svakoj sličici ako nije nužan |
| postavke izgradnje | prave paket za uređaj | odabir platforme, dopuštenja i razine detalja |
Za hologramski projekt okruženje se postavlja drukčije nego za igru. Pozadina se ne crta jer je prozirni zaslon ionako ne prikazuje. Mjerne jedinice se postavljaju tako da jedna jedinica scene bude jedan metar, inače model neće stajati u mjerilu 1:1. Brzina prikaza postavlja se kao tvrd zahtjev, a ne kao cilj: sve što je ne doseže izbacuje se iz scene.
Paketi za miješanu stvarnost
Sustavski sloj uređaja daje sirove podatke: položaj glave, popis ploha, položaje prstiju, prepoznate riječi. Od toga do upotrebljivog sučelja dalek je put, i taj put pokriva paket za miješanu stvarnost (mixed reality toolkit).
Takav paket donosi gotove dijelove: gumb koji se pritišće prstom u zraku, ploču s izbornikom koja se okreće prema korisniku, ručke za pomicanje i mjerenje predmeta, pokazivač koji izlazi iz dlana, sidro koje preživi ponovno pokretanje. Svaki od tih dijelova sadrži i ono što se pri vlastitoj izvedbi zaboravi: povratnu obavijest zvukom, uvećanje mete pri približavanju prsta, ponašanje kad korisnik izgubi praćenje ruku.
| Skupina alata | Što pokriva | Granica |
|---|---|---|
| paket za interakciju | geste, pokazivanje, prostorni izbornici | vezan uz određenu obitelj uređaja |
| sloj za više platformi | isti program za više vrsta naočala | najmanji zajednički nazivnik mogućnosti |
| paket za sidrenje | trajna sidra i njihovo dijeljenje | dijeljenje traži mrežu ili poslužitelj |
| paket za oblak | zajednički prikaz za više korisnika | kašnjenje i sigurnost podataka |
| paket za prijenos težih modela | prikaz modela većih od mogućnosti uređaja | traži stalnu i brzu mrežu |
Pri odabiru paketa vrijedi pravilo koje se često nauči preskupo: paket rješava uobičajeno, a projekt propada na neuobičajenom. Ako projekt traži nešto što paket ne predviđa — primjerice sidro koje se veže uz pomični stroj — taj se dio ionako piše sam, a paket tada služi samo za ostatak. Zato se prije odluke popiše što projekt traži i provjeri koliko od toga paket doista pokriva.
Alati za modele
Model iz konstrukcijskog programa gotovo nikada nije spreman za hologramski prikaz. On je opisan plohama i krivuljama, ima previše pojedinosti, nosi podatke o navojima i tolerancijama i često se sastoji od tisuća dijelova. Priprema je zaseban posao i za nju postoje zasebni alati.
| Vrsta alata | Zadaća u lancu | Tipičan rezultat |
|---|---|---|
| konstrukcijski program | izvor modela i mjera | sklop s punim popisom dijelova |
| alat za pretvorbu | iz ploha u mrežu trokuta | mreža s previše trokuta |
| alat za pojednostavnjenje | smanjenje broja trokuta uz očuvanje oblika | mreža unutar zadane granice |
| alat za mreže | popravak normala, spajanje, razvijanje | mreža bez rupa i preklopa |
| alat za teksture | pečenje pojedinosti u sliku | manje trokuta, isti dojam |
| alat za izvoz | zapis u format razmjene | glTF ili sličan zapis za okruženje |
Format razmjene zaslužuje posebnu napomenu. Za hologramski prikaz uobičajeni je izbor glTF jer je sažet, sadrži i mrežu i materijale i moguće ga je učitati brzo. Model ćelije iz projekta HT-1 u tom zapisu ima 3,6 MB i 90 000 trokuta. To nije slučajna brojka nego rezultat pojednostavnjenja: izvorni sklop imao je red veličine više.
Postoji i skupina alata koja se lako previdi: alati za provjeru. Prije izgradnje paketa korisno je automatski provjeriti ima li model rupa, jesu li normale okrenute van, je li mjerilo u metrima i stoji li ishodište ondje gdje treba. Svaka od tih pogrešaka u naočalama se pojavljuje kao nešto posve drugo — model u zraku, model naopako ili model veličine kućice — pa je jeftinije uloviti ih ranije.
Veličina paketa i vrijeme prijenosa
Gotova se aplikacija pakira u jedan paket koji se prenosi na uređaj. Njegova veličina nije sitnica: memorija naočala je ograničena, prijenos traje, a svaka ispravka znači novi prijenos. U projektu HT-1 postavljena je granica od 900 MB, a izmjereno je 720 MB.
Postavite broj modela u sceni, njihovu prosječnu veličinu i veličinu osnove koju čine razvojno okruženje i paketi. Prikaz računa ukupnu veličinu paketa, preostalu rezervu do granice od 900 MB i vrijeme prijenosa na uređaj pri 40 MB/s.
Iz prikaza se vidi da modeli u pravilu nisu glavni krivac. Dvanaest modela prosječne veličine 3,6 MB zauzima manje od pedeset megabajta, dok osnova okruženja s paketima zauzima nekoliko stotina. Zato prvo mjesto na kojem se traži ušteda nisu modeli nego nepotrebni paketi, neuporabljene knjižnice i teksture u previsokoj razlučivosti.
Vrijeme prijenosa računa se pri brzini od 40 MB/s, što odgovara vezi preko kabela. Za paket od 720 MB to je oko osamnaest sekundi. Zvuči malo, ali se pri ispravljanju pogrešaka ponovi desetcima puta na dan, pa je i to razlog da paket ostane malen.
Zapamtite
Granica veličine paketa nije preporuka nego posljedica. Uređaj koji nema dovoljno slobodne memorije neće pokrenuti aplikaciju ili će je ugasiti usred rada. Provjera slobodne memorije na uređaju spada u pripremu jednako kao i punjenje baterije.
Alati za mjerenje, ispitivanje i vođenje inačica
Uz alate kojima se gradi idu i alati kojima se provjerava. Bez njih se rad svodi na dojam, a dojam u ovom području često vara: prikaz koji djeluje glatko može gubiti svaku četvrtu sliku, a hologram koji izgleda nepomično može klizati milimetar po minuti.
| Alat | Što mjeri ili radi | Kada se koristi |
|---|---|---|
| mjerač brzine prikaza | broj sličica u sekundi i trajanje pojedine slike | tijekom cijelog razvoja, u samoj aplikaciji |
| mjerač zauzeća memorije | koliko zauzimaju modeli, teksture i mreža prostora | prije svake izgradnje paketa |
| portal uređaja | stanje uređaja, temperatura, snimke prikaza | pri ispitivanju i traženju uzroka kvara |
| snimač prizora | snimka onoga što korisnik vidi | za dokumentaciju i za prikaz naručitelju |
| sustav za vođenje inačica | povijest izmjena i mogućnost povratka | od prvog dana projekta |
| popis zadaća i kvarova | što je uočeno, što je popravljeno | tijekom ispitivanja s korisnikom |
Vođenje inačica u projektima s modelima ima jednu posebnost. Modeli i teksture su velike binarne datoteke koje se ne mogu uspoređivati redak po redak, pa obični zapis povijesti brzo naraste na gigabajte. Rješava se odvajanjem velikih datoteka u zasebnu pohranu, a u povijesti ostaje samo uputa na njih.
Posebno je korisno mjerenje ugrađeno u samu aplikaciju. Ako prikaz brzine i zauzeća stoji u kutu vidnog polja tijekom razvoja, pad se primijeti u trenutku kad nastane, a ne tjedan dana kasnije kad se više ne zna koja ga je izmjena izazvala. U inačici za naručitelja taj se prikaz isključi jednom postavkom.
Izbor alata za projekt HT-1
Za zadatak iz ovog modula popis alata izlazi izravno iz zahtjeva. Treba razvojno okruženje koje gradi paket za naočale, paket za miješanu stvarnost zbog sidrenja i gesta, alat za pojednostavnjenje modela zbog granice od 90 000 trokuta te alat za izvoz u glTF.
Ono što ne treba jednako je važno. Ne treba paket za zajednički prikaz jer je korisnik jedan. Ne treba prijenos modela preko mreže jer model stane u uređaj. Ne treba glasovno upravljanje jer je radionica bučna. Svaki izbačeni paket smanjuje veličinu paketa, vrijeme izgradnje i broj mjesta na kojima nešto može poći po zlu.
Preostaje pitanje redoslijeda. Uobičajena je pogreška početi od modela, jer je model najvidljiviji dio posla. Ispravan je redoslijed obrnut: najprije se postavi prazan projekt koji se izgradi i pokrene na uređaju, pa se tek onda u njega ubacuje sadržaj. Tako se problemi s postavkama izgradnje i dopuštenjima otkriju dok je projekt još prazan i dok ih je lako razdvojiti od problema sa sadržajem.
Posljednja napomena tiče se inačica. Razvojno okruženje, paket i sustav uređaja izlaze u inačicama koje ne odgovaraju uvijek jedna drugoj. Zapisati koje su inačice korištene i ne mijenjati ih usred projekta jedno je od najkorisnijih pravila u ovom poslu; nadogradnja usred rada redovito stoji više vremena nego sav dobitak koji donosi.
Ključni pojmovi
| Pojam | Značenje |
|---|---|
| Sustavski sloj uređaja | Programska osnova proizvođača koja iz senzora daje položaj i mrežu. |
| Razvojno okruženje | Paket u kojem se slaže scena i piše ponašanje predmeta. |
| Paket za miješanu stvarnost | Zbirka gotovih dijelova za geste, sidrenje i prostorno sučelje. |
| Stablo scene | Hijerarhija predmeta u kojoj dijete prati gibanje roditelja. |
| Pojednostavnjenje mreže | Smanjenje broja trokuta uz očuvanje prepoznatljivog oblika. |
| glTF | Sažet format razmjene modela s mrežom i materijalima. |
| Paket aplikacije | Datoteka koja se prenosi i instalira na uređaj. |
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
Koji sloj daje položaj glave i mrežu prostorije?
Taj sloj isporučuje proizvođač uz uređaj i u njega se ne dira.
Pitanje 2 od 6
Zašto se u hologramskom projektu ne crta pozadina scene?
Tamni dijelovi na prozirnom zaslonu postaju nevidljivi, pa je crtanje pozadine samo trošak.
Pitanje 3 od 6
Što donosi paket za miješanu stvarnost?
Bez njega bi se svaki od tih dijelova pisao iznova.
Pitanje 4 od 6
Koliko trokuta i koliku veličinu ima model ćelije u projektu HT-1?
To je rezultat pojednostavnjenja; izvorni sklop imao je red veličine više trokuta.
Pitanje 5 od 6
Što u pravilu najviše doprinosi veličini paketa?
Dvanaest modela od 3,6 MB zauzima manje od pedeset megabajta.
Pitanje 6 od 6
Koji je ispravan redoslijed na početku projekta?
Tako se problemi s postavkama izgradnje odvoje od problema sa sadržajem.
Odgovoreno 0 od 6.