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 TV इस्तेमाल किया जा सकता है

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

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

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