ARCore for Jetpack XR-এর মাধ্যমে আপনার অ্যাপ একটি ডিভাইসের পোজ জানতে পারে: অর্থাৎ, ওয়ার্ল্ড অরিজিনের সাপেক্ষে ডিভাইসটির ওরিয়েন্টেশন (পিচ, ইয়ো, রোল) এবং অবস্থান (X, Y, Z)।
এই তথ্য ব্যবহার করে বাস্তব জগতে ডিজিটাল কন্টেন্ট রেন্ডার করুন, অথবা অবস্থান-সচেতন ডেটা তৈরি করতে ডিভাইসের পোজকে ভূ-স্থানিক পোজে রূপান্তর করুন।
একটি সেশনে প্রবেশ করুন
একটি Jetpack XR রানটাইম Session মাধ্যমে ডিভাইসের পোজ সংক্রান্ত তথ্য অ্যাক্সেস করুন, যা আপনার অ্যাপকে অবশ্যই তৈরি করতে হবে ।
সেশনটি কনফিগার করুন
XR সেশনগুলিতে ডিভাইস পোজ তথ্য ডিফল্টরূপে সক্রিয় থাকে না। আপনার অ্যাপকে ডিভাইস পোজ তথ্য পুনরুদ্ধার করার অনুমতি দিতে, সেশনটি কনফিগার করুন এবং DeviceTrackingMode.SPATIAL_LAST_KNOWN মোডটি সেট করুন:
// Define the configuration object to enable tracking device pose. val newConfig = session.config.copy( deviceTracking = DeviceTrackingMode.SPATIAL_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 ডিভাইস DeviceTrackingMode.SPATIAL_LAST_KNOWN মোড সমর্থন করে না। যদি Session.configure() সফল হয়, তাহলে ডিভাইসটি এই মোড সমর্থন করে।
ডিভাইসের অবস্থান নির্ণয় করুন
সেশনটি কনফিগার করার পরে, আপনি ArDevice অবজেক্টটি ব্যবহার করে AR স্থানাঙ্ক সিস্টেমের মধ্যে ডিভাইসটির পোজ পেতে পারেন:
// Get the ArDevice instance val arDevice = ArDevice.getInstance(session) // There are two ways to get the device pose. // 1. Get the current device pose once. // This is the device's position and orientation relative to the tracking origin. val devicePose = arDevice.state.value.devicePose processDevicePose(devicePose) // 2. Continuously receive updates for the device pose. // `collect` is a suspending function that will run indefinitely and process new poses. arDevice.state.collect { state -> processDevicePose(state.devicePose) }
ডিভাইসের পোজের ট্রান্সলেশন এবং রোটেশন পান
ডিভাইস Pose ট্র্যাকিং অরিজিনের সাপেক্ষে ডিভাইসটির অবস্থান (স্থানান্তর) এবং অভিমুখ (ঘূর্ণন) নির্দেশ করে। আপনার অ্যাপের অভিজ্ঞতা উন্নত করতে এই তথ্যটি ব্যবহার করুন:
অবস্থানগতভাবে নির্ভুল দিকনির্দেশনা প্রদান করুন : অবস্থানগত ডেটা ব্যবহারকারীকে দিক নির্ণয় করতে এবং ওভারলে করা ডিজিটাল কন্টেন্টের সাহায্যে তার চারপাশের পরিবেশে চলাচল করতে সাহায্য করতে পারে।
অন্তর্বর্তী বিশ্ব অ্যালাইনমেন্ট গণনা করুন : বাস্তব-বিশ্বের অবস্থান গণনা করার জন্য জিওস্পেশিয়াল এপিআই এই পোজটি ব্যবহার করে।
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. */) }
ডিভাইসের পোজকে ভূ-স্থানিক পোজ-এ রূপান্তর করুন
একবার আপনার কাছে ডিভাইসের পোজ চলে এলে, আপনি তা থেকে একটি জিওস্পেশিয়াল পোজ পেতে পারেন। জিওস্পেশিয়াল পোজে রূপান্তর করলে আপনার এআর কন্টেন্ট একটি অস্থায়ী, বিচ্ছিন্ন অভিজ্ঞতা থেকে বাস্তব জগতে একটি স্থায়ী, সর্বজনীনভাবে শেয়ারযোগ্য এবং প্রেক্ষাপট-সচেতন ফিচারে পরিণত হয়।
জিওস্পেশিয়াল এপিআই ডকুমেন্টেশন থেকে জেনে নিন কিভাবে একটি ডিভাইস পোজকে জিওস্পেশিয়াল পোজ-এ রূপান্তর করতে হয়।