XR_ANDROID_unbounded_reference_space OpenXR এক্সটেনশন

নাম স্ট্রিং

XR_ANDROID_unbounded_reference_space

এক্সটেনশন প্রকার

ইনস্ট্যান্স এক্সটেনশন

নিবন্ধিত এক্সটেনশন নম্বর

468

রিভিশন

1

এক্সটেনশন এবং সংস্করণ নির্ভরতা

OpenXR 1.0

সর্বশেষ সংশোধিত তারিখ

2024-09-12

আইপি স্ট্যাটাস

কোন পরিচিত আইপি দাবি.

অবদানকারী

স্পেন্সার কুইন, গুগল

জ্যারেড ফাইন্ডার, গুগল

ফেংটাও ফ্যান, গুগল

ল্যাচলান ফোর্ড, গুগল

নিহাভ জৈন, গুগল

লেভানা চেন, গুগল

ওভারভিউ

এই এক্সটেনশনটি অ্যাপ্লিকেশনগুলিকে একটি UNBOUNDED_ANDROID রেফারেন্স স্পেস তৈরি করতে দেয়৷ এই রেফারেন্স স্পেসটি দর্শককে একটি জটিল পরিবেশের মধ্য দিয়ে অবাধে চলাফেরা করতে সক্ষম করে, প্রায়শই তারা যেখান থেকে শুরু করে সেখান থেকে অনেক মিটার দূরে, সবসময় দর্শকের কাছাকাছি সমন্বয় সিস্টেমের স্থিতিশীলতার জন্য অপ্টিমাইজ করে। একটি ভাল দৃশ্য বোঝার জন্য ডিভাইসটি তার পরিবেশের আরও বেশি অনুধাবন করে, রেফারেন্স স্পেসের উত্সটি ডিভাইস ট্র্যাকিং বজায় রাখার জন্য প্রয়োজনীয় বিশাল সামঞ্জস্যের সাথে প্রবাহিত হতে পারে

একটি UNBOUNDED_ANDROID রেফারেন্স স্পেস তৈরি করতে, অ্যাপ্লিকেশনটি XrReferenceSpaceCreateInfo::referenceSpaceType XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID সেট করতে পারে এবং xrCreateReferenceSpace- এ পাস করতে পারে।

XrInstance instance; // previously initialized
XrSession session; // previously initialized
XrPosef pose; // previously initialized

// Use the new reference space type in the create info struct
XrReferenceSpaceCreateInfo createInfo = {
    .type = XR_REFERENCE_SPACE_CREATE_INFO;
    .next = nullptr;
    .referenceSpaceType = XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID;
    .poseInReferenceSpace = pose;
}
XrSpace referenceSpace;
CHK_XR(xrCreateReferenceSpace(session, &createInfo, &referenceSpace));

// After usage
CHK_XR(xrDestroySpace(referenceSpace));

যখন ডিভাইস ট্র্যাকিং শুরু হয় তখন UNBOUNDED_ANDROID রেফারেন্স স্পেস হেডসেটের অবস্থানের একটি বিশ্ব-লক করা উৎস স্থাপন করে। পিচ এবং রোল বাদ দিতে এটি মাধ্যাকর্ষণ-সারিবদ্ধ, ডানদিকে +X, +Y উপরে এবং -Z এগিয়ে।

UNBOUNDED_ANDROID স্থানটি উপযোগী যখন একটি অ্যাপ্লিকেশনকে বিশ্ব-স্কেল সামগ্রী রেন্ডার করার প্রয়োজন হয় যা একটি একক STAGE সীমানা ছাড়িয়ে বিস্তৃত হয়, উদাহরণস্বরূপ, একটি সম্পূর্ণ ফ্লোর বা একটি বিল্ডিংয়ের একাধিক তলা৷

একটি UNBOUNDED_ANDROID স্থান সময়ের সাথে সাথে এর উত্স সামঞ্জস্য করে দর্শকের কাছে স্থিতিশীলতা বজায় রাখে। এটি ডিভাইস ট্র্যাকিং বজায় রাখার জন্য প্রয়োজনীয় হিসাবে সামান্য এবং বিশাল সমন্বয় করতে পারে

  • ছোটখাট সমন্বয়ের প্রতিক্রিয়ায় রানটাইম XrEventDataReferenceSpaceChangePending ইভেন্টের সারিবদ্ধ হওয়া উচিত নয়।
  • রানটাইম বিশাল সমন্বয়ের প্রতিক্রিয়ায় XrEventDataReferenceSpaceChangePending ইভেন্টের সারিবদ্ধ হওয়া উচিত । উদাহরণস্বরূপ, UNBOUNDED_ANDROID স্পেসে পোজটি ট্র্যাকিং ক্ষতির কারণে পুনরায় সেট করা হয়েছে এবং ট্র্যাকিংটি বিশ্বের একটি সংযোগ বিচ্ছিন্ন অনুমানে (একটি "নতুন মানচিত্র") পুনঃপ্রতিষ্ঠিত হয়েছে৷
  • সিস্টেমটি ক্রমাগত তার বিশ্বের বোঝার আপডেট করছে এবং ডিভাইস ট্র্যাকিং সামঞ্জস্য করছে। ট্র্যাকিং রিসেট নির্বিশেষে একটি অ্যাপ্লিকেশনের জন্য একটি স্থায়ী অবস্থানের প্রয়োজন হলে, এই ক্ষেত্রে একটি অ্যাঙ্কর ব্যবহার করা যেতে পারে

রেফারেন্স স্থান পরিবর্তন ঘটনা

XrEventDataReferenceSpaceChangePending কাঠামো দ্বারা সংজ্ঞায়িত প্যারামিটারগুলির জন্য যা বিশ্ব পরিবর্তন বা স্থানান্তরিত ইভেন্টগুলিকে অপ্টিমাইজ করে ফিরে আসে:

typedef struct XrEventDataReferenceSpaceChangePending {
    XrStructureType         type;
    const void*             next;
    XrSession               session;
    XrReferenceSpaceType    referenceSpaceType;
    XrTime                  changeTime;
    XrBool32                poseValid;
    XrPosef                 poseInPreviousSpace;
} XrEventDataReferenceSpaceChangePending;

সদস্য বিবরণ

  • referenceSpaceType হল XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
  • changeTime XrTime প্রতিনিধিত্ব করবে যেখানে পুনঃস্থানীয়করণ সম্পন্ন হয়েছে।
  • poseValid বিচ্ছিন্ন অনুমানের কারণে false হবে বা পুনরায় সংযোগ করার পরে true
  • poseValid false হলে poseInPreviousSpace বৈধ হবে না।

যখন ভিউ, কন্ট্রোলার বা অন্যান্য স্পেসগুলি UNBOUNDED_ANDROID স্পেসের সাথে সম্পর্কিত ট্র্যাকিং ক্ষতির সম্মুখীন হয়, তখন অ্যাপ্লিকেশনগুলি অনুমানকৃত বা সর্বশেষ পরিচিত position এবং orientation মানগুলি পেতে পারে ৷ এই অনুমান করা ভঙ্গিগুলি, উদাহরণস্বরূপ, ঘাড়ের মডেল আপডেট, জড় মৃত গণনা, বা সর্বশেষ পরিচিত অবস্থানের উপর ভিত্তি করে হতে পারে । একটি অ্যাপ্লিকেশান অনুমান করতে পারে যে এটি XR_SPACE_LOCATION_POSITION_VALID_BIT এবং XR_VIEW_STATE_POSITION_VALID_BIT সেট থাকা অব্যাহত থাকবে, কিন্তু XR_SPACE_LOCATION_POSITION_TRACKED_BIT এবং XR_VIEW_STATE_POSITION_TRACKED_BIT দ্বারা নির্দেশিত অবস্থানটি সাফ করা হতে পারে এই ভাবে সর্বশেষ পরিচিত.

যখন ট্র্যাকিং পুনরুদ্ধার করা হয়, রানটাইম নির্বিচারে উত্সকে রিসেন্ট করতে পারে , উদাহরণস্বরূপ দর্শকের সাথে মিলে যাওয়ার জন্য উত্সকে সরানো৷ এটি ব্যবহারের জন্য প্রস্তুত কিনা তা নির্ধারণ করতে একটি অ্যাপ্লিকেশন XrEventDataReferenceSpaceChangePending ইভেন্ট থেকে ফিরে আসা poseValid মান পরীক্ষা করতে পারে

নতুন অবজেক্টের ধরন

নতুন পতাকা প্রকার

নতুন Enum ধ্রুবক

XrReferenceSpaceType গণনা এর সাথে প্রসারিত করা হয়েছে:

  • XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID

নতুন Enums

নতুন কাঠামো

নতুন ফাংশন

ইস্যু

সংস্করণ ইতিহাস

  • সংশোধন 1, 2024-09-12 (লেভানা চেন)
    • প্রাথমিক এক্সটেনশন বর্ণনা