عرض تطبيق الواقع المعزّز باستخدام Vulkan على حزمة تطوير البرامج (SDK) لنظام التشغيل Android (Kotlin/Java)

عند ضبط 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:

Java

Config config = session.getConfig();
config.setTextureUpdateMode(Config.TextureUpdateMode.EXPOSE_HARDWARE_BUFFER);
session.configure(config);

Kotlin

session.configure(
  session.config.apply { textureUpdateMode = Config.TextureUpdateMode.EXPOSE_HARDWARE_BUFFER }
)

الحصول على المخزن المؤقت للأجهزة

عندما تكون أداة TextureUpdateMode.EXPOSE_HARDWARE_BUFFER مفعّلة، استخدِم Frame.getHardwareBuffer() للحصول على المخزن المؤقت للأجهزة:

Java

try {
  HardwareBuffer buffer = frame.getHardwareBuffer();
  // Use the buffer object in your rendering.
} catch (NotYetAvailableException e) {
  // The hardware buffer is not ready yet.
}

Kotlin

try {
  val buffer = frame.hardwareBuffer
  // Use the buffer object in your rendering.
} catch (e: NotYetAvailableException) {
  // The hardware buffer is not ready yet.
}

استخدام المخزن المؤقت للأجهزة أثناء عرض Vulkan

للاطّلاع على مثال حول كيفية عرض تطبيق الواقع المعزّز باستخدام Vulkan، يمكنك الانتقال إلى vulkan_handler.cc.

الأجهزة المتوافقة

لا يتوفّر عرض Vulkan إلا على مستويات واجهة برمجة تطبيقات Android 27 والأعلى. بالإضافة إلى ذلك، يجب أن يكون الجهاز متوافقًا مع الإضافة VK_ANDROID_external_memory_android_hardware_buffer.

يجب توفُّر Vulkan في ملف بيان التطبيق.

يستخدم Google Play <uses-feature> المنصوص عليها في بيان التطبيق لفلترة تطبيقك حتى لا يستوفي متطلّبات ميزات الأجهزة والبرامج. قد لا تتوافق الأجهزة التي تستخدم Vulkan 1.0 مع الإضافة المطلوبة، ولكن يجب أن تتضمّن الأجهزة المتوافقة مع Vulkan 1.1 الإضافة المطلوبة بدايةً من الإصدار Android 10 (مستوى واجهة برمجة التطبيقات 29).