Sütik

Sütiket használunk a tartalom személyre szabására és a forgalom elemzésére. Kérjük, határozza meg, hogy hajlandó-e elfogadni weboldalunkon a sütiket.

Oldal tetejére
Bezárás
Zengo - NKFIA pályázat Zengo - Széchenyi2020
Zengo - Kiterjesztett valóság az Apple ökoszisztémában
Kategória:

Kiterjesztett valóság az Apple ökoszisztémában

Zengo - óra11 perc olvasási idő
2022. 12. 08.

Az AR jelenleg az egyik legnagyobb technológiai trend, és csak egyre nagyobb lesz, ahogy az AR-képes okostelefonok és más eszközök világszerte egyre elérhetőbbé válnak.

Mi az AR?

A kiterjesztett valóság (AR - Augmented reality) a valós fizikai világ továbbfejlesztett változata, ami a technológia segítségével megjelenített digitális vizuális elemekkel valósul meg. Célja az érzékelés megváltoztatása videó, infografika, kép, hang és egyéb részletek hozzáadásával.

Más szóval, ha valamilyen kamera lencséjén keresztül nézzük a világot, akkor azon digitálisan változtatásokat eszközölhetünk és kibővíthetjük. Ebből ered a "kiterjesztett valóság" név. Már ma is rengetegféleképpen hasznosítják ezt, beleértve a Snapchat lencséket és a különböző vásárlási alkalmazásokat, amelyekkel digitálisan próbálhatjuk fel a ruhákat.

Az AR-technológia talán leghíresebb példája a Pokemon Go nevű mobilalkalmazás, ami 2016-ban jelent meg, és gyorsan megkerülhetetlen szenzációvá vált. A Pokemonok elkapásán kívül is még rengeteg hasznos alkalmazása létezik:

  • továbbfejlesztett navigációs rendszerek, amik az útvonalat digitálisan az út élő látványa fölé helyezik a szélvédőn,
  • futballmeccsek alatt a közvetítők AR segítségével vonalakat rajzolnak a pályára, hogy illusztrálják és elemezzék a játékokat,
  • lakberendezési alkalmazások, amelyekkel különböző virtuális bútorokat helyezhetünk el lakásunkban,
  • történelmi helyszíneken, mint például az olaszországi Pompeji, az AR segítségével az ősi civilizációkat a mai romok fölé vetíthetjük, életre keltve a múltat.

100% Credit: Niantic

AR vs VR

A kiterjesztett valóságot és a virtuális valóságot gyakran összekeverik, ezért vessük össze őket röviden. A kiterjesztett valóság a meglévő valós környezetet használja, virtuális információkat vagy akár egy virtuális világot helyez rá, hogy fokozza az élményt. Ezzel szemben a virtuális valóság egy teljesen más, jellemzően számítógépek által létrehozott és megjelenített virtuális környezetbe helyezi a felhasználókat. A virtuális valóság felhasználói például animált jelenetekben vagy egy digitális környezetben merülhetnek el. A virtuális valóság arra is használható, hogy egy tényleges helyszínt megörökítsenek, és azt beágyazzák egy VR-alkalmazásba. Egy virtuális valóság headset segítségével bárki úgy sétálhat a világ másik felén, mintha valóban ott lenne.

Röviden tehát, a VR a körülöttünk lévő környezetet valami mással helyettesíti, az AR viszont csak kiegészíti azt.

A használt eszközök is különbözőek. A VR olyan fejhallgatókat használ, amelyek a felhasználó fejére illeszkednek, és szimulált vizuális és hanginformációkat mutatnak neki. Az AR-eszközök ennél egyszerűbbek, és jellemzően olyan eszközök, mint a telefonok, szemüvegek, kivetítők és az autókban lévő HUD-ok (Head-up display - szem elé vetített kijelző).

A kiterjesztett valósághoz szinte bárki hozzáférhet, akinek van okostelefonja, így a VR-nál hatékonyabb márkaépítési és játékeszközként. Továbbá a VR-rendszerek magas ára nehezebbé teszi a rendszeres és hétköznapi használatot. A VR hatással lehet a felhasználók egészségére is - a technológiát még fejleszteni kell, hogy a tapasztalatlan felhasználóknál se forduljanak elő mellékhatásokat, például homályos látás, fejfájás vagy hányinger.

Történelme

Míg a kezdetleges virtuális valóság rendszerek az 1950-60-as években indultak, a VR koncepciója a katonai alkalmazások által az 1980-as évek elején kezdett lendületet venni. Az első mainstream VR-headset kiadására tett kísérlet a Sega VR volt 1993-ban, amely a Sega Genesis játékrendszer kiegészítője volt. Ez azonban soha nem került piacra. Egészen az Oculus Rift 2010-es megjelenéséig kellett várni az első, fogyasztók körében is sikeres VR-Headsetre. Ezek az eszközök viszont ma is drágák, és főként a játékosokat célozzák.

A kiterjesztett valóság 1990 körül vált ki a virtuális valóságból, és 1998-ban került a közvélemény figyelmébe. Ekkor jelent meg a First Down-t jelző digitális sárga vonal az amerikai futballpályákon a TV-ben. A következő évtizedben az AR-technológia köré különböző alkalmazásokat terveztek katonai és fogyasztói felhasználásra, például vadászgépek pilótafülkéjében a pilóták számára hasznos információkat helyeztek el digitálisan vagy, különböző termékre QR-kódokat raktak, amelyeket a telefonnal be lehetett olvasni, és a termék egy rövid 3D-s videóval "életre kelt".

2014-ben a Google bemutatta a Google Glass-t, ami egy fejre helyezhető kijelzős AR-eszköz. Ez a hanggal és érintéses gesztusokkal vezérelhető AR-headset még elég kezdetleges volt. Abból is elég nagy botrány keveredett, hogy így az emberek a nap 24 órájában nyilvánosan videót rögzíthetnek. A Google végül felfüggesztette a projektet, és néhány évvel később újraindította a vállalati felhasználók számára.

100% Credit: Google

Jövője

Az AR már most is egy nagyon izgalmas technológia, de mit tartogat a jövő? A Facebook a Ray-Ban-nal együttműködve nemrég adta ki új okosszemüvegét. Az Apple is tervezi, hogy saját headsetet és okosszemüveget kínáljon. Az 5G hálózatok bővülése is megkönnyíti majd a felhőalapú AR-élmények támogatását, mert így nem kell a bonyolultabb számításokat az eszközön végre hajtani, hanem megoldhatóak a felhőben. Emiatt sokkal kisebb és divatosabb eszközök készíthetők.

A LiDAR elterjedése valósághűbb AR-alkotásokat hoz a telefonjainkra. Az iPhone 12 és az iPad Pro már rendelkezik ilyen technológiával. A LiDAR (Light Detection and Ranging) lényegében a környezet 3D-s térképének létrehozására szolgál, ami jelentősen megnövelheti egy készülék AR-képességeit. Ez mélységérzetet adhat az AR-alkotásoknak, hogy jobban illeszkedjenek a térbe. Lehetővé teszi az okklúziót is, ami azt jelenti, hogy az AR objektum előtt található bármilyen valós fizikai tárgy eltakarja azt.

AR az Apple ökoszisztémában
ARKit

Az ARKit az Apple AR fejlesztési platformja iOS mobileszközökhöz. Az ARKit segítségével a fejlesztők valósághű AR-élményet készíthetnek iPad-re és iPhone-ra. Ez az iOS 11-es verziójával került bevezetésre, és azóta egyre fejlettebbé vált. Lehetővé teszi, hogy a fizikai tereket digitális tartalommal gazdagítsák. Az ezt használó AR-alkalmazások általában stabilabb AR-követéssel és részletesebb tartalommal rendelkeznek, mint az iOS platformon futó egyéb alkalmazások, mivel az ARKit teljes mértékben kihasználja az alapul szolgáló Apple hardvert.

Az ARKit a valós idejű arckifejezések értelmezésére is használható, és az adatokból virtuális 3D-s karakterek hozhatók létre. Sokaknak ismerős lehet a Snapchat filterekből vagy Memojikból. Az ARKit 3. verziója tartalmazta a Motion Capture-t, így a fejlesztők felismerhetik az emberek mozgását is. A másik nagyobb funkció a fentebb kifejtett okklúzió bekerülése volt. Mindkét újítás azt jelenti, hogy az AR-tartalmak természetesebb módon jelennek meg.

Az ARKit a gyorsulásmérőket, giroszkóp-ot és az eszköz térbeli mozgását is figyeli, miközben feltérképezi a közvetlen környezetet. Ezek kombinálásával nagyon pontos 3D-s térképet lehet készíteni a környezetről.

Egyszerűen mondva, az ARKit az AR alkalmazások szeme, ez adja meg a fejlesztőknek, hogy az eszköz mit lát a való világból. De nézzük, hogy milyen keretrendszerek segítségével terjeszthetjük ki a valóságot.

RealityKit

A RealityKit a legfiatalabb fejlesztői csomag az Apple renderelés technológiai családjában. Ez egy magas szintű keretrendszer, amit 2019-ben adtak ki, hogy megkönnyítse az AR alkalmazások fejlesztését. A RealityKit AR / VR projektekhez készült, egyszerűsített beállításokkal rendelkezik a többfelhasználós élményhez, és iOS / macOS rendszereken használható. Többszálú renderelést végez. A RealityKit csak a Swiftet támogatja, az Objective-C nyelvet már nem és csak .usdz, .rcproject és .reality fájlformátumokat olvas be.

A RealityKit kiváló minőségű renderelési technológiát és naprakész AR képességeket biztosít. Támogatja a LiDAR szkennert. Támogatja a fotogrammetriai eszközöket, amivel általunk készített képekből hozhatunk létre 3D modelleket.

SceneKit

A SceneKit szintén egy magas szintű keretrendszer. 2012-ben adták ki, és ez legidősebb az Apple renderelés technológiai családjában. A SceneKit-et elsősorban 3D játékok fejlesztéséhez tervezték, de később kapott VR támogatást is. AR projektekhez csak az ARKit-tel együtt használható, iOS / macOS rendszereken futtatható. A SceneKit támogatja az Objective-C-t és a Swiftet is. Legfőbb előnye, hogy rendkívül testre szabható a RealityKit-hez képest. Többféle fájlformátum beolvasására is képes, többek között az .usdz, .dae és .obj formátumokat.

A SceneKit-et az Apple 2017 óta nem frissítette.

Metal

A Metal igazából egy 3D grafikai API. Egy nagyon alacsony szintű keretrendszer, amit 2014-ben adtak ki. Az összes fentebb említett keretrendszer a Metal-ra épül - a RealityKit, a SceneKit és az ARKit is, de önmagában is használható renderelőként 3D grafikákhoz.

Fejlesztői szempontból sokkal bonyolultabb és időigényesebb, cserébe viszont még a SceneKit-nél is jobban testre szabható és sokkal gyorsabb. A fejlesztők általában kifinomult 3D környezetet tartalmazó játékokhoz vagy a tudományos kutatáshoz szükséges nagy adatmennyiségű alkalmazásokhoz használják.

Fejlesztési tapasztalatok

Olyan szerencsés helyzetben voltunk, hogy a Zengo egyik ügyfele egy AR-hez kapcsolódó feladattal bízott meg bennünket. A cél egy főleg iPad-re optimalizált térberendező applikáció létrehozása volt. A térben elhelyezett objektumokon különböző transzformációkat lehet végrehajtani, például mozgatás, forgatás, skálázás. Az alkotást el is lehet menteni, és ugyanazon helyszínen újra betölteni.

A fejlesztés kezdetén az első fontos lépés, hogy kiválasszuk a megfelelő keretrendszert, ami az ARKit mellett az AR objektumok renderelését végzi. Erre három lehetőség áll rendelkezésre: RealityKit, SceneKit, Metal. A fentebb említett előnyök miatt a RealityKit-et választottuk a fejlesztéshez. Ez lehetőséget biztosít a munka felgyorsításához, rengeteg előre integrált fejlesztést támogató funkcióval rendelkezik, ami megkönnyíti a 3D-ben kevésbé jártas fejlesztők munkáját is.

A következő lépés a térben megjeleníteni kívánt modellek keresése. Itt az első nehézség, hogy a RealityKit nem támogatja a 3D modellezésben használt általánosabb fájl formátumokat, mint az .obj vagy az .fbx. Csak USDZ modellekkel lehet dolgozni, viszont az Apple biztosít egy konvertáló app-ot, amivel a legtöbb 3D fájl formátumból USDZ fájl hozható létre. Az USDZ fájlok kezelése viszont könnyű feladat az Apple eszközökön, szinte mindegyik alapból támogatja, és bármilyen app telepítése nélkül előnézetben megtekinthetők kamerán keresztül a térben.

Az objektumok térbeli elhelyezéséhez először app-ba kell őket importálni. Ezek lehetnek az eszközre mentett fájlok, ehhez implementáltunk egy fájl böngészőt, amivel a lokális vagy az iCloud-ba mentett fájlok között kereshetünk. Vagy az e-mailben, esetleg iMessage-n kapott USDZ fájlokat az app-al nyithatjuk meg, így importálva azokat. Ha sikerül az importálás, akkor be kell töltenünk őket a memóriába, ez a fájlok méretétől függően akár lehet 3-4 másodperc is. Az objektumok mindig a képernyő közepéhez viszonyítva kerülnek elhelyezésre a térben, de hogy könnyebb legyen megtalálni a megfelelő pozíciót, hozzáadtunk egy indikátor négyzetet, ami a síkon pontosan mutatja, hogy hova kerül az objektum.

A transzformációkat 3D vektorok adják meg a térben, forgatás, skálázás és mozgatás esetében is ezekkel kell számolni. Az értékük viszonyítható a világ középpontjához, ami mindig az eszköz kamerája, vagy egy másik virtuális objektumokhoz. A pivot pont, ami megadja, hogy a modell melyik pontjához viszonyulnak a transzformációk, általában az Apple objektumoknál az alján helyezkedi el. Ez viszont problémás, ha olyan külső objektumot használunk, aminek nem ott van, mert ennek áthelyezésére a keretrendszer nem ad módot. Erre egy lehetséges megoldás, ha becsomagoljuk az objektumot egy másikba, aminek az alján található, hogy transzformációknál ugyanúgy viselkedjenek. A méreteket és távolságokat méterben adhatjuk meg. Ezzel nagyon könnyű dolgozni, hiszen a való világban is általában így számolunk. Ez a LidAR kamerával rendelkező eszközök esetében nagyon pontos, de még az egy kamerás régebbi eszközöknél is viszonylag pontos.

A legérdekesebb rész a mentés és betöltés megvalósítása. Az volt a cél, hogy betöltés után minden objektum pontosan oda kerüljön és olyan állapotban, ahogy a mentés pillanatában volt. Ehhez térben elhelyezett, úgynevezett horgonyok használatára van szükség: a beszkennelt térben olyan tárgyakat kell keresni, amikhez viszonyíthatjuk a virtuális objektumaink helyzetét. Az adott síktól a kamera számára is észrevehetően eltérő valós objektumra van szükség, például egy pohár vagy egy párna, nem elég egy kis kavics. Ennek az az oka, hogy a tér beszkennelése nagyon számításigényes feladat, és csak egy durvább, butított térképet készítünk róla.

100%

A horgony tárgynak nem kell közel lennie az objektumhoz, ha egy szobában csak egy kanapé található, ahhoz már képes viszonyítani a térben, és attól távolabb is pozícionálni az objektumokat. A horgonyok kereséséből a felhasználó semmit sem észlel, ő csak egy állapotjelző indikátort lát, hogy a megfelelően felvan-e térképezve a környezet vagy sem. Ha ez megvan, akkor ezt a beszkennelt térképet kell elmenteni: ez nem tartalmazza az objektumokat és azok transzformációit sem, csak a horgonyok helyzetét. Betöltésnél, ha ugyanazt a teret sikerül beszkennelni és a rendszer felismeri a horgony tárgyakat, akkor azok alapján nekünk kell visszaállítani az objektumokat és azok transzformációit.

Egy hatalmas korlátozás, amivel találkoztunk az ARKit kapcsán, hogy ilyenkor nem férünk hozzá az eszköz kamerájához. Nem tudunk közelíteni és az Ultra-wide kamerát sem használhatjuk. ARKit használata során az eszköz kamerájának valós képénél egy picivel szűkebb képet látunk. Ez valószínűleg azért van így, hogy a hardveres kép stabilizátort szoftveresen is tudja segíteni, ami csak szűkebb kép esetén lehetséges. Emiatt, ha remeg a kezünk, akkor is stabilak tudnak maradni az objektumok az esetek többségében.

A legnagyobb kihívások abból eredtek, hogy nagyon kevés dokumentáció érhető el hozzá, ezért a legtöbb dolgot saját magunknak kellett kikísérletezni. Emellett a kód minőségére és nagyfokú optimalizálására is figyelnünk kellett, mert az alkalmazás hosszú idejű használata nagyon leterhelheti az iPad-et, ami lassulásokat és akadásokat okozhat, ez pedig rontja a felhasználói élményt.

Végül a rengeteg tesztelés után, elkészült az első verzió, ami elnyerte a kollegák és a megrendelő tetszését is.

Konklúzió

Az AR mindenképpen egy nagyon izgalmas és érdekes irány, biztosan nagy jövő áll előtte, de még fejlődnie kell. A hardverek még csak most kezdik elérni azt a számítási kapacitást, ami a megfelelő felhasználói élmény biztosításához szükséges. Ha sikerül elérni ezt a szintet, akkor valószínűleg ez is az életünk szerves része lesz.

Az Apple úttörőnek számít a mobilos AR élmény biztosításában, de nem csak a felhasználók, hanem a fejlesztők számára is. Olyan keretrendszereket biztosít, amelyek jelentősen megkönnyítik a fejlesztést, viszont még láthatóan fiatal technológiának számít, legalább is az Apple-nél biztosan, mert nagyon kevés dokumentáció és forrás áll rendelkezésre.


Tetszett az írásunk? Szeretnél még hasonló témában olvasni?

A blogposztot írta és szerkesztette: K. Tibor.