ARKit: Kuinka tunnistaa, seurata ja näyttää videota, jossa Alpha on kuvan tason päällä

Kuva tunnistetaan ja video näytetään laajennetussa todellisuudessa.

Videon havaitseminen ja näyttäminen kuvan päällä ARKit-ohjelmalla voi olla hankalaa, kun se alkaa kehittää. Tämän oppaan tarkoituksena on auttaa kehittäjiä saavuttamaan se nopeasti hyödyntämällä ARKit-ohjelmaa ja sekoittamalla Applen kuvan tunnistimen näyteprojekti yhdessä parin mukautetun koodirivin kanssa.

Ensinnäkin ARKitin toteuttamiseksi meidän on lisättävä kuvakäsikirjoitus ARSCNView-ohjelmalla. Tämä kohtaus vastaa kameran käytöstä käyttäjän todellisen maailman seuraamiseen. Lisäksi AR Resources -kansio on lisättävä, jotta kaikki kuvat, jotka havaitaan ja seurataan, tallennetaan.

Kuvien seuranta

On tärkeää lisätä havaitsemasi kuvat projektimme AR Resources -kansioon:

Huomaa: Tunnistettavat kuvat voidaan myös hankkia apista ja luoda ohjelmallisesti.
AR Resurssit -kansion kuvat

ViewController -sovellukseen meidän on lisättävä viittaus ARSCNView-tietokantaan ja sovellettava edustajia viewDidLoad-sovellukseen, ja meidän on lisättävä myös lisäohjelma sceneView-istuntoon.

Meidän viewDidAppear-sovellukseen meidän on lisättävä resetTracking-menetelmä:

ResetTracking-menetelmä vastaa:

  • ARSession käynnistäminen
  • ARSession-konfiguraation asettaminen
  • Kerro ARSessionille, mitä tunnettuja kuvia seurataan

Kun jokin AR Resources -kansioon lisätyistä kuvista havaitaan laitteen kameraa käytettäessä, ARSCNView kutsuu seuraavaa edustajaa:

Valtuutettu edustaja pitää tietoja havaitusta kuvasta ankkurissa ja kun se on havaittu, se näyttää havaitun kuvan nimen:

AR Resurssien kuva havaittu.

Videon näyttäminen havaitun kuvan tason päällä

Voimme jo tunnistaa kuvan tällä koodilla. Nyt ajatuksena on näyttää video kuvan päällä. Katsokaa edustajaa, josta saamme jo havaitun kuvan:

Ajatuksena on lisätä displayVideo-menetelmä auttajan sisään kulkemalla kolme parametria:

  • havaittu referenssikuva
  • solmu
  • näytettävä video

VideoHelperin sisällä oleva displayVideo-menetelmä vastaa videon näyttämisestä. Pohjimmiltaan se tekee seuraavan:

  1. Hanki vertailukuvan fyysinen leveys ja korkeus
  2. Luo solmu videosoittimen pitämiseen
  3. Luo videosoitin
  4. Lisää videosoitinta pitävä solmu alkuperäiseen havaittuun solmuun
  5. Asenna videosolmu

SetupVideoOnNode-menetelmä vastaa videon asettamisesta videotelineen tasoon:

  1. Luo videopelaja
  2. Luo SKVideoNode videota pitävällä videoPlayer-sovelluksella
  3. Luo spriteKitScene sijoittaaksesi videon sisälle
  4. Lisää alfa-läpinäkyvyys
  5. Videon toistaminen
  6. Videon silmukointi

Videon alfa-läpinäkyvyys

Huomaa, että getAlphaShader on lisätty auttajaluokkaan EffectNodeHelper, joka vastaa SKShaderin käyttöönotosta. SKShader-objektissa on mukautettu OpenGL ES-fragmentin varjostin, jota käytetään monipuolisten solmujen piirtokäyttäytymisen mukauttamiseen. Tässä tapauksessa käytetään alfa-alfaa.

Solmuhierarkia havainnollistettu.

Tulos

Seurauksena, kun tunnistettava kuva havaitaan, ilmaistun tason päälle näytetään alfa-läpinäkyvä video.

Alfa-läpinäkyvä video näkyy tunnistetun kuvan päällä.

On tärkeätä mainita, että kuvissa on oltava hyvät vertailupisteet ja kontrastit, jotta ne toimivat kuvan seurannan kanssa iOS12: ssä.

Demoprojekti on saatavilla täältä. Periaatteessa kyse on kuvan tunnistimen otosprojektista omenasta, jossa on joitain muutoksia, jotta video lisätään kuvan päälle.

Hyödyllisiä resursseja

  • Kuvien seuranta ARKit 2.0: lla
  • Johdanto ARKit 2-kuvan seurantaan
  • Videoiden toistaminen lisätyn todellisuuden avulla ARKitin avulla

Tiedätkö ehdotuksia? Jätä kommentti! Arvostamme sitä todella.

Major League on Lateral View -yrityksen henkilöstö- ja hankintatoimisto.