기본 개념

ARCore를 알아보기 전에 몇 가지 기본 개념을 이해하면 도움이 됩니다. 이러한 개념은 ARCore가 가상 콘텐츠가 실제 표면에 배치된 것처럼 보이게 하거나 실제 위치에 연결될 수 있는 환경을 만드는 방법을 보여줍니다.

모션 추적

휴대전화가 세계를 움직일 때 ARCore는 동시 현지화 및 매핑(SLAM)이라는 프로세스를 사용하여 휴대전화의 상대적인 위치를 파악합니다. ARCore는 캡처된 카메라 이미지에서 시각적으로 구분되는 특징인 특성을 감지하고 이 점을 사용하여 위치 변화를 계산합니다. 시각적 정보는 기기 IMU의 관성 측정값과 결합되어 시간이 지남에 따라 전 세계를 기준으로 카메라의 포즈 (위치 및 방향)를 추정합니다.

ARCore에서 제공하는 기기 카메라의 포즈로 3D 콘텐츠를 렌더링하는 가상 카메라의 포즈를 정렬하면 개발자는 가상 콘텐츠를 올바른 관점에서 렌더링할 수 있습니다. 렌더링된 가상 이미지는 기기의 카메라에서 가져온 이미지 위에 오버레이될 수 있으므로 가상 콘텐츠가 실제 세계의 일부인 것처럼 보이게 할 수 있습니다.

환경 이해

ARCore는 특성점과 평면을 감지하여 실제 환경에 대한 이해를 지속적으로 개선하고 있습니다.

ARCore는 테이블이나 벽과 같이 일반적인 수평 또는 수직 표면에 있는 것으로 보이는 특징점의 클러스터를 찾아 이러한 표면을 앱에서 기하학적 평면으로 사용할 수 있도록 합니다. ARCore는 각 기하학적 평면의 경계를 결정하고 이 정보를 앱에 제공할 수도 있습니다. 이 정보를 사용하여 평평한 표면에 가상 객체를 배치할 수 있습니다.

ARCore는 특성 포인트를 사용하여 평면을 감지하므로 흰색 벽과 같이 텍스처가 없는 평평한 표면은 제대로 감지되지 않을 수 있습니다.

깊이 이해

ARCore는 지원되는 기기의 기본 RGB 카메라를 사용하여 특정 지점에서 표면 간 거리 데이터가 포함된 깊이 맵을 만들 수 있습니다. 깊이 맵에서 제공하는 정보를 사용하면 가상 객체를 관찰된 표면과 정확하게 충돌하거나 실제 객체의 앞 또는 뒤에 가상 객체를 표시하는 등 몰입도 높고 현실적인 사용자 환경을 지원할 수 있습니다.

빛 추정

ARCore는 주변 환경의 밝기에 관한 정보를 감지하고 특정 카메라 이미지의 평균 강도와 색상 보정을 제공할 수 있습니다. 이 정보를 사용하면 주변 환경과 동일한 조건에서 가상 객체의 조명을 밝힐 수 있어 현실감이 높아집니다.

사용자 상호작용

ARCore는 히트 테스트를 사용하여 휴대전화 화면에 상응하는 (x, y) 좌표 (탭 또는 앱에서 지원하려는 다른 상호작용으로 제공됨)를 취하고 카메라의 세계로 광선을 투사하여 세계 공간에서 교차하는 포즈와 함께 광선이 교차하는 기하학적 평면 또는 특징점을 반환합니다. 이를 통해 사용자는 환경에서 객체를 선택하거나 다른 방식으로 상호작용할 수 있습니다.

방향이 지정된 점

방향이 지정된 점을 사용하면 비스듬한 표면에 가상 객체를 배치할 수 있습니다. 특성 포인트를 반환하는 히트 테스트를 실행하면 ARCore는 주변 특징 포인트를 확인하고 이를 사용하여 지정된 특성 포인트에서 표면의 각도를 추정하려고 시도합니다. 그러면 ARCore는 이 각도를 고려하는 포즈를 반환합니다.

ARCore는 특징점의 클러스터를 사용하여 표면의 각도를 감지하므로 흰 벽과 같이 질감이 없는 표면은 제대로 감지되지 않을 수 있습니다.

앵커 및 추적 가능 광고

ARCore가 자체 위치와 환경에 관한 이해를 개선함에 따라 포즈가 변경될 수 있습니다. 가상 객체를 배치하려면 ARCore가 시간이 지남에 따라 객체의 위치를 추적하도록 앵커를 정의해야 합니다. 사용자 상호작용에 설명된 대로 히트 테스트에서 반환한 포즈를 기반으로 앵커를 만드는 경우가 많습니다.

포즈가 변경될 수 있다는 사실은 ARCore가 시간이 지남에 따라 기하학적 평면 및 특징점과 같은 환경 객체의 위치를 업데이트할 수 있다는 것을 의미합니다. 평면과 지점은 추적 가능이라고 하는 특수한 유형의 객체입니다. 이름에서 알 수 있듯이 ARCore에서 시간이 지남에 따라 추적하는 객체입니다. 가상 객체를 특정 추적 가능 항목에 고정하면 기기가 움직이는 경우에도 가상 객체와 추적 가능 객체 간의 관계가 안정적으로 유지되도록 할 수 있습니다. 즉, 가상 Android 피규어를 책상에 배치한 경우 ARCore가 나중에 데스크와 연결된 기하학적 평면의 포즈를 조정하면 Android 피규어가 여전히 테이블 위에 놓여 있는 것처럼 보입니다.

자세한 내용은 앵커 작업을 참고하세요.

증강 이미지

증강 이미지는 제품 포장이나 영화 포스터와 같은 특정 2D 이미지에 응답할 수 있는 AR 앱을 빌드할 수 있는 기능입니다. 사용자는 휴대전화의 카메라로 특정 이미지를 향하게 하면 AR 환경을 트리거할 수 있습니다. 예를 들어 휴대전화의 카메라로 영화 포스터를 향하게 하고 등장인물이 튀어나와 장면을 연출할 수 있습니다.

ARCore는 움직이는 버스 측면의 광고판과 같은 움직이는 이미지도 추적합니다.

이미지를 오프라인으로 컴파일하여 이미지 데이터베이스를 만들거나 기기에서 실시간으로 개별 이미지를 추가할 수 있습니다. 등록되면 ARCore는 이러한 이미지와 이미지의 경계를 감지하고 상응하는 포즈를 반환합니다.

공유

ARCore Cloud Anchor API를 사용하면 Android 및 iOS 기기용 공동작업 또는 멀티플레이어 앱을 만들 수 있습니다.

클라우드 앵커를 사용하면 한 기기에서 호스팅을 위해 앵커 및 주변 기능 포인트를 클라우드로 전송합니다. 이러한 앵커는 동일한 환경의 Android 또는 iOS 기기에서 다른 사용자와 공유할 수 있습니다. 이렇게 하면 앱에서 이러한 앵커에 연결된 동일한 3D 객체를 렌더링하여 사용자가 동시에 동일한 AR 환경을 경험할 수 있습니다.

자세히 알아보기

원하는 플랫폼에서 AR 환경을 빌드하여 이러한 개념을 실제로 구현해 보세요.