지난 글에서 ARCore를 이용한 개발과정에 대하여 간략하게 살펴보았습니다.
스마트폰의 다양한 센서로부터 데이터를 수집하고 평면을 인식하기 위한 사전작업을 수행하는 과정까지는 모든 앱에서 동일하게 적용되는 부분입니다.
해당 기능에 대한 처리는 ARCore에서 이미 기능을 제공하고 있습니다만 실제로 사용하기 위해서는 이것저것 작업을 해 주어야 합니다.
여기서 우리는 두 가지의 방법을 생각해 볼 수 있습니다.
먼저 ARCore가 제공하는 기본적인 기능을 이용하여 특징점을 추출하고 포인트 클라우드를 구성, 평면을 인식하기까지의 과정을 직접 제어해 주는 방법이 있습니다.
각 데이터를 사용하기 위해서는 OpenGL을 이용한 렌더링 과정이나 데이터 처리과정도 거쳐야 하므로 작업이 좀 까다롭습니다.
렌더링 과정에서는 카메라의 데이터를 읽고 렌더링하는 단계, 포인트 클라우드를 계산하고 렌더링하는 단계가 필요하고, 평면을 인식하기 위해서는 앞에서 처리된 데이터를 이용하여 평면을 위한 데이터를 렌더링하는 단계가 필요합니다.
ARCore의 기능과 함께 OpenGL에 대해서도 어느정도 알고 있어야 하죠.
또 다른 방법으로는 ARCore에서 제공하는 3D 프레임워크인 Sceneform SDK를 사용하는 방법이 있습니다.
Sceneform SDK는 1.0.0~1.15.0 버전까지는 비공개로 개발되어 오다가 1.16.0 버전부터 오픈소스로 제공되고 있습니다.
( github.com/google-ar/sceneform-android-sdk )
Sceneform SDK는 모바일 장치에 최적화 된 물리적 기반의 렌더러를 포함하는 3D 프레임워크입니다.
OpenGL을 직접 사용하지 않고도 AR 앱을 쉽게 만들 수 있게 도와줍니다.
두 가지 방법 중에서 쉬운 방법은 Sceneform을 사용하는 방법이고 그 결과의 품질도 좋습니다만 내부를 제대로 알지 못하면 세부적인 제어는 어렵다는 것이 단점이겠죠.
그러나 일반적인 AR 앱을 만드는 데에는 문제가 없을 것입니다.
직접 제어하는 방법은 세부적인 처리를 직접 관리할 수 있다는 것은 장점이겠지만 OpenGL을 포함해서 더 많은 관련 지식이 필요하며 작업량이 늘어난다는 사실은 단점이 될 것입니다.
또한 어차피 ARCore를 사용하기때문에 진짜 세부제어는 하지 못한다는 것은 Sceneform과 크게 다르지 않습니다.
구글 Play Store와 같은 앱 마켓을 둘러보면 상당히 많은 AR 앱이 올라오고 있는 것을 볼 수 있는데 개발해보려고 자료를 찾아보면 의외로 자료가 부족합니다.
가장 좋은 자료는 구글에서 제공하는 개발자 문서이겠지만 처음 접하는 사람에겐 벽이 높습니다.
인터넷을 뒤져보면 유사한 자료는 많이 볼 수 있지만 그 범위를 벗어난 자료는 잘 보이지 않죠.
주로 볼 수 있는 자료는 평면을 인식해서 그 위에 안드로보이와 같은 3D 객체를 배치하는 단계까지 입니다.
그 이상으로 무엇인가를 만들고자 한다면.. 예를 들어 내 방을 카메라로 보면 방의 각 모서리를 인식, 선을 그어서 입체적인 조감도를 그리고자 한다.. 라던가..
3D 객체나 정해진 위치에 정보를 출력해 주는 형태가 아닌 다른 AR앱을 개발하려고 하면 자료가 매우 부족합니다.
"프로젝트/AR(증강현실) App 개발하기 카테고리"에서는 그런 부분을 하나씩 찾아가면서 다루어보겠습니다.
저도 AR 앱 개발 쪽은 처음 시작하는 중이라 진행속도는 꽤 느릴 것으로 보입니다만 하나씩 꾸준히 글을 올리도록 하겠습니다.
'관련 기술 > AR(증강현실)' 카테고리의 다른 글
Sceneform을 적용하여 기본 AR앱을 만들어보자 (2) (11) | 2020.07.30 |
---|---|
Sceneform을 적용하여 기본 AR앱을 만들어보자 (1) (0) | 2020.07.30 |
ARCore를 이용한 개발 과정을 생각해보자 (0) | 2020.06.29 |
ARCore 프로젝트 생성 및 초기설정 하기 (0) | 2020.06.28 |
ARCore 개발환경 설정 (0) | 2020.06.25 |