Android NDK (C) এ Vulkan ব্যবহার করে আপনার AR অ্যাপ রেন্ডার করুন

যখন ArTextureUpdateMode AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER এ সেট করা হয়, তখন ArSession_update() কল করা হলে ARCore একটি Android হার্ডওয়্যার বাফার প্রদান করবে। এই হার্ডওয়্যার বাফারটি একটি Vulkan VkImage এর সাথে আবদ্ধ হতে পারে।

নমুনা আবেদন দেখুন

ভলকান রেন্ডারিং সমর্থন hello_ar_vulkan_c নমুনা অ্যাপে প্রদর্শিত হয়।

হার্ডওয়্যার বাফার আউটপুট মোড সক্ষম করুন

কনফিগার করা 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_handler.cc দেখুন।

সমর্থিত ডিভাইসের

Vulkan রেন্ডারিং সমর্থন শুধুমাত্র Android API স্তর 27 এবং তার উপরে উপলব্ধ। অতিরিক্তভাবে, ডিভাইসটিকে অবশ্যই VK_ANDROID_external_memory_android_hardware_buffer এক্সটেনশন সমর্থন করতে হবে।

আপনার অ্যাপের ম্যানিফেস্টে Vulkan প্রয়োজন

হার্ডওয়্যার এবং সফ্টওয়্যার বৈশিষ্ট্যের প্রয়োজনীয়তা পূরণ করে না এমন ডিভাইসগুলি থেকে আপনার অ্যাপ ফিল্টার করতে Google Play আপনার অ্যাপ ম্যানিফেস্টে ঘোষিত <uses-feature> ব্যবহার করে। Vulkan 1.0 ব্যবহার করা ডিভাইসগুলি প্রয়োজনীয় এক্সটেনশনকে সমর্থন নাও করতে পারে , তবে Vulkan 1.1 এর সাথে সামঞ্জস্যপূর্ণ ডিভাইসগুলিতে অবশ্যই Android 10 (API স্তর 29) থেকে শুরু করে প্রয়োজনীয় এক্সটেনশন থাকতে হবে।