ARSession

코린이·2022년 4월 10일
0

ARKit

목록 보기
3/3

ARSession은 애플 공식 문서를 찾아보았다. 하지만 정확한 개념을 이해하지 못한거 같아 인터넷에 검색하며 찾으니 좀 이해가 되는 기분이다.

ARSession

  • AR경험을 제어하는데 사용하는 메인 Object
  • ARKit이 수행하는 프로세스를 조정하여 증강 현실 경험을 생성
    (데이터 읽기, 내장 카메라 제어, 카메라 이미지 분석 등등)

이러한 여러가지 데이터를 합성하여 휴대폰이 있는 실제 공간과 AR Object를 모델링하는 가상 공간 간의 대응 관계 설정을 한다.

-> 모든 AR 기능을 사용하려면 ARSession이 필요하다.
AR을 이용하면 대부분 카메라에 표시되는 물체를 분석하는데, 이러한 분석을 ARSession에서 처리하기 때문에 필요하다고 이해하였다.

ARSession LifeCycle

ARSession 생명 주기도 공식문서에 있어 궁금해서 공부했다.

World-Tracking AR Session은 시각적 관성 주행 거리 측정 이라는 기술을 사용하는데, 이 기술은 모션 센서 데이터를 카메라 이미지 분석과 결합하여 실제 공간에서 장치의 위치와 방향을 추적한다. 라고 적혀있다.

결론은 모션 센서와 카메라 이미지 분석을 이용해 사용자 기기의 위치와 방향을 추적한다는 말이다.

LifeCycle은 크게 3가지로 분류된다.

  • Not available (이용 불가)
  • Limited(Initializing) - 초기화중
  • Normal (이용 가능)

새로운 세션을 생성하면 Not available 상태 인데, 이 상태는 장치의 포즈(위치와 방향)을 추적하기에 정보가 부족한 상태.

몇 프레임 후 Limited 상태가 되는데, 위치와 방향을 추적하지만 정확성은 조금 떨어지는 단계이다. 이 상태의 경우 ARKit을 사용하는 기능을 사용할 수 없다.

Limited 상태 이후는 Normal 상태로 ARKit의 모든 기능을 사용할 수 있게된다.

ARKit은 ARSession없이 장치의 포즈를 추적할 수 없다. 만약 세션이 중단되면 relocalization을 통해 복구를 할 수 있다. relocalization이 성공려면 장치를 중단 되었을때 있던 위치로 돌아가야한다. 돌아가지않으면 세션은 무기한 중단 상태가 된다.

말이 조금 어렵지만 세션이 도중에 중단되면 relocalization을 통해 복구를 할 수 있는데, 이 과정에서 중단된 위치로 다시 돌아가야한다는 것으로 이해했다.그러면 이 세션이 중단될 때 그 중단된 위치를 저장해야하는데, 이 기능은 iOS 12.0 이상 부터 지원한다.
그렇지만 이 모든 정보를 저장하는게 아니라, ARSession에 저장할만한 가치가 있는것들만 저장을한다.

profile
iOS 개발자 꿈나무

0개의 댓글