Az ARKit keretrendszer — az Apple kiterjesztett valóság platformja, amely lehetővé teszi a fejlesztők számára, hogy AR alkalmazásokat hozzanak létre iOS-re mély számítógépes látás ismeretek nélkül. A Apple ARKit Documentation, 2025 szerint a keretrendszer Visual-Inertial Odometry-t használ az eszköz pozíciójának pontos követésére a térben külső markerek nélkül. A jelenet szemantikus megértése lehetővé teszi a vízszintes és függőleges síkok felismerését, a megvilágítás meghatározását és a virtuális objektumok elhelyezését a valós környezetben.
Főbb pontok
ARKit — az Apple kiterjesztett valóság keretrendszere, amelyet a WWDC 2017-en jelentettek be az iOS 11-gyel együtt. Egyesíti a kamera, az M-sorozatú mozgásprocesszor és az A-chipek neurális motorjának képességeit, hogy immerszív AR élményt hozzon létre speciális hardver nélkül — csak iPhone vagy iPad szükséges.
Az ARKit a Visual-Inertial Odometry (VIO) technológiát használja, amely egyesíti a kamera és a Core Motion inerciális érzékelők adatait az eszköz térbeli mozgásának pontos követéséhez. A VIO lehetővé teszi a keretrendszer számára, hogy megértse, hol van az eszköz a környezethez képest, GPS vagy külső markerek használata nélkül.
Az Apple WWDC 2024 szerint az ARKit 6 A12 chipes és újabb eszközökön támogatott (iPhone XS, iPad Pro 2018+). Az AR alkalmazások száma az App Store-ban meghaladta a 15 ezret, és az összes AR munkamenetben felismert síkok teljes területe meghaladja a 100 milliárd négyzetmétert.
Hat verzió alatt az ARKit jelentős fejlesztéseket kapott: ARKit 1.0 (iOS 11) — alapvető követés és síkfelismerés; ARKit 2.0 — megosztott AR munkamenetek ARWorldMap-en keresztül és 3D objektumok észlelése; ARKit 3.0 — az emberi test követése, személyek szegmentálása és egyidejű első és hátsó kamerák.
Az ARKit 4.0 bevezette a LiDAR Scanner-t az objektumok mélységének és átlátszatlanságának azonnali meghatározásához, valamint a Location Anchor-t az AR tartalom GPS koordinátákhoz kapcsolásához. Az ARKit 6 4K videót HDR-rel, Plane Estimation-t LiDAR segítségével és továbbfejlesztett okklúziós feldolgozást adott hozzá.
import ARKit
let configuration = ARWorldTrackingConfiguration()
configuration.planeDetection = [.horizontal, .vertical]
configuration.environmentTexturing = .automatic
let arView = ARSCNView(frame: view.bounds)
arView.session.run(configuration)
arView.debugOptions = [.showFeaturePoints]
view.addSubview(arView)
ARKit egy AR munkamenet cikluson keresztül működik, amely egy konfigurációval indul el és folyamatosan elemzi a kamera videó streamjét. Minden képkockában a keretrendszer kiszámítja az eszköz pozícióját (6 szabadságfok), frissíti a felismert síkok térképét és korrigálja a virtuális objektumok pozícióját — mindezt 60 képkocka/másodperc frekvencián.
A VIO folyamat két párhuzamos adatfolyamból áll: a vizuális odometria algoritmus követi a jellemző pontok (feature points) mozgását a képkockák között, a Core Motion inerciális érzékelők pedig rövid időközönként előrejelzik a mozgást, amikor a kamera gyorsan mozog vagy a kép elmosódott. A két módszer kombinációja akár 1 centiméteres követési pontosságot biztosít.
Az Apple szerint az ARKit akár 500 jellemző pontot is feldolgoz képkockánként, és a környezeti térkép (ARWorldMap) mérete elérheti a 100 méter átmérőt. A környezet beolvasása és a térkép felépítése körülbelül 2-3 másodpercet vesz igénybe a munkamenet elindítása után — ezalatt az ARKit adatokat gyűjt a kamerától és az érzékelőktől.
ARAnchor — a kulcsfontosságú objektum a tartalom elhelyezéséhez. Amikor az ARKit felismer egy síkot, létrehoz egy ARPlaneAnchor-t a felület pozíciójának, méretének és orientációjának megadásával. A fejlesztő reagál a session(_:didAdd:) delegáltra, és elhelyezi a 3D objektumot a sík észlelésének helyén SceneKit vagy RealityKit segítségével.
Az objektumok húzásának megvalósításához ARHitTestResult-ot használnak: a képernyő megérintésekor hit-test fut le az ARKit képkockán keresztül, amely visszaadja a sugár és a felismert síkok metszéspontját. A megtalált pont ARAnchor-vá alakul, és az objektum ebben a pozícióban rögzül.
func renderer(
_ renderer: SCNSceneRenderer,
didAdd node: SCNNode,
for anchor: ARAnchor
) {
guard let planeAnchor = anchor
as? ARPlaneAnchor else { return }
let boxNode = SCNNode(
geometry: SCNBox(
width: planeAnchor.extent.x,
height: 0.01,
length: planeAnchor.extent.z,
chamferRadius: 0
)
)
node.addChildNode(boxNode)
}
ARKit olyan technológiák készletét kínálja, amelyek a kiterjesztett valóságot valósághűvé és funkcionálissá teszik: mozgáskövetés 6 szabadságfokkal, a jelenet megértése síkok és határok felismerésén keresztül, megvilágítás becslése a helyes árnyékvetéshez, személyek okklúziója és tükröződő felületek környezeti térképek alapján.
Motion Capture (ARKit 3+) — technológia az emberi test valós idejű követésére a kamerán keresztül. Lehetővé teszi karakterek animálását a felhasználó mozgásával külső érzékelők nélkül: 18 ízület felismerése 60 Hz frekvencián. Fitness alkalmazásokban és animáció prototípuskészítéshez használják.
Megosztott AR munkamenetek (ARKit 2+) lehetővé teszik, hogy több eszköz ugyanazokat a virtuális objektumokat lássa egy közös térben. Az ARWorldMap eltárolja a környezeti térképet, amelyet a hálózaton keresztül továbbítanak más eszközöknek. Az Apple példát ad a szinkronizálás pontosságára: két iPhone 12 Pro ugyanabban a szobában legfeljebb 2 centiméteres eltéréssel látja az objektumot.
A iPhone 12 Pro és újabb készülékekbe épített LiDAR szkenner gyökeresen megváltoztatja az ARKit képességeit. A szoftveres mélységmeghatározás helyett a képek elemzésén keresztül, a LiDAR azonnal mélységtérképet biztosít akár 3 centiméteres pontossággal, 5 méteres tartományban. Ez lehetővé teszi az ARKit számára, hogy a síkokat azonnal felismerje, a kamera előzetes letapogatása nélkül.
A LiDAR segítségével az ARKit meghatározhatja az objektumok átlátszatlanságát: egy virtuális tárgy elrejtőzhet egy valódi szék vagy asztal mögött. Emellett a Scene Reconstruction valós időben 3D hálót épít a környezetből — akár 10 millió poligon szobánként, amelyet ütközési fizika szimulációjához és valósághű megvilágításhoz használnak.
// Konfiguráció LiDAR-hoz
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh
arView.session.run(lidarConfig)
// Érintés érzékelése a síkon
override func touchesBegan(
_ touches: Set<UITouch>,
with event: UIEvent?
) {
let location = touches.first?.location(in: arView)
guard let hitPoint = location else { return }
let results = arView
.raycastQuery(
from: hitPoint,
allowing: .existingPlaneInfinite,
alignment: .horizontal
)
}
Az ARKit integrálása minimális követelményekkel kezdődik: Xcode 15+, iOS 17 SDK, A12 Bionic chipes vagy újabb eszköz. Az Info.plist-ben hozzá kell adni az NSCameraUsageDescription kulcsot — az ARKit a kamerát használja az AR jelenet követéséhez és megjelenítéséhez. E kulcs nélkül az alkalmazás hibával fejeződik be az AR munkamenet indításakor.
A tartalom megjelenítéséhez az iOS három keretrendszert kínál: SceneKit közepes komplexitású 3D grafikához, RealityKit fotorealisztikus megjelenítéshez PBR anyagokkal és Metal maximális teljesítményhez. A RealityKit — az ajánlott választás új projektekhez, mivel beépített támogatást tartalmaz az ARKit funkciókhoz, animációhoz és fizikához.
Az Apple szerint az alapszintű AR képernyő meglévő alkalmazásba történő integrálásának átlagos ideje körülbelül 2 óra egy tapasztalt iOS fejlesztő számára. A fő nehézségek a UI elemek AR jelenetre történő rétegezésekor és az AR munkamenet megszakításainak — hívások, alkalmazásváltás vagy követés elvesztése gyenge fényviszonyok mellett — kezelésekor merülnek fel.
Az ARKit számos helyzetben elveszítheti a követést: elégtelen megvilágítás (kevesebb mint 100 lux), jellemző pontok hiánya (egyszínű falak), a kamera gyors mozgása vagy a lencse eltakarása. Az ARSessionDelegate delegált módszereket biztosít ezen állapotok kezelésére — ajánlott tippeket megjeleníteni a felhasználónak: „Mozgassa az eszközt lassabban” vagy „Kapcsolja be a világítást”.
A meghibásodás utáni helyreállításhoz az ARKit automatikusan elindítja a relokalizációt — megpróbálja összeilleszteni az aktuális videó streamet a mentett környezeti térképpel. Ha a relokalizáció nem lehetséges, a munkamenet új konfigurációval indul újra. Ajánlott az ARWorldMap mentése az alkalmazásból való kilépéskor az AR jelenet gyors visszaállításához való visszatéréskor.
class ARViewController: UIViewController {
let arView = ARSCNView()
override func viewDidLoad() {
super.viewDidLoad()
arView.session.delegate = self
let config = ARWorldTrackingConfiguration()
config.planeDetection = [.horizontal]
config.frameSemantics = .personSegmentation
arView.session.run(config)
}
func sessionWasInterrupted(
_ session: ARSession
) {
showAlert("Munkamenet megszakítva")
}
}
Gyakran ismételt kérdések
Az ARKit A12 Bionic chippel és újabb Apple eszközökön működik: iPhone XS, XR, 11, 12, 13, 14, 15, 16 és SE (2. és 3. generáció), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. A LiDAR funkciókhoz iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max és iPad Pro 2020+ szükséges.
Igen, az ARKit használható közvetlenül Metallal, de ez saját shader és renderelő írását igényli. A SceneKit és RealityKit kész megoldásokat kínálnak ARKit integrációval keretrendszer szinten. Kezdőknek a RealityKit az optimális választás, mivel automatikusan kezeli az ARKit funkciókat.
Az ARKit automatikusan értékeli a jelenet megvilágítását a kamerán keresztül, és adatokat szolgáltat a fényforrás irányáról, intenzitásáról és színhőmérsékletéről az AREnvironmentProbeAnchor segítségével. Ez lehetővé teszi a virtuális objektumok számára, hogy helyesen vessenek árnyékot és tükrözzék a környezetet, valósághű összeolvadást teremtve a valós világgal.
ARKit csak iOS-en működik és Visual-Inertial Odometry-t használ a követéshez, míg a Google ARCore Androidon működik és saját, IMU-n és kamerán alapuló Motion Tracking-et használ. Az ARKit előnye az Apple chipekkel való hardveres integrációnak köszönhető, az ARCore-é pedig a többplatformos támogatás a Cloud Anchors segítségével.
Igen, az ARKit ideális AR játékokhoz. A SceneKit és RealityKit támogatja a fizikát (SCNPhysicsBody, PhysicsSimulation), animációt, hangot és részecskéket. Ismert példák — Pokémon GO (saját motort használ ARKit-tal), Angry Birds AR és Lego AR Studio. Az ARKit támogatja a többjátékos munkameneteket is ARWorldMap-en keresztül.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is