VR

[AR 개발] 애플 ARKit의 핵심 기능 3가지 완벽 정리 (feat. World Tracking)

103105 2026. 1. 27. 10:12

증강현실(AR) 개발을 시작할 때 가장 먼저 접하게 되는 도구 중 하나가 바로 애플의 ARKit입니다. 오늘은 과거 인벤(Inven) 기사를 통해 정리했던 ARKit의 핵심 기능들을 다시 한번 복기하며, 개발자가 꼭 알아야 할 포인트들을 정리해 보려 합니다.

1. 월드 트래킹 (World Tracking): 카메라가 곧 눈이다

기존 스마트폰 AR이 단순히 자이로 센서(기울기)나 GPS에 의존했다면, ARKit은 VIO(Visual Inertial Odometry) 기술을 통해 카메라로 세상을 직접 봅니다.

  • 작동 원리: 카메라로 들어오는 이미지에서 특징점(Feature Point)을 찾습니다. 물체의 모서리나 색이 변하는 지점을 3D 공간의 좌표로 인식하여 디바이스의 정확한 위치와 방향을 계산합니다.
  • 한계점 (개발 시 주의사항):
    • 비주얼적 복잡도 필요: 하얀 벽이나 어두운 곳에서는 특징점을 찾기 힘들어 트래킹이 풀립니다.
    • 동적 물체 인식 불가: 움직이는 물체보다는 고정된 환경을 추적하는 데 최적화되어 있습니다.
    • 세션 의존성: 카메라 세션이 끊기면 추적 정보도 사라집니다.

2. 씬 언더스탠딩 (Scene Understanding): 바닥을 찾아라

가상의 물체를 현실에 자연스럽게 올려놓기 위해선, 현실의 '물리적 표면'을 이해해야 합니다. 이를 위해 ARKit은 3가지 단계를 거칩니다.

  1. 평면 감지 (Plane Detection): 중력 방향을 기준으로 수평면(테이블, 바닥)을 찾아내어 ARPlaneAnchor를 생성합니다.
  2. 히트 테스팅 (Hit Testing): 화면을 터치했을 때, 그 2D 좌표가 실제 3D 공간의 어떤 평면이나 특징점과 만나는지 계산합니다. 이를 통해 터치한 곳에 정확히 가상 물체를 소환할 수 있습니다.
  3. 조명 추정 (Light Estimation): 카메라로 들어오는 빛의 세기를 분석해 가상 물체에도 비슷한 조명을 적용합니다. (현실이 어두우면 가상 캐릭터도 어둡게, 밝으면 밝게!)

3. 렌더링 (Rendering): 무엇으로 그릴 것인가?

ARKit은 트래킹 정보를 제공할 뿐, 실제 화면에 그래픽을 그려주는 건 렌더링 엔진의 몫입니다. 애플은 크게 두 가지 선택지를 제공합니다.

  • SceneKit: 3D 그래픽을 위한 엔진 (가장 보편적)
  • SpriteKit: 2D 그래픽을 위한 엔진 (2D AR 게임 등)
  • (물론, Unity나 Unreal 엔진을 사용하는 경우가 더 많지만요!)

ARKit이 처음 나왔을 때만 해도 "바닥을 인식한다"는 것 자체가 혁신이었습니다. 하지만 지금은 LiDAR 센서가 탑재된 아이패드와 아이폰 프로 모델이 나오면서, 단순한 평면 인식을 넘어 공간 전체를 3D 메쉬로 스캔(Scene Reconstruction)하거나 사람의 관절을 추적(Body Tracking)하는 수준까지 발전했습니다.

하지만 모든 기술의 근간은 오늘 정리한 '월드 트래킹'과 '평면 감지'에 있습니다. 이 기본 원리를 이해해야 최신 기능인 ARKit 6, 7의 고급 기능들도 자유자재로 다룰 수 있겠죠?