ARKit — шта је то, кључни појмови и AR технологија

Аутор: IT Sectr Објављено: 2026-03-25 Време читања: 8 мин

ARKit фрејмворк — платформа проширене стварности компаније Apple која омогућава програмерима да креирају AR апликације за iOS без дубоког знања компјутерског вида. Према Apple ARKit Documentation, 2025, фрејмворк користи Visual-Inertial Odometry за прецизно праћење положаја уређаја у простору без спољних маркера. Семантичко разумевање сцене омогућава препознавање хоризонталних и вертикалних равни, одређивање осветљења и постављање виртуелних објеката у реално окружење.

Главне тачке

  • ARKit — Apple фрејмворк за проширену стварност на iOS-у, представљен 2017. године са iOS 11.
  • Motion Tracking — технологија праћења положаја уређаја у простору без спољних маяка.
  • Scene Understanding — препознавање равни, граница и објеката у реалном окружењу корисника.
  • ARAnchor — објекат који фиксира положај виртуелног садржаја у реалној сцени.
  • ARSCNView — главна класа за рендеровање 3D садржаја заснованог на SceneKit-у.

Шта је ARKit?

ARKit — Apple-ов фрејмворк проширене стварности, најављен на WWDC 2017 заједно са iOS 11. Он обједињује могућности камере, процесора покрета M-серије и неуронског мотора A-чипова за стварање импресивног AR искуства без потребе за специјализованом опремом — довољан је само iPhone или iPad.

ARKit користи технологију Visual-Inertial Odometry (VIO), која обједињује податке са камере и инерцијалних сензора Core Motion за прецизно праћење кретања уређаја у простору. VIO омогућава фрејмворку да разуме где се уређај налази у односу на окружење, без употребе GPS-а или спољних маркера.

Према Apple WWDC 2024, ARKit 6 се подржава на уређајима са A12 чипом и новијим (iPhone XS, iPad Pro 2018+). Број AR апликација у App Store-у премашио је 15 хиљада, а укупна површина препознатих равни у свим AR сесијама премашује 100 милијарди квадратних метара.

Еволуција ARKit-а

Током шест верзија, ARKit је добио значајна побољшања: ARKit 1.0 (iOS 11) — основно праћење и препознавање равни; ARKit 2.0 — заједничке AR сесије путем ARWorldMap-е и детекција 3D објеката; ARKit 3.0 — праћење људског тела, сегментација особа и истовремене предње и задње камере.

ARKit 4.0 је представио LiDAR Scanner за тренутно одређивање дубине и непрозирности објеката, као и Location Anchor за повезивање AR садржаја са GPS координатама. ARKit 6 је додао 4K видео са HDR-ом, Plane Estimation помоћу LiDAR-а и побољшану обраду оклузије.

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)

Како ARKit ради

ARKit ради кроз циклус AR сесије, која се покреће са конфигурацијом и непрекидно анализира видео ток са камере. Сваки оквир фрејмворк израчунава положај уређаја (6 степени слободе), ажурира мапу препознатих равни и коригује положај виртуелних објеката — све то са фреквенцијом од 60 оквира у секунди.

VIO процес се састоји од два паралелна тока: алгоритам визуелне одометрије прати кретање карактеристичних тачака (feature points) између оквира, а инерцијални сензори Core Motion предвиђају кретање у кратким интервалима када се камера брзо помера или је слика замућена. Комбиновање две методе даје прецизност праћења до 1 центиметра.

Према Apple-у, ARKit обрађује до 500 карактеристичних тачака по оквиру, а величина мапе окружења (ARWorldMap) може достићи 100 метара у пречнику. Скенирање окружења и изградња мапе траје око 2–3 секунде након покретања сесије — све то време ARKit прикупља податке са камере и сензора.

ARAnchor и постављање објеката

ARAnchor — кључни објекат за постављање садржаја. Када ARKit препозна раван, креира ARPlaneAnchor са навођењем положаја, величине и оријентације површине. Програмер реагује на делегат session(_:didAdd:) и поставља 3D објекат на место детекције равни путем SceneKit-а или RealityKit-а.

За реализацију превлачења објеката користи се ARHitTestResult: при додиру екрана извршава се hit-test кроз ARKit оквир, који враћа тачку пресека зрака са препознатим равнима. Пронађена тачка се претвара у ARAnchor, а објекат се фиксира у том положају.

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

Кључне могућности ARKit-а

ARKit пружа скуп технологија које чине проширену стварност реалистичном и функционалном: праћење покрета са 6 степени слободе, разумевање сцене кроз препознавање равни и граница, процена осветљења за правилно наношење сенки, оклузија особа и рефлектујуће површине на основу мапа окружења.

Motion Capture (ARKit 3+) — технологија праћења људског тела у реалном времену кроз камеру. Омогућава анимирање ликова покретима корисника без спољних сензора: препознаје се 18 зглобова са фреквенцијом од 60 Hz. Користи се у фитнес апликацијама и за прототиповање анимација.

Заједничке AR сесије (ARKit 2+) омогућавају више уређаја да виде исте виртуелне објекте у заједничком простору. ARWorldMap чува мапу окружења која се преноси другим уређајима преко мреже. Apple наводи пример прецизности синхронизације: два iPhone 12 Pro у истој просторији виде објекат са одступањем не већим од 2 центиметра.

Рад са LiDAR-ом

LiDAR скенер, инсталиран на iPhone 12 Pro и новијим, коренито мења могућности ARKit-а. Уместо програмског одређивања дубине кроз анализу слика, LiDAR тренутно даје мапу дубине са прецизношћу до 3 центиметра у опсегу до 5 метара. Ово омогућава ARKit-у да препозна равни тренутно, без претходног скенирања камером.

Помоћу LiDAR-а ARKit може одредити непрозирност објеката: виртуелни објекат може се сакрити иза реалне столице или стола. Поред тога, Scene Reconstruction гради 3D мрежу окружења у реалном времену — до 10 милиона полигона по просторији, што се користи за симулацију физике судара и реалистично осветљење.

swift
// LiDAR конфигурација
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh

arView.session.run(lidarConfig)

// Детекција додира на равни
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
        )
}

Интеграција ARKit-а у апликацију

Интеграција ARKit-а почиње са минималним захтевима: Xcode 15+, iOS 17 SDK, уређај са A12 Bionic чипом и новијим. У Info.plist је потребно додати кључ NSCameraUsageDescription — ARKit користи камеру за праћење и приказ AR сцене. Без овог кључа апликација ће се завршити грешком при покретању AR сесије.

За рендеровање садржаја iOS нуди три фрејмворка: SceneKit за 3D графику средњег нивоа сложености, RealityKit за фотореалистично рендеровање са PBR материјалима и Metal за максималне перформансе. RealityKit — препоручени избор за нове пројекте, јер укључује уграђену подршку за ARKit функције, анимацију и физику.

Према Apple-у, просечно време интеграције основног AR екрана у постојећу апликацију — око 2 сата за искусног iOS програмера. Главне тешкоће настају при раду са постављањем UI елемената на AR сцену и при обради прекида AR сесије — позива, пребацивања апликација или губитка праћења при слабом осветљењу.

Обрада грешака и отказивања

ARKit може изгубити праћење у низу ситуација: недовољно осветљење (мање од 100 лукса), одсуство карактеристичних тачака (једнобојни зидови), брзи покрети камере или покривање сочива. Делегат ARSessionDelegate пружа методе за обраду ових стања — препоручује се приказивање кориснику савета: „Померајте уређај спорије” или „Укључите осветљење”.

За опоравак након отказа, ARKit аутоматски покреће релокализацију — покушава да усклади тренутни видео ток са сачуваном мапом окружења. Ако релокализација није могућа, сесија се поново покреће са новом конфигурацијом. Препоручује се чување ARWorldMap-е при изласку из апликације за брзо враћање AR сцене при повратку.

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("Сесија је прекинута")
    }
}

Често постављана питања

На којим уређајима ради ARKit?

ARKit ради на Apple уређајима са A12 Bionic чипом и новијим: iPhone XS, XR, 11, 12, 13, 14, 15, 16 и SE (2. и 3. генерације), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. За LiDAR функције су потребни iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max и iPad Pro 2020+.

Може ли се ARKit користити без SceneKit-а или RealityKit-а?

Да, ARKit се може користити директно са Metal-ом, али то захтева писање сопственог shader-а и рендеровања. SceneKit и RealityKit пружају готовa решења са интеграцијом ARKit-а на нивоу фрејмворка. За почетнике, RealityKit је оптималан избор, јер аутоматски обрађује ARKit функције.

Како ARKit обрађује промену осветљења?

ARKit аутоматски процењује осветљење сцене кроз камеру и пружа податке о правцу, интензитету и температури боје извора светлости путем AREnvironmentProbeAnchor-а. Ово омогућава виртуелним објектима да правилно бацају сенке и одражавају околину, стварајући реалистичну фузију са стварним светом.

По чему се ARKit разликује од ARCore-а?

ARKit ради само на iOS-у и користи Visual-Inertial Odometry за праћење, док ARCore од Google-а ради на Android-у и користи сопствени Motion Tracking заснован на IMU и камери. ARKit има предност захваљујући хардверској интеграцији са Apple чиповима, а ARCore — вишеплатформност кроз Cloud Anchors.

Може ли се ARKit користити за креирање игара?

Да, ARKit је идеалан за AR игре. SceneKit и RealityKit подржавају физику (SCNPhysicsBody, PhysicsSimulation), анимацију, звук и честице. Познати примери — Pokémon GO (користи сопствени погон са ARKit-ом), Angry Birds AR и Lego AR Studio. ARKit такође подржава вишекорисничке сесије путем ARWorldMap-е.

Закључак

  • ARKit — Apple фрејмворк проширене стварности заснован на Visual-Inertial Odometry из 2017. године.
  • 6 степени слободе — прецизно праћење положаја уређаја у тродимензионалном простору.
  • SceneKit и RealityKit — два фрејмворка за рендеровање AR садржаја са различитим нивоима сложености.
  • LiDAR обезбеђује тренутно одређивање дубине и реконструкцију окружења на Pro уређајима.
  • Заједничке сесије омогућавају више корисника да виде исте AR објекте.
  • Motion Capture прати 18 зглобова тела за анимацију ликова у реалном времену.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође