Preskoči na sadržaj
FORTRONIQ
IzbornikDigitalni sadržajiHologramske tehnologije3. Razvoj hologramskog okruženja3.1 Izrada softverskih segmenata hologramske tehnologije

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.

Moći ću:
  • 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 obavljaNa projektu HT-1
Razumijevanje prostoragradi mrežu prostorije i drži uređaj na mjestumreža poda radionice i sidro ćelije
Prikaz sadržajaiscrtava model, natpise i oznake na prozirnom zaslonućelija od 90 000 trokuta u mjerilu 1:1
Logika zadatkavodi stanja i redoslijed radnjiuključi prikaz, pomakni ćeliju, izmjeri doseg, spremi
Prostorno sučeljeprima naredbe i daje povratnu obavijestizbornik u prostoru, glasovne naredbe, poruke o praćenju
Veza s podacimadohvaća i šalje podatke izvan aplikacijeoznaka 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.

PraviloZašto vrijediPostupak na HT-1
Crna je prozirnauređaj crnu ne emitira, pa se kroz nju vidi prostorijapozadina i sjene izvedene su crnom, bez ispune
Svijetle plohe se vide najboljesvjetlije boje nadjačaju osvjetljenje radioniceobrisi ćelije crtaju se svijetlim linijama
Velike pune plohe zaklanjajupun zid holograma sakrije stvarni prostor iza sebeograda 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.

stablo scene HT-1 Scena HT-1 Glava i kamera Sidro ćelije Svjetlo scene Pokazivač pogleda Robot Ograda Transporter Doseg Vrata pomak sidra pomiče sve objekte ispod njega
Slika 3.1 — Stablo scene projekta HT-1: glava i sidro su posebni čvorovi, a sav sadržaj koji stoji na podu radionice visi ispod sidra.

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.

Opterećenje scene na naočalamaRačunski prikaz

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.

Procijenjena brzina prikaza—sl/s
Procijenjena radna memorija—MB
Odnos prema cilju od 60 sl/s—
Odnos prema granici od 900 MB—

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škaKako se očitujeIspravak
Krivo mjerilo pri uvozućelija je tisuću puta prevelika ili sitna kao dlanpodijeliti mjere s tisuću ili postaviti mjerilo pri uvozu
Ishodište modela u zrakuhologram lebdi iznad poda ili je ukopanpremjestiti ishodište na donji ugao postolja
Pozadina kamere nije crnacijelo vidno polje je zatamnjenopostaviti crnu boju pozadine bez ispune
Previše prozirnih plohaprikaz je tečan dok se ne priđe ogradi, pa zapneogradu prikazati mrežom linija
Sadržaj nije ispod sidradijelovi ćelije odlutaju svaki na svoju stranuobjesiti 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

PojamZnačenje
Softverski segmentProgramski dio okruženja: prostor, prikaz, logika, sučelje i podaci.
Jednoprolazno iscrtavanjeObrada scene jednom za oba oka umjesto dvaput.
Emisijski materijalMaterijal koji sam svijetli i ne ovisi o svjetlu u sceni.
Ishodište modelaTočka modela koja se poklapa s mjestom sidra u prostoriji.
SastavnicaDodatak koji se objektu pridružuje da bi znao nešto raditi ili bio nešto vidljivo.
Ravnina izoštravanjaOptička udaljenost na kojoj naočale prikazuju sliku.
Poziv iscrtavanjaJedan 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.