Android NDK (C) पर Vulkan का इस्तेमाल करके, अपना एआर (ऑगमेंटेड रिएलिटी) ऐप्लिकेशन रेंडर करें

अगर ArTextureUpdateMode को AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER पर सेट किया जाता है, तो ArSession_update() कॉल किए जाने पर, ARCore Android हार्डवेयर बफ़र उपलब्ध कराएगा. इस हार्डवेयर बफ़र को Vulkan VkImage से जोड़ा जा सकता है.

सैंपल आवेदन देखें

hello_ar_vulkan_c सैंपल ऐप्लिकेशन में, Vulkan के लिए रेंडरिंग सपोर्ट की जानकारी दी गई है.

हार्डवेयर बफ़र आउटपुट मोड चालू करें

कॉन्फ़िगर किए गए 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 रेंडरिंग के दौरान हार्डवेयर बफ़र का इस्तेमाल करें

Vulkan का इस्तेमाल करके, एआर ऐप्लिकेशन को रेंडर करने के उदाहरण के लिए, vulkan_handler.cc देखें.

वे डिवाइस जिन पर YouTube ऐप्लिकेशन से YouTube Kids का इस्तेमाल किया जा सकता है

Vulkan रेंडरिंग की सुविधा, सिर्फ़ Android के एपीआई लेवल 27 और उसके बाद वाले वर्शन पर उपलब्ध है. इसके अलावा, डिवाइस में VK_ANDROID_external_memory_android_hardware_buffer एक्सटेंशन के साथ काम करना भी ज़रूरी है.

आपके ऐप्लिकेशन के मेनिफ़ेस्ट में Vulkan ज़रूरी है

Google Play आपके ऐप्लिकेशन मेनिफ़ेस्ट में बताए गए <uses-feature> का इस्तेमाल करके, आपके ऐप्लिकेशन को ऐसे डिवाइसों से फ़िल्टर करता है जो हार्डवेयर और सॉफ़्टवेयर की सुविधा से जुड़ी ज़रूरी शर्तों को पूरा नहीं करते. Vulkan 1.0 का इस्तेमाल करने वाले डिवाइसों पर शायद ज़रूरी एक्सटेंशन काम नहीं करेगा. हालांकि, Vulkan 1.1 के साथ काम करने वाले डिवाइसों में ज़रूरी एक्सटेंशन, Android 10 (एपीआई लेवल 29) से शुरू होना चाहिए.