Jetpack XR-এর জন্য ARCore-এর সাহায্যে আপনার অ্যাপে ডেপথ সংক্রান্ত তথ্য রিট্রিভ করা

প্রযোজ্য XR ডিভাইস
এই নির্দেশিকা আপনাকে এই ধরনের XR ডিভাইসের জন্য অভিজ্ঞতা তৈরি করতে সাহায্য করে।
XR হেডসেট
তারযুক্ত XR গ্লাস

আপনার অ্যাপ, ARCore for Jetpack XR-এর মাধ্যমে ডেপথ সংক্রান্ত তথ্য ফিরিয়ে আনতে পারে যাতে ডিভাইসের কতটা কাছাকাছি ফিজিক্যাল অবজেক্ট আছে তা নির্ধারণ করা যায়।

Jetpack XR সেশনের জন্য ARCore তৈরি করুন

Jetpack XR-এর জন্য ARCore-এর মাধ্যমে গভীরতা সংক্রান্ত তথ্য পান Session। আপনি যদি XR-এর জন্য Jetpack Compose ব্যবহার করে স্পেশিয়াল UI উন্নত করেন, তাহলে XR-এর জন্য Jetpack Compose থেকে একটি সেশন অ্যাক্সেস করুন। আপনি যদি Jetpack SceneCore লাইব্রেরি থেকে স্পেশিয়ালাইজড এন্টিটি নিয়ে কাজ করেন, তাহলে Jetpack XR রানটাইম থেকে সেশন অ্যাক্সেস করুন।

সেশন কনফিগার করুন

XR সেশনে ডেপথ ম্যাপ রিট্রিভাল ডিফল্ট হিসেবে চালু করা থাকে না। ডেপথ ম্যাপ রিট্রিভাল চালু করতে, সেশন কনফিগার করুন এবং একটি DepthEstimationMode সেট করুন:

val newConfig = Config.Builder(session.config)
    .setDepthEstimation(DepthEstimationMode.SMOOTH_ONLY)
    .build()
when (val result = session.configure(newConfig)) {
    is SessionConfigureSuccess -> TODO(/* Success! */)
    else ->
        TODO(/* The session could not be configured. See SessionConfigureResult for possible causes. */)
}

DepthEstimationMode-এর নিম্নলিখিত ভ্যালু উপলভ্য:

  • DISABLED: দৃশ্যের গভীরতা সম্পর্কে কোনও তথ্য প্রদান করা হয়নি।
  • RAW_ONLY: র ডেপথ ও কনফিডেন্স ভ্যালুর সাথে ডেপথ অনুমান চালু করা হয়েছে।
  • SMOOTH_ONLY: স্মুথ ডেপথ ও কনফিডেন্স ভ্যালু সহ ডেপথ এস্টিমেশন চালু করা হয়েছে।
  • SMOOTH_AND_RAW: র এবং স্মুথ ডেপথ ও কনফিডেন্স ভ্যালু, উভয়ের সাথেই ডেপথ এস্টিমেশন চালু করা আছে।

র' ডেপথ ম্যাপ আরও নির্ভুলভাবে ডেপথের অনুমান প্রদান করে, তবে র' ডেপথ ছবিতে ক্যামেরা ছবির সব পিক্সেলের জন্য ডেপথের অনুমান নাও থাকতে পারে। অন্যদিকে, স্মুথ ডেপথ ম্যাপ প্রতিটি পিক্সেলের জন্য আনুমানিক ডেপথ প্রদান করে, তবে ডেপথ অনুমানের স্মুদিং এবং ইন্টারপোলেশনের কারণে প্রতি-পিক্সেল ডেপথ ডেটা কম সঠিক হতে পারে।

ডেপথ ম্যাপের ক্ষমতা চেক করুন

বিভিন্ন ডিভাইসের ক্ষমতা আলাদা আলাদা হয়। স্টিরিও ক্যামেরা কনফিগারেশন সহ ডিভাইস বাঁদিক ও ডানদিকের ক্যামেরার জন্য ডেপথ এস্টিমেশন ম্যাপ প্রদান করতে পারে। একইভাবে, একটি ক্যামেরা সহ ডিভাইসগুলি শুধুমাত্র মনো ক্যামেরার জন্য গভীরতা অনুমান ম্যাপ প্রদান করতে পারে।

ডিভাইসে কোন ডেপথ ম্যাপ কাজ করে তা চেক করতে, XrDevice.isRenderingModeSupported ব্যবহার করুন:

val xrDevice = XrDevice.getCurrentDevice(context)
val hasMonoDepth = xrDevice.isRenderingModeSupported(RenderingMode.MONO)
val hasStereoDepth = xrDevice.isRenderingModeSupported(RenderingMode.STEREO)

ডেপথ ডেটা ফিরিয়ে আনুন

কোনও নির্দিষ্ট ক্যামেরার জন্য ডেপথ ডেটা পেতে, Depth ব্যবহার করুন:

if (hasStereoDepth) {
    val depthMap = Depth.left(session)
}

গভীরতার মান গণনা করুন

আপনি ফলাফল হিসেবে পাওয়া ডেপথ ম্যাপ থেকে ডেপথ ও কনফিডেন্স ভ্যালু পেতে পারেন:

if (hasStereoDepth) {
    val depthMap = Depth.left(session)
}

ব্যবহার করা কনফিগারেশন সেটিংয়ের উপর নির্ভর করে, smoothDepthMap বা rawDepthMap ব্যবহার করে সংশ্লিষ্ট ডেপথ ম্যাপ অ্যাক্সেস করুন। এইসব ম্যাপে দেখানো পরিমাপ মিটারে প্রকাশ করা হয়। এছাড়াও, আপনি smoothConfidenceMap এবং rawConfidenceMap ব্যবহার করে কনফিডেন্স ভ্যালু অ্যাক্সেস করতে পারবেন। এই ভ্যালু ০ থেকে ২৫৫ পর্যন্ত হয়, যেখানে ২৫৫ হল সর্বোচ্চ কনফিডেন্স।

ডিবাগ বা ভিজ্যুয়ালাইজেশনের উদ্দেশ্যে ডেপথ ম্যাপ রেন্ডার করতে, ARCore টেস্ট অ্যাপের ডেপথ অংশ দেখুন।