Merender aplikasi AR menggunakan Vulkan di Android SDK (Kotlin/Java)

Jika Config.TextureUpdateMode disetel ke TextureUpdateMode.EXPOSE_HARDWARE_BUFFER, ARCore akan menyediakan buffer hardware Android saat Session.update() dipanggil. Buffering hardware ini dapat diikat ke VkImage Vulkan.

Lihat aplikasi contoh

Dukungan rendering Vulkan ditunjukkan dalam aplikasi contoh hello_ar_vulkan_c.

Mengaktifkan mode output buffer hardware

Config.TextureUpdateMode yang dikonfigurasi menentukan cara ARCore akan memperbarui tekstur kamera. Jika disetel ke TextureUpdateMode.EXPOSE_HARDWARE_BUFFER, ARCore akan menyediakan gambar kamera melalui HardwareBuffer.

Konfigurasi 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

Saat 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 (level API 29).