هنگامی که 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. }
در حین رندرینگ 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) داشته باشند.