Config.TextureUpdateMode
가 TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
로 설정되면 Session.update()
가 호출될 때 ARCore가 Android 하드웨어 버퍼를 제공합니다. 이 하드웨어 버퍼는 Vulkan VkImage
에 바인딩될 수 있습니다.
샘플 애플리케이션 보기
Vulkan 렌더링 지원은 hello_ar_vulkan_c 샘플 앱에서 설명합니다.
하드웨어 버퍼 출력 모드 사용 설정
구성된 Config.TextureUpdateMode
에 따라 ARCore에서 카메라 텍스처가 업데이트되는 방법이 결정됩니다. TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
로 설정하면 ARCore에서 HardwareBuffer
를 통해 카메라 이미지를 제공합니다.
TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
를 사용하도록 세션을 구성합니다.
Java
Config config = session.getConfig(); config.setTextureUpdateMode(Config.TextureUpdateMode.EXPOSE_HARDWARE_BUFFER); session.configure(config);
Kotlin
session.configure( session.config.apply { textureUpdateMode = Config.TextureUpdateMode.EXPOSE_HARDWARE_BUFFER } )
하드웨어 버퍼 가져오기
TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
가 사용 설정되면 Frame.getHardwareBuffer()
를 사용하여 하드웨어 버퍼를 가져옵니다.
Java
try { HardwareBuffer buffer = frame.getHardwareBuffer(); // Use the buffer object in your rendering. } catch (NotYetAvailableException e) { // The hardware buffer is not ready yet. }
Kotlin
try { val buffer = frame.hardwareBuffer // Use the buffer object in your rendering. } catch (e: NotYetAvailableException) { // The hardware buffer is not ready yet. }
Vulkan 렌더링 중에 하드웨어 버퍼 사용
Vulkan을 사용하여 AR 애플리케이션을 렌더링하는 방법의 예는 vulkan_handler.cc
를 참고하세요.
지원되는 기기
Vulkan 렌더링 지원은 Android API 수준 27 이상에서만 사용할 수 있습니다. 또한 기기가 VK_ANDROID_external_memory_android_hardware_buffer
확장 프로그램을 지원해야 합니다.
앱 매니페스트에 Vulkan 요구
Google Play는 앱 매니페스트에 선언된 <uses-feature>
를 사용하여 하드웨어 및 소프트웨어 기능 요구사항을 충족하지 않는 기기에서 앱을 필터링합니다.
Vulkan 1.0을 사용하는 기기는 필수 확장 프로그램을 지원하지 않을 수도 있지만 Vulkan 1.1과 호환되는 기기에는 Android 10 (API 수준 29)부터 필요한 확장 프로그램이 있어야 합니다.