Android NDK'da Vulkan'ı kullanarak AR uygulamanızı oluşturma (C)

ArTextureUpdateMode, AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER olarak ayarlandığında ArSession_update() çağrıldığında ARCore, Android donanım arabelleği sağlar. Bu donanım arabelleği bir Vulkan'a VkImage bağlanabilir.

Örnek uygulamayı görüntüleme

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

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

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

Oturum AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER kullanacak şekilde yapılandırın:

ArConfig* ar_config = NULL;
ArConfig_create(ar_session, &ar_config);
ArConfig_setTextureUpdateMode(ar_session, ar_config,
                              AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER);
CHECK(ArSession_configure(ar_session, ar_config) == AR_SUCCESS);
ArConfig_destroy(ar_config);

Donanım arabelleğini alma

AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER etkinleştirildiğinde donanım arabelleğini almak için ArFrame_getHardwareBuffer() kullanın:

void* native_hardware_buffer = NULL;
ArFrame_getHardwareBuffer(ar_session, ar_frame, &native_hardware_buffer);

if ((int64_t)native_hardware_buffer == 0) {
  // The hardware buffer isn't ready yet.
  return;
}

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, verilerinizi filtrelemek için uygulama manifestinizde belirtilen <uses-feature> kullanır. uygulamanın donanım ve yazılım özelliği gereksinimlerini karşılamayan cihazlarda kullanılabilir. 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.