برنامه AR خود را با استفاده از Vulkan در Android NDK (C) رندر کنید

زمانی که ArTextureUpdateMode روی AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER تنظیم شود، ARCore با فراخوانی ArSession_update() یک بافر سخت افزار اندروید ارائه می دهد. این بافر سخت افزاری را می توان به Vulkan VkImage متصل کرد.

مشاهده نمونه برنامه

پشتیبانی از رندر Vulkan در برنامه نمونه hello_ar_vulkan_c نشان داده شده است.

حالت خروجی بافر سخت افزاری را فعال کنید

ArTextureUpdateMode پیکربندی شده تعیین می کند که ARCore چگونه بافت دوربین را به روز کند. وقتی روی AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER تنظیم شود، ARCore تصویر دوربین را از طریق AHardwareBuffer ارائه می کند.

جلسه را برای استفاده از AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER پیکربندی کنید:

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

بافر سخت افزاری را بدست آورید

وقتی AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER فعال است، از ArFrame_getHardwareBuffer() برای دریافت بافر سخت افزار استفاده کنید:

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 از بافر سخت افزاری استفاده کنید

برای مثالی از نحوه ارائه یک برنامه AR با استفاده از Vulkan به vulkan_handler.cc مراجعه کنید.

دستگاه های پشتیبانی شده

پشتیبانی از رندر Vulkan فقط در سطوح Android API 27 و بالاتر در دسترس است. علاوه بر این، دستگاه باید از افزونه VK_ANDROID_external_memory_android_hardware_buffer پشتیبانی کند.

Vulkan را در مانیفست برنامه خود الزامی کنید

Google Play از <uses-feature> اعلام‌شده در مانیفست برنامه شما استفاده می‌کند تا برنامه شما را از دستگاه‌هایی که الزامات ویژگی‌های سخت‌افزاری و نرم‌افزاری آن را برآورده نمی‌کنند فیلتر کند. دستگاه‌هایی که از Vulkan 1.0 استفاده می‌کنند ممکن است از برنامه افزودنی مورد نیاز پشتیبانی نکنند ، اما دستگاه‌های سازگار با Vulkan 1.1 باید برنامه افزودنی لازم را که از Android 10 شروع می‌شود (سطح API 29) داشته باشند.