ARKit — co to je, klíčové pojmy a technologie AR

Autor: IT Sectr Publikováno: 2026-03-25 Doba čtení: 8 min

Framework ARKit — platforma rozšířené reality od Apple, která umožňuje vývojářům vytvářet AR aplikace pro iOS bez hlubokých znalostí počítačového vidění. Podle Apple ARKit Documentation, 2025 framework využívá Visual-Inertial Odometry pro přesné sledování polohy zařízení v prostoru bez externích markerů. Sémantické porozumění scéně umožňuje rozpoznávat horizontální a vertikální roviny, určovat osvětlení a umísťovat virtuální objekty v reálném prostředí.

Hlavní body

  • ARKit — framework Apple pro rozšířenou realitu na iOS, představený v roce 2017 s iOS 11.
  • Motion Tracking — technologie sledování polohy zařízení v prostoru bez externích majáků.
  • Scene Understanding — rozpoznávání rovin, hranic a objektů v reálném prostředí uživatele.
  • ARAnchor — objekt, který fixuje polohu virtuálního obsahu v reálné scéně.
  • ARSCNView — hlavní třída pro vykreslování 3D obsahu na základě SceneKitu.

Co je ARKit?

ARKit — framework rozšířené reality od Apple, oznámený na WWDC 2017 spolu s iOS 11. Spojuje možnosti kamery, M-série pohybového procesoru a neurálního engine A-čipů pro vytvoření pohlcujícího AR zážitku bez potřeby specializovaného hardwaru — stačí jen iPhone nebo iPad.

ARKit využívá technologii Visual-Inertial Odometry (VIO), která spojuje data z kamery a inerciálních senzorů Core Motion pro přesné sledování pohybu zařízení v prostoru. VIO umožňuje frameworku rozumět, kde se zařízení nachází vůči okolí, bez použití GPS nebo externích markerů.

Podle Apple WWDC 2024 je ARKit 6 podporován na zařízeních s čipem A12 a novějších (iPhone XS, iPad Pro 2018+). Počet AR aplikací v App Store přesáhl 15 tisíc a celková plocha rozpoznaných rovin ve všech AR sezeních přesahuje 100 miliard čtverečních metrů.

Vývoj ARKitu

Během šesti verzí obdržel ARKit významná vylepšení: ARKit 1.0 (iOS 11) — základní sledování a rozpoznávání rovin; ARKit 2.0 — sdílená AR sezení přes ARWorldMap a detekce 3D objektů; ARKit 3.0 — sledování lidského těla, segmentace osob a současné přední a zadní kamery.

ARKit 4.0 představil LiDAR Scanner pro okamžité určení hloubky a neprůhlednosti objektů, stejně jako Location Anchor pro připojení AR obsahu k GPS souřadnicím. ARKit 6 přidal 4K video s HDR, Plane Estimation pomocí LiDARu a vylepšené zpracování okluze.

swift
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)

Jak ARKit funguje

ARKit funguje prostřednictvím cyklu AR sezení, které se spouští s konfigurací a nepřetržitě analyzuje video stream z kamery. Každý snímek framework vypočítává polohu zařízení (6 stupňů volnosti), aktualizuje mapu rozpoznaných rovin a koriguje polohu virtuálních objektů — vše s frekvencí 60 snímků za sekundu.

Proces VIO se skládá ze dvou paralelních proudů: algoritmus vizuální odometrie sleduje pohyb charakteristických bodů (feature points) mezi snímky a inerciální senzory Core Motion předpovídají pohyb v krátkých intervalech, když se kamera rychle pohybuje nebo je obraz rozmazaný. Kombinace dvou metod poskytuje přesnost sledování až 1 centimetr.

Podle Apple zpracovává ARKit až 500 charakteristických bodů na snímek a velikost mapy okolí (ARWorldMap) může dosáhnout průměru 100 metrů. Skenování okolí a budování mapy trvá přibližně 2-3 sekundy po spuštění sezení — po celou tuto dobu ARKit shromažďuje data z kamery a senzorů.

ARAnchor a umísťování objektů

ARAnchor — klíčový objekt pro umísťování obsahu. Když ARKit rozpozná rovinu, vytvoří ARPlaneAnchor s určením polohy, velikosti a orientace povrchu. Vývojář reaguje na delegáta session(_:didAdd:) a umístí 3D objekt na místo detekce roviny prostřednictvím SceneKitu nebo RealityKitu.

Pro realizaci přetahování objektů se používá ARHitTestResult: při dotyku obrazovky se provádí hit-test skrze snímek ARKitu, který vrací bod průsečíku paprsku s rozpoznanými rovinami. Nalezený bod je převeden na ARAnchor a objekt je v této poloze fixován.

swift
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)
}

Klíčové možnosti ARKitu

ARKit poskytuje sadu technologií, které činí rozšířenou realitu realistickou a funkční: sledování pohybu s 6 stupni volnosti, porozumění scéně prostřednictvím rozpoznávání rovin a hranic, odhad osvětlení pro správné vrhání stínů, okluze osob a reflexní povrchy na základě map okolí.

Motion Capture (ARKit 3+) — technologie sledování lidského těla v reálném čase kamerou. Umožňuje animovat postavy pohyby uživatele bez externích senzorů: rozpoznává se 18 kloubů s frekvencí 60 Hz. Používá se ve fitness aplikacích a pro prototypování animací.

Sdílená AR sezení (ARKit 2+) umožňují více zařízením vidět stejné virtuální objekty ve sdíleném prostoru. ARWorldMap ukládá mapu okolí, která je přenášena dalším zařízením přes síť. Apple uvádí příklad přesnosti synchronizace: dva iPhone 12 Pro v jedné místnosti vidí objekt s odchylkou ne větší než 2 centimetry.

Práce s LiDARem

LiDAR skener, nainstalovaný na iPhone 12 Pro a novějších, radikálně mění možnosti ARKitu. Namísto softwarového určování hloubky analýzou obrazů, LiDAR okamžitě poskytuje mapu hloubky s přesností až 3 centimetry v rozsahu až 5 metrů. To umožňuje ARKitu rozpoznávat roviny okamžitě, bez předchozího skenování kamerou.

Pomocí LiDARu může ARKit určit neprůhlednost objektů: virtuální objekt se může schovat za skutečnou židli nebo stůl. Kromě toho Scene Reconstruction staví 3D síť okolí v reálném čase — až 10 milionů polygonů na místnost, používanou pro simulaci fyziky srážek a realistické osvětlení.

swift
// Konfigurace pro LiDAR
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh

arView.session.run(lidarConfig)

// Detekce dotyku na rovině
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
        )
}

Integrace ARKitu do aplikace

Integrace ARKitu začíná minimálními požadavky: Xcode 15+, iOS 17 SDK, zařízení s čipem A12 Bionic a novějším. Do Info.plist je třeba přidat klíč NSCameraUsageDescription — ARKit používá kameru pro sledování a zobrazení AR scény. Bez tohoto klíče aplikace skončí chybou při spuštění AR sezení.

Pro vykreslování obsahu iOS nabízí tři frameworky: SceneKit pro 3D grafiku střední úrovně složitosti, RealityKit pro fotorealistické vykreslování s PBR materiály a Metal pro maximální výkon. RealityKit — doporučená volba pro nové projekty, protože obsahuje vestavěnou podporu pro ARKit funkce, animaci a fyziku.

Podle Apple je průměrný čas integrace základní AR obrazovky do stávající aplikace — přibližně 2 hodiny pro zkušeného iOS vývojáře. Hlavní potíže vznikají při práci s překrýváním UI prvků na AR scéně a při zpracování přerušení AR sezení — hovorů, přepínání aplikací nebo ztráty sledování při slabém osvětlení.

Zpracování chyb a selhání

ARKit může ztratit sledování v řadě situací: nedostatečné osvětlení (méně než 100 luxů), absence charakteristických bodů (jednobarevné stěny), rychlé pohyby kamery nebo zakrytí objektivu. Delegát ARSessionDelegate poskytuje metody pro zpracování těchto stavů — doporučuje se zobrazovat uživateli tipy: „Pohybujte zařízením pomaleji” nebo „Zapněte osvětlení”.

Pro obnovu po selhání ARKit automaticky spouští relokalizaci — snaží se přiřadit aktuální video stream k uložené mapě okolí. Pokud relokalizace není možná, sezení se restartuje s novou konfigurací. Doporučuje se ukládat ARWorldMap při opuštění aplikace pro rychlé obnovení AR scény při návratu.

swift
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("Relace přerušena")
    }
}

Často kladené otázky

Na jakých zařízeních ARKit funguje?

ARKit funguje na zařízeních Apple s čipem A12 Bionic a novějších: iPhone XS, XR, 11, 12, 13, 14, 15, 16 a SE (2. a 3. generace), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. Pro funkce LiDAR jsou vyžadovány iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max a iPad Pro 2020+.

Lze použít ARKit bez SceneKitu nebo RealityKitu?

Ano, ARKit lze použít přímo s Metalem, ale to vyžaduje napsání vlastního shaderu a vykreslování. SceneKit a RealityKit poskytují hotová řešení s integrací ARKitu na úrovni frameworku. Pro začátečníky je RealityKit optimální volbou, protože automaticky zpracovává funkce ARKitu.

Jak ARKit zpracovává změnu osvětlení?

ARKit automaticky vyhodnocuje osvětlení scény kamerou a poskytuje údaje o směru, intenzitě a barevné teplotě zdroje světla prostřednictvím AREnvironmentProbeAnchor. To umožňuje virtuálním objektům správně vrhat stíny a odrážet okolí, čímž vytváří realistické splynutí s reálným světem.

Čím se ARKit liší od ARCore?

ARKit funguje pouze na iOS a používá Visual-Inertial Odometry pro sledování, zatímco ARCore od Google funguje na Androidu a používá vlastní Motion Tracking založený na IMU a kameře. ARKit má výhodu díky hardwarové integraci s čipy Apple a ARCore — multiplatformnost prostřednictvím Cloud Anchors.

Lze použít ARKit pro vytváření her?

Ano, ARKit je ideální pro AR hry. SceneKit a RealityKit podporují fyziku (SCNPhysicsBody, PhysicsSimulation), animaci, zvuk a částice. Známé příklady — Pokémon GO (používá vlastní engine s ARKitem), Angry Birds AR a Lego AR Studio. ARKit také podporuje multiplayerová sezení prostřednictvím ARWorldMap.

Shrnutí

  • ARKit — framework rozšířené reality Apple založený na Visual-Inertial Odometry z roku 2017.
  • 6 stupňů volnosti — přesné sledování polohy zařízení v trojrozměrném prostoru.
  • SceneKit a RealityKit — dva frameworky pro vykreslování AR obsahu s různou úrovní složitosti.
  • LiDAR zajišťuje okamžité určení hloubky a rekonstrukci okolí na Pro zařízeních.
  • Sdílená sezení umožňují více uživatelům vidět stejné AR objekty.
  • Motion Capture sleduje 18 kloubů těla pro animaci postav v reálném čase.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také