Preskoči na sadržaj
FORTRONIQ

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.

Moći ću:
  • 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.

Slojevi programske podrške aplikacija: upute za zamjenu prihvatnice koraci, sučelje, sadržaj razvojno okruženje scena, modeli, logika okvir za proširenu stvarnost prepoznavanje i praćenje operativni sustav i pogonski programi dopuštenja, pristup senzorima sklopovlje uređaja kamera, senzori, procesor problem se rješava u onom sloju u kojem je nastao; zaobilaženje sloja gotovo uvijek stvara novi problem
Slika 2.6.1 — Slojevi programske podrške. Svaki sloj koristi ono što mu daje sloj ispod i nudi jednostavnije sučelje sloju iznad.

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žjeUnityUnreal Engine
Programski jezikC#C++ i vizualno spajanje blokova
Ulaz u posaoblaži, mnogo gotovih primjerastrmiji, više pojmova odjednom
Podrška za mobilne uređajevrlo široka, uobičajen izbordobra, ali zahtjevnija za podešavanje
Kakvoća prikazadovoljna za upute i prikaz sklopovaizrazito visoka, za vjeran prikaz
Veličina gotove aplikacijemanjaveća
Tipična primjena u proširenoj stvarnostiupute, prikaz, uvježbavanje na telefonu i tabletuprikaz 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.

Pokrivenost mogućnosti po okvirima ARCore ARKit AR Found. Vuforia WebXR prepoznavanje mete prepoznavanje ploha sidra prostorno mapiranje praćenje lica rad u pregledniku podržano nije podržano
Slika 2.6.2 — Što pokriva koji okvir. Popunjeni kvadratić označava da je mogućnost podržana, prazni da nije.

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.

PrednostGranica
nema instalacije, dovoljna je poveznica ili kodpodrška ovisi o pregledniku i uređaju
ista inačica za sve korisnike odjednomdostupne su samo osnovne mogućnosti praćenja
lako se povezuje s podacima iz pogonaprepoznavanje meta uglavnom traži dodatnu knjižnicu
nema troška objave u trgovinisporije učitavanje velikih modela
prikladno za jednokratnu upotrebuslabiji 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 nosiGdje se koristi
glTF / GLBgeometriju, materijale, animacije, u malenoj datoteciisporuka modela u aplikaciju i u preglednik
USDZisto, uz podršku za brzi pregled na Applovim uređajimaprikaz modela bez posebne aplikacije
FBXgeometriju, materijale i animacije, uz veće datotekerazmjena između programa za modeliranje i razvojnog okruženja
OBJsamo geometriju i osnovne materijalejednostavna razmjena, bez animacije
STEPtočan opis ploha iz konstruiranjaizvor 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.

Odabir programskog slagaljaRačunski prikaz

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.

Predloženi okvir—
Procijenjeni trud—radnih dana
Obuhvaćeni uređaji—%

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.

SlojOdabir za AR-1Obrazloženje
razvojno okruženjeUnitymanja aplikacija, široka podrška za mobilne uređaje
okvirAR Foundation nad ARCorejedan kod za više platformi, dovoljne mogućnosti
prepoznavanje meteslikovna meta iz natpisne pločicemeta već postoji, ocjena 4/5
zapis modelaglTF, 2,1 MBbrzo učitavanje, mali zapis
sučeljekoraci s tekstom i strelicamačitljivost pri 300 lx i na 0,5 m
zamjensko rješenjejednostavan prikaz u preglednikuza 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

PojamZnačenje
Razvojno okruženjeProgram u kojem se gradi scena i iz kojeg izlazi gotova aplikacija.
Okvir za proširenu stvarnostSloj koji iz mjerenja senzora daje položaj, plohe i sidra.
AR FoundationZajednički sloj iznad ARCore i ARKit; jedan kod za obje platforme.
VuforiaOkvir usmjeren na prepoznavanje meta, s bazom meta i ocjenom prepoznatljivosti.
WebXRSučelja kojima preglednik daje stranici pristup praćenju i prikazu.
glTFZapis modela prilagođen brzom prijenosu i učitavanju u stvarnom vremenu.
Vezanje uz dobavljačaOvisnost 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.