ARKit: kā noteikt, izsekot un parādīt video ar alfa attēlu attēla plaknē

Attēls tiek atpazīts un video parādīts paplašinātajā realitātē.

Video atklāšana un parādīšana attēla augšpusē, izmantojot ARKit, var būt sarežģīta, kad pirmo reizi sākat to attīstīt. Šī rokasgrāmata ir paredzēta, lai ātri palīdzētu izstrādātājiem to sasniegt, izmantojot ARKit un sajaucot Apple attēlu atpazīšanas parauga projektu kopā ar pāris pielāgotajām kodu rindām.

Pirmkārt, lai ieviestu ARKit, mums jāpievieno scenārijs ar ARSCNView. Šī aina būs atbildīga par kameras izmantošanu, lai izsekotu reālo pasauli ap lietotāju. Lai saglabātu visus attēlus, kas tiks atklāti un izsekoti, jāpievieno arī AR Resources aktīvu mape.

Attēlu izsekošana

Mūsu projekta mapē AR resursi ir svarīgi pievienot attēlus, kurus vēlaties atklāt:

Piezīme: atpazīstamos attēlus var iegūt arī no api un izveidot programmatiski.
AR Resursi mapes attēlus

Savā ViewController mums jāpievieno atsauce uz ARSCNView un jāpiemēro delegāti viewDidLoad, kā arī jāpievieno scenogrāfu sesijas piekļuves līdzeklis.

Mūsu skatījumāDidAppear mums jāpievieno resetTracking metode:

ResetTracking metode ir atbildīga par:

  • ARS sesijas sākšana
  • ARSession konfigurācijas iestatīšana
  • Sakot ARSession, kuri zināmie attēli tiks izsekoti

Kad ierīces kameras lietošanas laikā tiek atklāts kāds no mapē AR resursi pievienotajiem attēliem, ARSCNView izsauc šo delegātu:

Delegāts tur informāciju par atklāto attēlu enkurā, un pēc tam, kad tas ir atklāts, tas parāda noteiktā attēla nosaukumu:

AR Resursu attēls ir atklāts.

Video parādīšana virs atklātās attēla plaknes

Mēs jau varam noteikt attēlu ar šo kodu. Tagad ideja ir parādīt video virs attēla. Apskatiet delegātu, kur jau mēs atrodam atklāto attēlu:

Ideja ir palīglīdzeklī pievienot displayVideo metodi, nododot trīs parametrus:

  • atklātais atsauces attēls
  • mezgls
  • parādāmais video

VideoVideo metode VideoHelper iekšpusē ir atbildīga par video parādīšanu. Būtībā tas notiek šādi:

  1. Iegūstiet atsauces attēla fizisko platumu un augstumu
  2. Izveidojiet mezglu, lai turētu video atskaņotāju
  3. Izveidojiet video atskaņotāju
  4. Pievienojiet mezglu, kurā ir video atskaņotājs, sākotnēji atklātajam mezglam
  5. Iestatiet video mezglu

Par video iestatīšanu video turētāja plaknē ir atbildīga metode setupVideoOnNode:

  1. Izveidojiet video atskaņotāju
  2. Izveidojiet SKVideoNode ar video atskaņotāju, kurš tur videoklipu
  3. Izveidojiet spriteKitScene, lai video novietotu tā iekšpusē
  4. Pievienojiet alfa caurspīdīgumu
  5. Video demonstrēšana
  6. Video izveidošana

Video alfa caurspīdīgums

Ievērojiet, ka getAlphaShader pievieno palīgu klase EffectNodeHelper, kas ir atbildīga par SKShader lietošanu. Objektā SKShader ir pielāgots OpenGL ES fragmenta ēnojums, ko izmanto, lai pielāgotu daudzu dažādu veidu mezglus. Šajā gadījumā tiek piemērota alfa.

Ilustrēta mezglu hierarhija.

Rezultāts

Rezultātā, kad tiek atpazīts attēls, atklātās plaknes augšpusē tiek parādīts video ar alfa caurspīdīgumu.

Video ar alfa caurspīdīgumu tiek parādīts atpazītā attēla augšpusē.

Ir svarīgi pieminēt, ka attēliem ir jābūt ar labiem atskaites punktiem un kontrastiem, lai darbotos ar attēlu izsekošanu operētājsistēmā iOS12.

Demonstrācijas projekts ir pieejams šeit. Tas būtībā ir attēlu atpazīšanas parauga projekts no ābola ar dažām izmaiņām, lai pievienotu video attēla augšpusē.

Noderīgi resursi

  • Attēlu izsekošana, izmantojot ARKit 2.0
  • Ievads ARKit 2 attēlu izsekošanā
  • Video demonstrēšana paplašinātajā realitātē, izmantojot ARKit

Vai jūs zināt kādus ieteikumus? Atstājiet savu komentāru! Mēs to patiešām novērtējam.

Major League ir Personāla un avotu aģentūra, kuru izveidoja Lateral View.