Jika Config.TextureUpdateMode
ditetapkan ke TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
, ARCore akan menyediakan buffer hardware Android saat Session.update()
dipanggil. Buffer hardware ini dapat terikat ke VkImage
Vulkan.
Melihat aplikasi contoh
Dukungan rendering Vulkan ditunjukkan di aplikasi contoh hello_ar_vulkan_c.
Mengaktifkan mode output buffer hardware
Config.TextureUpdateMode
yang dikonfigurasi menentukan cara ARCore akan memperbarui tekstur kamera. Jika ditetapkan ke TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
, ARCore akan memberikan gambar kamera melalui HardwareBuffer
.
Konfigurasikan sesi untuk menggunakan 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 } )
Mendapatkan buffer hardware
Jika TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
diaktifkan, gunakan Frame.getHardwareBuffer()
untuk mendapatkan buffer hardware:
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. }
Menggunakan buffer hardware selama rendering Vulkan
Lihat vulkan_handler.cc
untuk mengetahui contoh cara merender aplikasi AR menggunakan Vulkan.
Perangkat yang didukung
Dukungan rendering Vulkan hanya tersedia di Android API level 27 dan
di atas. Selain itu, perangkat harus mendukung ekstensi VK_ANDROID_external_memory_android_hardware_buffer
.
Mewajibkan Vulkan dalam manifes aplikasi
Google Play menggunakan <uses-feature>
yang dideklarasikan dalam manifes aplikasi Anda untuk memfilter
aplikasi dari perangkat yang tidak memenuhi persyaratan fitur
perangkat keras dan perangkat lunaknya.
Perangkat yang menggunakan Vulkan 1.0 mungkin tidak mendukung ekstensi yang diperlukan, tetapi perangkat
yang kompatibel dengan Vulkan 1.1 harus memiliki ekstensi yang diperlukan mulai dari Android 10 (API level 29).