ARKit: Kuidas tuvastada, jälgida ja kuvada alfa-tüüpi videot pilditasapinna kohal

Pilti tuntakse ära ja videot kuvatakse liitreaalsuses.

Kujutise peal video tuvastamine ja kuvamine ARKiti abil võib arenduse alustamisel olla keeruline. Selle juhendi eesmärk on aidata arendajatel seda kiiresti saavutada, kasutades ARKit ja segades Apple'i pildituvastuse näidisprojekti koos paari kohandatud koodiridaga.

Esiteks peame ARKiti rakendamiseks lisama süžeeskeemi koos ARSCNView'ga. See stseen vastutab kaamera kasutamise eest kasutaja ümbritseva reaalse maailma jälgimiseks. Kõigi tuvastatavate ja jälgitavate piltide talletamiseks tuleb lisada ka AR-ressursside varade kaust.

Kujutiste jälgimine

Oluline on meie projekti AR-ressursside kausta lisada pildid, mida soovite tuvastada:

Märkus: äratuntavaid pilte saab hankida ka api-st ja luua programmiliselt.
AR ressursside kaustapildid

Peame oma ViewControllerisse lisama viite ARSCNView-le ja rakendama delegaate viewDidLoadis ning lisaks peame lisama ka sceView-seansi jaoks kasutatava pääsuri.

Meie vaatesseDidAppear peame lisama lähtestamismeetodi:

Lähtestamismeetodi eest vastutavad:

  • ARS-seansi käivitamine
  • ARSessioni konfiguratsiooni seadistamine
  • Teatage ARSessionile, milliseid tuntud pilte jälgitakse

Kui seadme kaamera kasutamise ajal tuvastatakse mõni AR-ressursside kausta lisatud pilt, kutsub ARSCNView järgmist delegaati:

Delegaat hoiab teavet tuvastatud pildi kohta ankrus ja kui see on tuvastatud, näitab ta tuvastatud pildi nime:

AR tuvastati ressurss.

Video kuvamine tuvastatud pilditasapinna peal

Selle koodiga pilti võime juba tuvastada. Nüüd on idee kuvada pildi peal video. Heitke pilk delegaadile, kust me juba tuvastatud pildi saame:

Idee on lisada abiline abil displayVideo-meetod, läbides kolm parameetrit:

  • tuvastatud võrdluspilti
  • sõlme
  • näidatav video

VideoHelperis sisalduva displayVideo-meetodi ülesandeks on video kuvamine. Põhimõtteliselt teeb see järgmist:

  1. Hankige võrdluspildi füüsiline laius ja kõrgus
  2. Videopleieri hoidmiseks looge sõlm
  3. Looge videopleier
  4. Lisage videopleierit hoidev sõlm algselt tuvastatud sõlme
  5. Seadistage videosõlm

Video seadistamine videohoidiku tasapinnal vastutab meetodi setupVideoOnNode abil:

  1. Looge videomängija
  2. Looge SKVideoNode videot omava videopleieriga
  3. Video sisemiseks paigutamiseks looge spriteKitScene
  4. Lisage alfa-läbipaistvus
  5. Video esitamine
  6. Video silmus

Video alfa läbipaistvus

Pange tähele, et getAlphaShaderi lisab abiklass EffectNodeHelper, mis vastutab SKShaderi kohaldamise eest. SKShaderi objektil on kohandatud OpenGL ES fragmentide varjutaja, mida kasutatakse paljude erinevat tüüpi sõlmede joonistuskäitumise kohandamiseks. Sel juhul rakendatakse alfa.

Sõlmede hierarhia on illustreeritud.

Tulemus

Selle tulemusel kuvatakse tuvastatava pildi tuvastamisel tuvastatud tasapinna kohal alfa-läbipaistvusega video.

Alfa läbipaistvusega video kuvatakse tuvastatud pildi peal.

IOS12-s piltide jälgimisega töötamiseks on oluline, et piltidel peaksid olema head võrdluspunktid ja kontrastid.

Demoprojekti leiate siit. Põhimõtteliselt on see pildituvastuse näidisprojekt õunast koos mõne muudatusega, et lisada video pildi kohale.

Kasulikud ressursid

  • Kujutiste jälgimine ARKit 2.0 abil
  • Sissejuhatus ARKit 2 piltide jälgimisse
  • Videote mängimine liitreaalsuses ARKiti abil

Kas teate mingeid ettepanekuid? Jäta kommentaar! Me hindame seda väga.

Major League on Lateral View'i personali- ja allhankeagentuur.