Android SDK'sında (Kotlin/Java) Vulkan'ı kullanarak AR uygulamanızı oluşturma

Config.TextureUpdateMode TextureUpdateMode.EXPOSE_HARDWARE_BUFFER olarak ayarlandığında ARCore, Session.update() çağrıldığında bir Android donanım arabelleği sağlar. Bu donanım arabelleği bir Vulkan'a VkImage bağlanabilir.

Örnek uygulamayı göster

Vulkan oluşturma desteği, hello_ar_vulkan_c örnek uygulamasında gösterilmektedir.

Donanım arabellek çıkış modunu etkinleştir

Yapılandırılmış Config.TextureUpdateMode, ARCore'un kamera dokusunu nasıl güncelleyeceğini belirler. Politika TextureUpdateMode.EXPOSE_HARDWARE_BUFFER olarak ayarlandığında ARCore, kamera görüntüsünü bir HardwareBuffer üzerinden sağlar.

Oturum TextureUpdateMode.EXPOSE_HARDWARE_BUFFER kullanacak şekilde yapılandırın:

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 }
)

Donanım arabelleğini alma

TextureUpdateMode.EXPOSE_HARDWARE_BUFFER etkinleştirildiğinde donanım arabelleğini almak için Frame.getHardwareBuffer() kullanın:

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 oluşturma sırasında donanım arabelleğini kullanma

Vulkan'ı kullanarak bir AR uygulamasının nasıl oluşturulacağına dair örnek için vulkan_handler.cc bölümüne bakın.

Desteklenen cihazlar

Vulkan oluşturma desteği yalnızca Android API düzeyi 27 ve sonraki sürümlerde kullanılabilir. Ayrıca cihaz, VK_ANDROID_external_memory_android_hardware_buffer uzantısını desteklemelidir.

Uygulamanızın manifest dosyasında Vulkan'ı zorunlu kılın

Google Play, uygulamanızı donanım ve yazılım özelliği şartlarını karşılamayan cihazlardan filtrelemek için uygulama manifestinizde belirtilen <uses-feature> öğesini kullanır. Vulkan 1.0 kullanan cihazlar gerekli uzantıyı desteklemeyebilir ancak Vulkan 1.1 ile uyumlu cihazlar Android 10'dan (API düzeyi 29) itibaren gerekli uzantıya sahip olmalıdır.