해당 글은 ARCore에 대해서 공부하면서 노션에서 작성한 것을 그대로 복사하여 가져온 것입니다. AndroidStudio 내에서 AR를 구현하는 것에 대한 한글 최신 자료가 없어서 이곳저곳에 떠돌아다니며 나름대로 정리한 내용으로 저처럼 이미 deprecated된 2020년 쯤의 sceneform자료와 Android AR를 검색하면 나오는 seceneform 1.5.0 이하 버전 구글 공식문서에 속아 힘들어 할 미래의 AR 초보분들을 위해서 최신정보(2023.06.27 기준)가 검색이 되도록 기록을 남깁니다.
네 가지의 파일 확장자는 3D 모델 파일의 확장자이다. 더 자세한 3D 모델 확장자가 존재하지만, ARCore에서 자주 언급되는 네 가지만을 소개한다. (확장자들에 대한 상세 정보)
하나의 파일로 출력
기타 API를 사용하여 응용 프로그램의 런타임 처리를 최소화
ex) WebGL
최적화가 이루어져 가벼움
여러 개의 파일 출력 → 결과물 = 파일 그룹
기타 API를 사용하여 응용 프로그램의 런타임 처리를 최소화
ex) WebGL
최적화가 이루어져 가벼움
AR용 Google Play Service으로 구글에서 개발한 AR 소프트웨어 개발 키트이다. AR과 관련된 API를 제공하며 최근에 지리 정보 API(Geospatial API)도 추가되었다. 다른 여타 구글 API와 마찬가지로 Google Cloud를 통해 API를 관리할 수 있다.
ARCore 및 지원되는 개발 환경 개요 | Google for Developers
ARCore를 이용하기 위해선 OpenGL ES가 필요하고 Android7.0(에뮬레이터 8.1이상)이상이 필요하다. 따라서 API 수준은 필수로 ARCore를 사용한다면 24이상, 선택적인 ARCore라면 19이상으로 제한을 둬야 한다.
반드시 테스트하기 전에 공식 문서로 가서 테스트 기기가 지원하는지 확인해야 한다. 안 그러면 테스트 자체가 불가능할 수 있다. ARCore도 비교적 고사양 스마트폰을 필요로 해서 지원하는 기기가 일반적인 API보다 훨씬 적다. ARCore를 지원해도 AR 관련 API 중 특정 하드웨어 장치가 필요한 (특히 depth API) API가 존재한다.
//ARCore 라이브러리
implementation 'com.google.ar:core:1.37.0'
//obj 파일을 읽기 위한 라이브러리
implementation 'de.javagl:obj:0.2.1'
//카메라 권한
<uses-permission android:name="android.permission.CAMERA"/>
<!-- Limits app visibility in the Google Play Store to ARCore supported devices
(https://developers.google.com/ar/devices). -->
<uses-feature android:name="android.hardware.camera.ar" android:required="true"/>
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
<application
...
...
...>
<activity
...
.../>
//ARCore 사용 명시 및 ARCore 사용이 필수(required)인지 선택(optional)인지 명시
<meta-data android:name="com.google.ar.core" android:value="required" />
</application>
ARCore를 기본 제공 라이브러리로 다루는 예제로 Open GL를 다루는 함수를 통해 그래픽 렌더링과 ARCore를 다루면서 발생하는 세션의 라이프사이클을 다룬다. 예제의 코드는 복잡하고 관련 지식이 없다면 파악하기 어렵다는 특징을 가지고 있다.
개요에 북마크되어 있는 공식문서에서 예제와 지원기기에 대한 정보를 알아볼 수 있다.
https://github.com/SceneView/sceneview-android
Open GL없이 ARCore 앱을 쉽게 빌드할 수 있도록 만들어진 3D 프레임워크로 구글이 관리한다. 기본적인 상황에서 ARCore를 다루는 것보다 편의성이 높고 AR를 다루는데 필수적으로 필요한 요소들을 자동으로 import해주며 권한 설정을 해준다는 특징이 있다.
GitHub의 README가 공식 문서라고 봐도 됩니다.
GitHub - Gebort/FESTU.Navigator: Kotlin AR app for indoor navigation
라이브러리 제작자 예시
Create AR app in Android Studio under 15 minutes | Beginner's Tutorial
AR앱 튜토리얼 (초보자용)
android{
...
...
aaptOptions{
noCompress '확장자명'
}
}
⭐ 저작권 위반을 피하기 위해선 모든 사이트에서 저작물에 대한 라이센스를 주의해야 한다.
⭐ 라이센스별로 제한된 사항을 확인하기 힘들 경우 CC0 라이센스(저작권 없는 무료 저작물)를 가진 저작물만 사용하세요.
다양성 : 높음
무료자료 수 <<<<<< 유료자료 수
라이센스 주의 및 패러디, 2차 창작 작품 혹은 기존 저작물의 저작권을 무시한 저작물인지 확인 필요