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

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

Örnek uygulamayı görüntüleyin

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

Donanım arabelleği çıkış modunu etkinleştir

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

Oturumu 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 alın

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 işlemi sırasında donanım arabelleğini kullan

Vulkan kullanılarak AR uygulaması oluşturma örneği için vulkan_handler.cc sayfasına bakın.

Desteklenen cihaz sayısı

Vulkan oluşturma desteği, yalnızca 27 ve üzeri Android API seviyelerinde kullanılabilir. Ayrıca, cihazın VK_ANDROID_external_memory_android_hardware_buffer uzantısını desteklemesi gerekir.

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

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