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

जब Config.TextureUpdateMode को TextureUpdateMode.EXPOSE_HARDWARE_BUFFER पर सेट किया जाता है, तो Session.update() को कॉल करने पर, ARCore एक Android हार्डवेयर बफ़र उपलब्ध कराएगा. इस हार्डवेयर बफ़र को 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 को देखें.

वे डिवाइस जिन पर 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) से ज़रूरी एक्सटेंशन होना ज़रूरी है.