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üleyin

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ış ArTextureUpdateMode, ARCore'un kamera dokusunu nasıl güncelleyeceğini belirler. Politika AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER olarak ayarlandığında ARCore, kamera görüntüsünü bir AHardwareBuffer üzerinden sağlar.

Oturumu 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() işlevini 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 kullanılarak artırılmış gerçeklik (AR) uygulamasının nasıl oluşturulacağına ilişkin bir örnek için bkz. vulkan_handler.cc.

Desteklenen cihazlar

Vulkan oluşturma desteği yalnızca Android API 27 ve bölümünü ziyaret edin. 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ı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 cihazlar Vulkan 1.1 ile uyumlu sürümlerin Android 10 (API düzeyi 29) sürümünden itibaren gerekli uzantıya sahip olması gerekir.