ARCore: шта је то, могућности и технологија проширене стварности

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

Платформа ARCore — Google-ово решење за проширену стварност на Android-у, које користи камеру и инерцијалне сензоре паметног телефона за праћење положаја у простору. Према Google AR Developers, 2025, платформа подржава Motion Tracking, Environmental Understanding и Light Estimation — три основне технологије за постављање виртуелних објеката у стварно окружење. Вишеплатформска архитектура омогућава програмерима да креирају AR апликације за Android, iOS, Unity и Unreal Engine са јединственом базом кода.

Главно

  • ARCore — Google-ова платформа за проширену стварност на Android-у, представљена 2018. године.
  • Motion Tracking — технологија праћења покрета уређаја заснована на IMU и анализи слике.
  • Environmental Understanding — препознавање равни, граница и рељефа површина.
  • Cloud Anchors — механизам синхронизације AR објеката између више уређаја преко облака.
  • ARCore SDK доступан за Android (Kotlin/Java), iOS, Unity и Unreal Engine.

Шта је ARCore?

ARCore — је платформа проширене стварности од Google-а, најављена 2018. године као наследник Project Tango-а у лакшем и приступачнијем формату. За разлику од Tango-а, који је захтевао специјализоване сензоре дубине, ARCore ради на стандардним Android паметним телефонима, користећи само камеру и инерцијалне сензоре (IMU).

ARCore користи три кључне технологије: Motion Tracking за праћење положаја уређаја, Environmental Understanding за откривање хоризонталних и вертикалних равни и Light Estimation за прилагођавање осветљења виртуелних објеката стварном окружењу. Ове три технологије омогућавају постављање AR објеката који изгледају природно на било којој површини.

Према Google I/O 2024, ARCore је подржан на преко 1 милијарди Android уређаја, укључујући Samsung, Xiaomi, Huawei, OnePlus, Google Pixel паметне телефоне и друге. Платформа је интегрисана са Google Play Services for AR, што омогућава ажурирање ARCore-а преко Google Play Store-а независно од верзије Android-а.

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

Кроз шест верзија, ARCore је прошао значајну еволуцију: ARCore 1.0 — основно праћење и препознавање равни; ARCore 1.2 — вертикалне равни и Augmented Images; ARCore 1.7 — Cloud Anchors за сесије са више корисника; ARCore 1.10 — Augmented Faces за праћење израза лица.

ARCore 1.20+ укључује Scene Semantic Understanding — препознавање категорија објеката (под, плафон, зид, намештај, биљка, врата) преко ML модела TensorFlow Lite на уређају. Street View Geometry API омогућава коришћење мапа дубине Google Street View-а за AR навигацију на отвореном.

kotlin
// Иницијализација ARCore сесије
val session = Session(context)
val config = Config(session)
config.lightEstimationMode =
    Config.LightEstimationMode.ENVIRONMENTAL_HDR
config.planeFindingMode =
    Config.PlaneFindingMode.HORIZONTAL_AND_VERTICAL
session.configure(config)

// Обрада оквира
val frame = session.update()
val pointCloud = frame.acquirePointCloud()
val planes = session.getAllTrackables(
    Plane::class.java
)

Како ради ARCore

ARCore користи хибридни приступ: IMU (инерцијални мерни модул) предвиђа положај уређаја високом фреквенцијом (до 1000 Hz), а визуелна одометрија исправља грешке на основу анализе карактеристичних тачака са камере фреквенцијом 30–60 Hz. Овај приступ обезбеђује прецизност праћења од око 1–2 центиметра у стационарним условима.

Процес Environmental Understanding ради у три фазе: прво ARCore проналази карактеристичне тачке (feature points) на слици са камере, затим одређује скупове тачака које леже на истој равни и апроксимира их у полигон. Након препознавања равни, ARCore креира Trackable објекат типа Plane, који се ажурира како пристижу нови оквири.

Према Google-у, ARCore одређује раван величине од 10x10 центиметара на удаљености до 1 метра од камере. За просечне просторије (соба 20 m²) потпуно скенирање равни траје око 2–4 секунде. При коришћењу Depth API са подршком за ToF сензор, прецизност препознавања се повећава за 40%.

Depth API и Scene Mesh

Depth API — технологија ARCore-а која гради мапу дубине сцене на основу стерео анализе слике са камере. На уређајима са ToF сензором (Time-of-Flight) мапа дубине се добија тренутно са прецизношћу до 2 цм. На уређајима без мерача дубине Depth API користи машинско учење за процену дубине из једног оквира, што даје прецизност од око 10 цм.

Scene Mesh — тродимензионална мрежа окружења коју ARCore гради у реалном времену. Мрежа се користи за физику судара, оклузију виртуелних објеката и наношење сенки. Scene Mesh је доступан на уређајима са OpenGL ES 3.1 и подршком за Depth API, укључује до 500 хиљада полигона по оквиру.

kotlin
// Добијање мапе дубине
val depthImage = frame.acquireDepthImage16Bits()

// Постављање објекта на препознату раван
val hitResult = frame.hitTest(x, y)
    .firstOrNull { it.trackable is Plane }

hitResult?.let { result ->
    val anchor = session.createAnchor(
        result.hitPose
    )
    val model = ModelRenderable.builder()
        .setSourceId(R.raw.my_model)
        .build()
        .exceptionally { null }

    AnchorNode(anchor).apply {
        this.renderable = model.get()
    }
}

ARCore и ARKit: поређење

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

Кључне разлике: ARCore ради на Android-у и iOS-у преко ARCore SDK-а, ARKit — само на iOS-у. ARCore користи Cloud Anchors за синхронизацију преко Firebase-а, ARKit — ARWorldMap за директну размену између уређаја. ARCore са Depth API подржава ToF сензоре, ARKit са LiDAR-ом — ласерско скенирање са прецизношћу до 3 цм.

Према Google-овим упоредним тестовима 2024, прецизност праћења ARCore-а на уређајима са жироскопом и ToF сензором упоредива је са ARKit-ом на iPhone-у са LiDAR-ом — грешка не прелази 2 цм на удаљености од 2 метра. На уређајима без ToF-а ARCore заостаје за ARKit-ом по брзини иницијализације: 3 секунде према 0.5 секунди.

Избор између ARCore-а и ARKit-а зависи од циљне публике: ако је апликација намењена само за iOS — ARKit пружа боље перформансе и приступ ексклузивним LiDAR функцијама. Ако је потребна подршка за обе платформе — ARCore са ARCore iOS SDK-ом омогућава коришћење јединствене базе кода са минималним разликама платформе, мада уз губитак неких хардверских могућности сваке платформе.

КарактеристикаARCoreARKit
ПлатформаAndroid + iOS + Unity/Unrealсамо iOS
Сензор дубинеToF (опционо)LiDAR (Pro модели)
СинхронизацијаCloud Anchors (Firebase)ARWorldMap (Multipeer)
Праћење лицаAugmented FacesFace Tracking (TrueDepth)
Прецизност VIO1–3 цм0.5–1 цм

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

Интеграција ARCore-а почиње додавањем зависности Google Play Services for AR у build.gradle: com.google.ar:core. Апликација треба да провери доступност ARCore-а на уређају преко ArCoreApk.checkAvailability() — ако ARCore није инсталиран, предложи кориснику да га инсталира из Google Play Store-а.

Основни ARCore пројекат укључује: креирање Session и Config, подешавање SurfaceView-а за приказ камере, покретање сесије преко session.resume() и обраду оквира преко session.update(). За рендеровање 3D објеката користи се Sceneform SDK (Google-ова библиотека заснована на Filament-у) или Unity/Unreal за сложене сцене.

Google препоручује Sceneform за Kotlin апликације — он пружа готове компоненте: ModelRenderable за учитавање 3D модела (OBJ, glTF, FBX), ViewRenderable за уграђивање Android View-а у AR сцену и MotionEvent за обраду додира. Sceneform аутоматски управља животним циклусом AR сесије и ослобађањем ресурса.

Обрада грешака праћења

ARCore може изгубити праћење при недовољном осветљењу, једноличним површинама или брзим покретима уређаја. Статус праћења је доступан преко frame.getTrackingState() — вредности TRACKING, PAUSED и STOPPED. При преласку у PAUSED препоручује се заустављање рендеровања и приказивање препорука кориснику: „Померајте уређај спорије” или „Пређите у осветљеније место”.

За аутоматски опоравак након грешке, ARCore подржава релокализацију на основу сачуване мапе карактеристичних тачака. Програмер може сачувати мапу преко session.serialize() и повратити је преко session.deserialize() — ово је корисно за дуготрајна AR искуства где се корисник враћа у исти физички простор. Опоравак мапе траје 1–2 секунде, под условом да се окружење није значајно променило.

kotlin
class ARCoreActivity : AppCompatActivity() {

    private lateinit var session: Session

    override fun onResume() {
        super.onResume()
        when (ArCoreApk.getInstance()
            .checkAvailability(this)
        ) {
            ArCoreApk.Availability.SUPPORTED_INSTALLED -> {
                session = Session(this)
                session.resume()
            }
            else -> {
                showInstallPrompt()
            }
        }
    }
}

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

Који уређаји подржавају ARCore?

ARCore је подржан на преко 1 милијарди Android уређаја, укључујући Google Pixel 2+, Samsung Galaxy S7+, Xiaomi Mi 8+, Huawei P20+, OnePlus 6+, Sony Xperia XZ2+ и многе друге. Комплетна листа сертификованих уређаја објављена је на сајту developers.google.com/ar/devices.

Да ли је за рад ARCore-а потребан интернет?

Основне функције ARCore-а — Motion Tracking и Environmental Understanding — не захтевају интернет. Cloud Anchors и Augmented Images са облачним везама захтевају конекцију. Depth API и Scene Mesh раде у потпуности на уређају без повезивања на мрежу.

Могу ли се креирати AR апликације без Sceneform-а?

Да, ARCore се може користити директно са OpenGL ES 3.1, са Unity или Unreal Engine. Sceneform је препоручена опција за једноставне пројекте у Kotlin-у, али није обавезан. За сложене 3D сцене са реалистичном физиком боље је користити играчке погоне са подршком за ARCore SDK.

Како ARCore ради у затвореном и на отвореном?

ARCore је оптимизован за затворене просторе са довољним осветљењем (100–500 лукс). На отвореном при јаком сунцу прецизност праћења може се смањити због преосветљености камере. За рад на отвореном Google препоручује коришћење Street View Geometry API-ја, који пружа мапе дубине за урбане локације.

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

Scene Viewer — је готова Google UI компонента за преглед 3D модела у AR-у без писања кода, која ради преко WebXR-а. ARCore је пуноправни SDK за креирање прилагођеног AR искуства са програмском контролом над свим аспектима сесије, праћења и рендеровања.

Резиме

  • ARCore — вишеплатформска AR платформа од Google-а, која ради на Android-у и iOS-у.
  • Motion Tracking користи хибрид IMU-а и визуелне одометрије за прецизно позиционирање.
  • Cloud Anchors обезбеђују AR сесије са више корисника са синхронизацијом преко Firebase-а.
  • Depth API гради мапу дубине сцене — програмски или преко ToF сензора.
  • Sceneform — препоручени SDK за креирање AR апликација у Kotlin-у са минималним кодом.
  • Компатибилност — преко 1 милијарде Android уређаја са ARCore сертификацијом.
  • Избор између ARCore-а и ARKit-а зависи од циљне платформе и захтева за прецизношћу.

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

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

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

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