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
를 사용하도록 세션을 구성합니다.
자바
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()
를 사용하여 하드웨어 버퍼를 가져옵니다.
자바
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을 사용하는 기기는 필수 확장 프로그램을 지원하지 않을 수 있지만
빌드하려면 Android 10 (API 수준 29)부터 필수 확장자가 있어야 합니다.