MODUL 2 · TEORIJSKE OSNOVE PROŠIRENE STVARNOSTI
Nastavna jedinica 2.6
Vrste softverskih rješenja
Aplikacija proširene stvarnosti ne nastaje u jednom programu. Slaže se od slojeva: sklopovlje daje mjerenja, operativni sustav ih prosljeđuje, okvir iz njih računa položaj, razvojno okruženje gradi scenu, a aplikacija određuje što korisnik vidi. Ova jedinica opisuje svaki sloj, uspoređuje najčešća rješenja i objašnjava kako se biraju.
- opisati slojeve programske podrške za proširenu stvarnost i ulogu svakoga
- usporediti razvojna okruženja prema namjeni i zahtjevnosti
- razlikovati programske okvire za proširenu stvarnost prema onome što pokrivaju
- objasniti prednosti i granice rješenja koje radi u pregledniku
- objasniti načela licenciranja i posljedice vezanja uz jednog dobavljača
- procijeniti prikladno slagalje i potreban trud za zadanu primjenu
Slojevi programske podrške
Kad se u zadatku kaže da treba izraditi aplikaciju proširene stvarnosti, misli se na gornji sloj. Ispod njega stoje slojevi koji su već napisani i koji rješavaju najteže dijelove posla. Razumijevanje te podjele štedi mnogo vremena, jer pokazuje gdje se problem uopće može riješiti.
Podjela ima praktičnu posljedicu. Ako se sadržaj odvaja od predmeta, uzrok je u sloju okvira ili u sklopovlju, a ne u sadržaju. Ako je slika isprekidana, uzrok je u razvojnom okruženju ili u modelu. Ako aplikacija ne dobiva sliku kamere, uzrok je u dopuštenjima operativnog sustava. Traženje pogreške u krivom sloju najčešći je gubitak vremena u ovom poslu.
Razvojna okruženja
Razvojno okruženje (game engine) program je u kojem se gradi scena: u njega se uvoze modeli, postavljaju izvori svjetla, pridružuju materijali, piše ponašanje i sastavlja sučelje. Iz njega izlazi gotova aplikacija za odabranu platformu. Dva se okruženja u ovom području koriste najviše.
| Obilježje | Unity | Unreal Engine |
|---|---|---|
| Programski jezik | C# | C++ i vizualno spajanje blokova |
| Ulaz u posao | blaži, mnogo gotovih primjera | strmiji, više pojmova odjednom |
| Podrška za mobilne uređaje | vrlo široka, uobičajen izbor | dobra, ali zahtjevnija za podešavanje |
| Kakvoća prikaza | dovoljna za upute i prikaz sklopova | izrazito visoka, za vjeran prikaz |
| Veličina gotove aplikacije | manja | veća |
| Tipična primjena u proširenoj stvarnosti | upute, prikaz, uvježbavanje na telefonu i tabletu | prikaz proizvoda i prostora u punoj kakvoći |
Za projekt AR-1 razuman je izbor Unity. Razlog nije kakvoća prikaza nego to što ciljni uređaj ima 6 GB radne memorije i mora održati 30 sličica u sekundi. Upute za zamjenu prihvatnice ne traže vjeran prikaz materijala nego jasnoću, a manja aplikacija se brže učitava i lakše raspodjeljuje.
Postoji i treći put: pisanje aplikacije izravno za operativni sustav uređaja, bez razvojnog okruženja. Takav pristup daje najmanju i najbržu aplikaciju, ali sve što razvojno okruženje nudi — učitavanje modela, materijale, sjene, sučelje — treba napisati sam. Isplati se samo kod vrlo jednostavnog sadržaja.
Okviri za proširenu stvarnost
Okvir (framework, SDK) sloj je koji razgovara sa senzorima i daje odgovor na pitanje gdje je uređaj. Aplikacija od njega dobiva položaj, popis prepoznatih ploha, sidra i, kod nekih, mrežu prostora. Okviri se razlikuju po tome što pokrivaju i na kojim uređajima rade.
ARCore je okvir ugrađen u Android. Daje praćenje sa šest stupnjeva slobode, prepoznavanje ploha, sidra, procjenu osvjetljenja, prepoznavanje slikovnih meta i procjenu dubine iz obične kamere. Radi samo na popisu podržanih uređaja, ali taj popis obuhvaća veći dio novijih telefona i tableta.
ARKit je istovrijedan okvir za Applove uređaje. Mogućnosti su vrlo slične, uz prednost u tome što se sklopovlje i programska podrška razvijaju zajedno, pa je ponašanje ujednačenije. Na uređajima s LiDAR senzorom daje i mrežu prostora.
AR Foundation nije samostalan okvir nego zajednički sloj iznad prethodna dva. Aplikacija se piše jednom, a pri izgradnji se preslikava na ARCore ili ARKit. Cijena je to što su dostupne samo mogućnosti koje postoje na obje strane, pa se najnovije značajke pojedinog sustava dobivaju sa zakašnjenjem.
Vuforia je okvir usmjeren na prepoznavanje meta. Nudi bazu meta s ocjenom prepoznatljivosti, mete iz modela predmeta, valjkaste i višedijelne mete te prepoznavanje na uređaju ili na poslužitelju. Za zadatke u kojima je meta središnja, kao u projektu AR-1, često je najkraći put do rezultata.
Proširena stvarnost u pregledniku
WebXR je skup sučelja kojima preglednik daje stranici pristup praćenju položaja i prikazu u proširenoj ili virtualnoj stvarnosti. Aplikacija je obična stranica: otvara se poveznicom, ne instalira se i ne prolazi kroz trgovinu aplikacijama.
| Prednost | Granica |
|---|---|
| nema instalacije, dovoljna je poveznica ili kod | podrška ovisi o pregledniku i uređaju |
| ista inačica za sve korisnike odjednom | dostupne su samo osnovne mogućnosti praćenja |
| lako se povezuje s podacima iz pogona | prepoznavanje meta uglavnom traži dodatnu knjižnicu |
| nema troška objave u trgovini | sporije učitavanje velikih modela |
| prikladno za jednokratnu upotrebu | slabiji pristup dubinskim senzorima |
Za projekt AR-1 rješenje u pregledniku ima jednu veliku prednost: tehničar ne mora ništa instalirati, a uputa se može otvoriti očitanjem koda s ograde. Protiv njega govori to što je prepoznavanje natpisne pločice u pregledniku slabije i sporije nego u ugrađenom okviru, a upravo je to središnji dio zadatka.
Razuman je kompromis koji se u praksi često primjenjuje: glavna aplikacija se izrađuje za uređaj, a u pregledniku se nudi jednostavniji prikaz bez praćenja, kao brza zamjena kad uređaj nije pri ruci.
Alati za modele i sadržaj
Uz okruženje i okvir ide i skupina alata koji pripremaju ono što se prikazuje. Model prihvatnice dolazi iz programa za konstruiranje, ali u tom obliku nije upotrebljiv: ima previše trokuta, nosi podatke koji u prikazu ne trebaju i često nema materijale.
- Programi za modeliranje i doradu mreže smanjuju broj trokuta, popravljaju topologiju i razvijaju površinu za nanošenje teksture.
- Alati za pečenje teksture prenose pojedinosti s bogatog modela na jednostavan, pa se sitni oblici prikazuju slikom umjesto geometrijom.
- Pretvarači zapisa pripremaju model za isporuku; glTF je uobičajen zapis za prijenos jer je malen i brzo se učitava.
- Alati za pripremu meta ocjenjuju sliku i pretvaraju je u bazu obilježja koju okvir traži u kameri.
| Zapis | Što nosi | Gdje se koristi |
|---|---|---|
| glTF / GLB | geometriju, materijale, animacije, u malenoj datoteci | isporuka modela u aplikaciju i u preglednik |
| USDZ | isto, uz podršku za brzi pregled na Applovim uređajima | prikaz modela bez posebne aplikacije |
| FBX | geometriju, materijale i animacije, uz veće datoteke | razmjena između programa za modeliranje i razvojnog okruženja |
| OBJ | samo geometriju i osnovne materijale | jednostavna razmjena, bez animacije |
| STEP | točan opis ploha iz konstruiranja | izvor iz kojeg se model priprema, ne i isporuka |
Model prihvatnice iz projekta AR-1 ima 12 000 trokuta i zapisan je u glTF datoteci od 2,1 MB. Ta dva broja nisu slučajna: prvi je gornja granica koju uređaj stigne nacrtati bez gubitka sličica, a drugi granica koja se preko mreže pogona učita u nekoliko sekundi.
Uz model ide i skupina alata za ispitivanje. Mjerač broja sličica pokazuje pada li prikaz ispod zadanih 30 sličica u sekundi. Zapisnik rada bilježi kada je meta prepoznata, kada izgubljena i koliko je trajalo ponovno prepoznavanje. Udaljeno otklanjanje pogrešaka omogućuje da se aplikacija promatra s računala dok radi na tabletu u pogonu, što je jedini način da se uhvate pogreške koje se javljaju samo u stvarnim uvjetima.
Ispitivanje na simulatoru korisno je za sučelje i redoslijed koraka, ali ne i za praćenje. Simulator ne poznaje stvarno osvjetljenje, stvarnu metu ni stvarni pokret ruke, pa aplikacija koja u njemu radi besprijekorno može u pogonu odmah otkazati. Svaka se izmjena zato provjerava i na uređaju.
Licenciranje i vezanje uz dobavljača
Načela licenciranja u ovom području svode se na nekoliko obrazaca. Prvi je besplatna upotreba za učenje i za male prihode, uz naplatu kad prihod prijeđe prag. Drugi je pretplata po korisniku ili po razvojnom mjestu. Treći je udio u prihodu gotovog proizvoda. Četvrti je otvoreni kod, kod kojeg troška nema, ali odgovornost za rad ostaje na onome tko ga ugrađuje.
Uz te obrasce ide i pitanje gdje se obrada odvija. Neka rješenja prepoznaju metu na samom uređaju, a neka je šalju na poslužitelj. Obrada na poslužitelju omogućuje veliku bazu meta i izmjene bez nove inačice aplikacije, ali traži stalnu mrežu i unosi dodatno kašnjenje. U pogonu u kojem mreža nije pouzdana prednost ima obrada na uređaju.
Uz trošak treba gledati i vezanje uz dobavljača. Ako je cijela aplikacija napisana oko jednog okvira, prelazak na drugi znači ponovno pisanje znatnog dijela. Vezanje se smanjuje tako da se kod koji razgovara s okvirom drži na jednom mjestu, odvojen od koda koji opisuje korake postupka.
Odaberite ciljne uređaje, treba li prepoznavanje mete i koliko je programera na zadatku. Prikaz predlaže okvir, procjenjuje trud u radnim danima i pokazuje koliki dio uređaja u uporabi takvo rješenje obuhvaća.
Procjena trajanja u prikazu gruba je i služi za razgovor, a ne za ponudu. Pokazuje ipak dva stalna odnosa: pokrivanje dviju platformi odjednom skuplje je od jedne, a dodatni programer ne skraćuje posao razmjerno svojem broju, jer dio posla ostaje nedjeljiv.
Zapamtite
Prije odabira okvira provjerite tri stvari: radi li na uređajima koji su već u pogonu, pokriva li ono što zadatak traži i što se događa ako dobavljač promijeni uvjete. Treće pitanje se najčešće preskoči, a najviše stoji.
Slaganje rješenja za projekt AR-1
Iz svega navedenog slijedi konkretan izbor. Uređaj A je tablet s Androidom, pa je osnovni okvir ARCore. Budući da se ne isključuje kasnije proširenje na druge uređaje, aplikacija se gradi kroz AR Foundation, koji istu scenu može izgraditi i za ARKit. Prepoznavanje natpisne pločice izvodi se slikovnom metom, a ako se ocjena pokaže nedostatnom, dodaje se okvir usmjeren na mete.
| Sloj | Odabir za AR-1 | Obrazloženje |
|---|---|---|
| razvojno okruženje | Unity | manja aplikacija, široka podrška za mobilne uređaje |
| okvir | AR Foundation nad ARCore | jedan kod za više platformi, dovoljne mogućnosti |
| prepoznavanje mete | slikovna meta iz natpisne pločice | meta već postoji, ocjena 4/5 |
| zapis modela | glTF, 2,1 MB | brzo učitavanje, mali zapis |
| sučelje | koraci s tekstom i strelicama | čitljivost pri 300 lx i na 0,5 m |
| zamjensko rješenje | jednostavan prikaz u pregledniku | za slučaj kad tablet nije pri ruci |
Takav popis treba zapisati na početku projekta i uz svaku stavku navesti razlog. Kad se poslije pojavi pitanje zašto nešto ne radi kako se očekivalo, odgovor je gotovo uvijek u jednoj od tih odluka.
Ključni pojmovi
| Pojam | Značenje |
|---|---|
| Razvojno okruženje | Program u kojem se gradi scena i iz kojeg izlazi gotova aplikacija. |
| Okvir za proširenu stvarnost | Sloj koji iz mjerenja senzora daje položaj, plohe i sidra. |
| AR Foundation | Zajednički sloj iznad ARCore i ARKit; jedan kod za obje platforme. |
| Vuforia | Okvir usmjeren na prepoznavanje meta, s bazom meta i ocjenom prepoznatljivosti. |
| WebXR | Sučelja kojima preglednik daje stranici pristup praćenju i prikazu. |
| glTF | Zapis modela prilagođen brzom prijenosu i učitavanju u stvarnom vremenu. |
| Vezanje uz dobavljača | Ovisnost rješenja o jednom okviru koja otežava kasniju promjenu. |
Provjeri se
Kratka provjera prije prelaska na sljedeću jedinicu. Odgovor se potvrđuje klikom, a obrazloženje se prikazuje odmah.
Pitanje 1 od 5
Koji sloj rješava pitanje gdje se uređaj nalazi?
Okvir razgovara sa senzorima i daje položaj, plohe i sidra.
Pitanje 2 od 5
Što je AR Foundation?
Aplikacija se piše jednom, a pri izgradnji se preslikava na okvir ciljne platforme.
Pitanje 3 od 5
Koja je glavna prednost rješenja koje radi u pregledniku?
Stranica se otvara poveznicom ili kodom i ne prolazi kroz trgovinu aplikacijama.
Pitanje 4 od 5
Za što je Vuforia ponajprije namijenjena?
Nudi bazu meta, ocjenu prepoznatljivosti te mete iz modela, valjkaste i višedijelne.
Pitanje 5 od 5
Kako se smanjuje vezanje uz jednog dobavljača?
Ako je taj kod odvojen od koraka postupka, zamjena okvira dira samo jedan dio aplikacije.
Odgovoreno 0 od 5.