عند ضبط Config.TextureUpdateMode
على TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
، سيوفّر ARCore مخازن مؤقتة للأجهزة على Android عند استدعاء Session.update()
. يمكن ربط مخزن الأجهزة هذا بوحدة تحكم Vulkan VkImage
.
عرض نموذج الطلب
يمكنك الاطّلاع على ميزة دعم عرض Vulkan في تطبيق hello_ar_vulkan_c التجريبي.
تفعيل وضع إخراج وحدة التخزين المؤقت للأجهزة
يحدِّد Config.TextureUpdateMode
الذي تم ضبطه كيفية تعديل ARCore لنسيج الكاميرا. عند ضبطه على TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
، سيقدّم ARCore صورة الكاميرا من خلال HardwareBuffer
.
اضبط الجلسة لاستخدام TextureUpdateMode.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
اطّلِع على vulkan_handler.cc
للحصول على مثال على كيفية عرض تطبيق واقع معزّز باستخدام Vulkan.
الأجهزة المتوافقة
لا تتوفّر ميزة عرض Vulkan إلا في الإصدارات 27 من واجهة برمجة التطبيقات لنظام التشغيل Android والإصدارات الأحدث. بالإضافة إلى ذلك، يجب أن يتوافق الجهاز مع إضافة VK_ANDROID_external_memory_android_hardware_buffer
.
اشتراط استخدام Vulkan في بيان تطبيقك
يستخدم Google Play <uses-feature>
المُعلَن عنه في بيان تطبيقك لفلترة
تطبيقك من الأجهزة التي لا تستوفي متطلبات ميزات الأجهزة والبرامج.
قد لا تتوافق الأجهزة التي تستخدم Vulkan 1.0 مع الإضافة المطلوبة، ولكن يجب أن تتضمّن الأجهزة المتوافقة مع Vulkan 1.1 الإضافة المطلوبة اعتبارًا من Android 10 (المستوى 29 من واجهة برمجة التطبيقات).