Jetpack XR-এর জন্য ARCore ব্যবহার করে একটি ডিভাইসের ভঙ্গি ট্র্যাক করুন

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

জেটপ্যাক এক্সআর-এর জন্য ARCore-এর সাহায্যে, আপনার অ্যাপটি একটি ডিভাইসের ভঙ্গি পুনরুদ্ধার করতে পারে: বিশ্ব উৎপত্তির সাপেক্ষে ডিভাইসের ওরিয়েন্টেশন (পিচ, ইয়াও, রোল) এবং অবস্থান (X, Y, Z)।

বাস্তব জগতে ডিজিটাল কন্টেন্ট রেন্ডার করতে এই তথ্য ব্যবহার করুন, অথবা অবস্থান-সচেতন ডেটা তৈরি করতে ডিভাইসের ভঙ্গিকে ভূ-স্থানিক ভঙ্গিতে রূপান্তর করুন।

একটি সেশন অ্যাক্সেস করুন

একটি Jetpack XR রানটাইম Session মাধ্যমে ডিভাইসের পোজ তথ্য অ্যাক্সেস করুন, যা আপনার অ্যাপকে তৈরি করতে হবে

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

XR সেশনে ডিফল্টভাবে ডিভাইস পোজ তথ্য সক্ষম করা থাকে না। আপনার অ্যাপকে ডিভাইস পোজ তথ্য পুনরুদ্ধার করতে সক্ষম করতে, সেশনটি কনফিগার করুন এবং HeadTrackingMode.LAST_KNOWN মোড সেট করুন:

// Define the configuration object to enable tracking device pose.
val newConfig = session.config.copy(
    headTrackingMode = Config.HeadTrackingMode.LAST_KNOWN
)
// Apply the configuration to the session.
try {
    when (val configResult = session.configure(newConfig)) {
        is SessionConfigureSuccess -> {
            // The session is now configured to track the device's pose.
        }
        else -> {
            // Catch-all for other configuration errors returned using the result class.
        }
    }
} catch (e: UnsupportedOperationException) {
    // Handle configuration failure. For example, if the specific mode is not supported on the current device or API version.
}

সমস্ত XR ডিভাইস HeadTrackingMode.LAST_KNOWN মোড সমর্থন করে না। যদি Session.configure() সফল হয়, তাহলে ডিভাইসটি এই মোড সমর্থন করে।

ডিভাইসের ভঙ্গিটি পান

একবার সেশনটি কনফিগার হয়ে গেলে, আপনি ArDevice অবজেক্ট ব্যবহার করে AR স্থানাঙ্ক সিস্টেমের মধ্যে ডিভাইসের ভঙ্গি পেতে পারেন:

// Get the ArDevice instance
val arDevice = ArDevice.getInstance(session)

// Collect the state to process the device pose
arDevice.state.collect { state ->
      // processDevicePose gets called automatically when a new pose is available.
      processDevicePose(state.devicePose)
}

// Or, get the current device Pose from the AR Device's state.
// This is the device's position and orientation relative to the tracking origin.
val devicePose = ArDevice.getInstance(session).state.value.devicePose

ডিভাইসের ভঙ্গির অনুবাদ এবং ঘূর্ণন পান

ডিভাইস Pose ট্র্যাকিং অরিজিনের সাপেক্ষে ডিভাইসের অবস্থান (অনুবাদ) এবং ওরিয়েন্টেশন (ঘূর্ণন) উপস্থাপন করে। আপনার অ্যাপের অভিজ্ঞতা উন্নত করতে আপনার অ্যাপে এই তথ্য ব্যবহার করুন:

  1. অবস্থানগতভাবে সঠিক নেভিগেশন নির্দেশাবলী প্রদান করুন : অবস্থানগত ডেটা ব্যবহারকারীকে তাদের নিজস্ব অবস্থান নির্ধারণ করতে এবং তাদের আশেপাশের পরিবেশে নেভিগেট করতে সাহায্য করতে পারে, যার সাহায্যে ওভারলেড ডিজিটাল কন্টেন্ট ব্যবহার করা যেতে পারে।

  2. মধ্যবর্তী বিশ্ব সারিবদ্ধকরণ : এই ভঙ্গিটি জিওস্পেশিয়াল API দ্বারা বাস্তব-বিশ্বের অবস্থান গণনা করার জন্য ব্যবহৃত হয়।

fun processDevicePose(pose: Pose) {

    // Extract Translation and Rotation
    val translation = pose.translation // Vector3(x, y, z)
    val rotation = pose.rotation // Quaternion (x, y, z, w)

    TODO(/* Use the translation and rotation in your app. */)
}

ডিভাইসের ভঙ্গিকে ভূ-স্থানিক ভঙ্গিতে রূপান্তর করুন

একবার আপনার ডিভাইসের ভঙ্গি তৈরি হয়ে গেলে, আপনি এটি থেকে একটি ভূ-স্থানিক ভঙ্গি পেতে পারেন। ভূ-স্থানিক ভঙ্গিতে রূপান্তরিত করলে আপনার AR কন্টেন্ট একটি অস্থায়ী, বিচ্ছিন্ন অভিজ্ঞতা থেকে বাস্তব জগতে একটি স্থায়ী, সর্বজনীনভাবে ভাগ করা এবং প্রসঙ্গ-সচেতন বৈশিষ্ট্যে পরিণত হয়।

আমাদের জিওস্পেশিয়াল এপিআই ডকুমেন্টেশন থেকে শিখুন কিভাবে একটি ডিভাইসের ভঙ্গিকে জিওস্পেশিয়াল ভঙ্গিতে রূপান্তর করতে হয়