هنگامی که Config.TextureUpdateMode
روی TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
تنظیم می شود، ARCore با فراخوانی Session.update()
بافر سخت افزاری اندروید را ارائه می دهد. این بافر سخت افزاری را می توان به Vulkan VkImage
متصل کرد.
پشتیبانی از رندر Vulkan در برنامه نمونه hello_ar_vulkan_c نشان داده شده است.
Config.TextureUpdateMode
پیکربندی شده تعیین می کند که ARCore چگونه بافت دوربین را به روز کند. وقتی روی TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
تنظیم شود، ARCore تصویر دوربین را از طریق HardwareBuffer
ارائه میکند.
جلسه را برای استفاده از TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
پیکربندی کنید.EXPOSE_HARDWARE_BUFFER:
Config config = session.getConfig(); config.setTextureUpdateMode(Config.TextureUpdateMode.EXPOSE_HARDWARE_BUFFER); session.configure(config);
session.configure( session.config.apply { textureUpdateMode = Config.TextureUpdateMode.EXPOSE_HARDWARE_BUFFER } )
وقتی TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
فعال است، از Frame.getHardwareBuffer()
برای دریافت بافر سخت افزار استفاده کنید:
try { HardwareBuffer buffer = frame.getHardwareBuffer(); // Use the buffer object in your rendering. } catch (NotYetAvailableException e) { // The hardware buffer is not ready yet. }
try { val buffer = frame.hardwareBuffer // Use the buffer object in your rendering. } catch (e: NotYetAvailableException) { // The hardware buffer is not ready yet. }
برای مثالی از نحوه ارائه یک برنامه AR با استفاده از Vulkan به vulkan_handler.cc
مراجعه کنید.
پشتیبانی از رندر Vulkan فقط در سطوح Android API 27 و بالاتر در دسترس است. علاوه بر این، دستگاه باید از افزونه VK_ANDROID_external_memory_android_hardware_buffer
پشتیبانی کند.
Google Play از <uses-feature>
اعلامشده در مانیفست برنامه شما استفاده میکند تا برنامه شما را از دستگاههایی که الزامات ویژگیهای سختافزاری و نرمافزاری آن را برآورده نمیکنند فیلتر کند. دستگاههایی که از Vulkan 1.0 استفاده میکنند ممکن است از برنامه افزودنی مورد نیاز پشتیبانی نکنند ، اما دستگاههای سازگار با Vulkan 1.1 باید برنامه افزودنی لازم را که از Android 10 شروع میشود (سطح API 29) داشته باشند.