ARKit: Hogyan lehet felismerni, nyomon követni és megjeleníteni egy videót az Alfa-val egy képsík tetején

A kép felismerésre kerül és a videó megjelenik a kiterjesztett valóságban.

A videó felismerése és megjelenítése egy kép tetején az ARKit használatával bonyolult lehet, amikor először elkezdi a fejlesztést. Ez az útmutató célja, hogy gyorsan segítse a fejlesztőket annak elérésében az ARKit felhasználásával és az Apple képalkotó felismerő mintaprojektjének egyesítésével néhány egyedi kódsorral.

Mindenekelőtt az ARKit megvalósításához hozzá kell adnunk egy storyboard-ot egy ARSCNView-val. Ez a jelenet felelős a kamera használatáért, hogy nyomon kövesse a felhasználó valós világát. Szintén hozzá kell adni egy AR Resources eszközmappát az összes olyan kép tárolására, amelyet észlelni és követni kell.

Képkövetés

Fontos, hogy a felismerni kívánt képeket a projektünk AR-erőforrás mappájába tegye:

Megjegyzés: a felismerhető képeket be lehet szerezni egy API-ból is, és programozhatóan is létrehozhatják azokat.
AR Resources mappaképeket

A ViewController-ben hozzá kell adnunk egy hivatkozást az ARSCNView-hoz, és alkalmaznunk kell a küldötteket a viewDidLoad-ban, és hozzá kell adnunk egy kiegészítőt a sceneView-munkamenethez.

A viewDidAppear elemhez hozzá kell adnunk egy resetTracking módszert:

A resetTracking módszer a következőkért felel:

  • ARSession indítása
  • Az ARSession konfigurációjának beállítása
  • Mondja meg az ARSession-nak, hogy mely képeket követi nyomon

Ha az eszközforrás-kamera használata közben az AR-erőforrások mappába hozzáadott képeket észlel, az ARSCNView felhívja a következő küldöttet:

A küldött a horgony belsejében tárolja az észlelt kép adatait, és miután észlelte, megjeleníti az észlelt kép nevét:

AR Az erőforrások képe észlelve.

Videó megjelenítése az érzékelt képsíkon

Már észlelhetünk egy képet ezzel a kóddal. Az ötlet az, hogy egy videót jelenítsen meg a kép tetején. Vessen egy pillantást a küldöttre, ahol már kapjuk az észlelt képet:

Az ötlet egy displayVideo módszer hozzáadása egy segítőbe, három paraméter átadásával:

  • az észlelt referenciakép
  • a csomópont
  • a megmutatandó videó

A VideoHelperben található displayVideo módszer felel a videó megjelenítéséért. Alapvetően a következőket teszi:

  1. Szerezze be a referenciakép fizikai szélességét és magasságát
  2. Hozzon létre egy csomópontot a videolejátszó tartásához
  3. Hozza létre a videolejátszót
  4. Adja hozzá a videolejátszót tartó csomópontot az eredeti észlelt csomóponthoz
  5. Állítsa be a videó csomópontot

A setupVideoOnNode módszer felel a videó beállításához a videotartó síkjában:

  1. Hozzon létre egy videolejátszót
  2. Hozzon létre egy SKVideoNode-ot a videót tartó videolejátszóval
  3. Hozzon létre egy spriteKitScene videót a videó belsejéhez
  4. Adjon hozzá egy alfa-átlátszóságot
  5. A videó lejátszása
  6. Hurok a videó

A videó alfa-átlátszósága

Ne feledje, hogy a getAlphaShader programot egy EffectNodeHelper segédosztály adta hozzá, amely az SKShader alkalmazásáért felel. Egy SKShader objektum egyéni OpenGL ES fragment shader-et tartalmaz, amelyet sokféle csomópont rajz viselkedésének testreszabására használnak. Ebben az esetben egy alfa alkalmazandó.

A csomópontok hierarchiája ábrázolva.

Eredmény

Ennek eredményeként, amikor a felismerhető képet észlelik, egy alfa-átlátszóságú videó jelenik meg az észlelt sík tetején.

Az alfa-átlátszó videó jelenik meg a felismert kép tetején.

Fontos megemlíteni, hogy a képeknek jó referenciapontokkal és kontrasztokkal kell rendelkezniük ahhoz, hogy az iOS12-ben képes legyen követni a képkövetést.

Itt elérhető egy demonstrációs projekt. Alapvetően ez az alma képfelismerő mintaprojektje, néhány változtatással, amellyel a videót hozzáadhatjuk a kép tetejére.

Hasznos források

  • Képkövetés az ARKit 2.0 segítségével
  • Bevezetés az ARKit 2 képkövetésbe
  • Videók lejátszása a kiterjesztett valóságban az ARKit segítségével

Tud valamilyen javaslatot? Szólj hozzá! Nagyon értékeljük.

A Major League a Lateral View személyzeti és beszerzési ügynöksége.