XR_ANDROID_spatial_anchor_space
নামের স্ট্রিং
XR_ANDROID_spatial_anchor_space
এক্সটেনশনের ধরন
ইনস্ট্যান্স এক্সটেনশন
রেজিস্টার করা এক্সটেনশন নম্বর
796
সংশোধন
1
অনুমোদনের স্ট্যাটাস
অনুমোদিত নয়
এক্সটেনশন ও ভার্সন ডিপেন্ডেন্সি
XR_EXT_spatial_anchor
শেষবার পরিবর্তন করার তারিখ
2025-09-15
IP স্ট্যাটাস
IP সংক্রান্ত কোনও দাবি নেই।
কন্ট্রিবিউটর
YuSheng Chang, Google
Kyle Chen, Google
Levana Chen, Google
Nihav Jain, Google
Spencer Quin, Google
এক নজরে
XR_EXT_spatial_anchor এক্সটেনশনে সংজ্ঞায়িত xrCreateSpatialAnchorEXT ফাংশন, অ্যাপ্লিকেশনকে XrSpatialEntityEXT হ্যান্ডেল সহ স্পেশিয়াল অ্যাঙ্কর তৈরি করার অনুমতি দেয়। এর বিপরীতে, এই এক্সটেনশন একটি স্পেশিয়াল অ্যাঙ্কর তৈরি করে যা পরিবর্তে একটি XrSpace হ্যান্ডেল দ্বারা উপস্থাপিত হয়। এটি সেইসব ক্ষেত্রে উপযোগী যেখানে অ্যাপ্লিকেশনটি:
- অ্যাঙ্করের লোকেশন পেতে xrLocateSpaces ব্যবহার করুন।
- অ্যাঙ্করের সাপেক্ষে অন্যান্য স্পেসের লোকেশন নির্ধারণ করুন।
XR_ANDROID_anchor_sharing_exportব্যবহার করে অ্যাঙ্কর এক্সপোর্ট করুন।- অ্যাপ্লিকেশন অ্যাঙ্কর প্লেস করেছে এবং এখন শুধু অ্যাঙ্করের লোকেশন (ভার্চুয়াল কন্টেন্ট অ্যাটাচ করার জন্য) নিয়ে চিন্তিত এবং XrSpatialContextEXT-এর মাধ্যমে খুঁজে পাওয়া অন্য কোনও এন্টিটির অন্য কোনও কম্পোনেন্ট নিয়ে চিন্তিত নয়, যা অ্যাঙ্কর তৈরি করতে ব্যবহার করা হয়, যার ফলে অ্যাপ্লিকেশন স্পেশিয়াল কনটেক্সট ধ্বংস করতে পারে।
এই এক্সটেনশনের মাধ্যমে তৈরি করা অ্যাঙ্কর XR_ANDROID_device_anchor_persistence এক্সটেনশন ব্যবহার করে পারসিস্ট করা যাবে না এবং তার পরিবর্তে অ্যাপ্লিকেশনকে অবশ্যই XR_EXT_spatial_persistence_operations ব্যবহার করতে হবে। XrPersistedAnchorSpaceInfoANDROID :: anchor যদি xrCreateSpatialAnchorSpaceANDROID বা xrCreateSpatialAnchorSpaceFromIdANDROID ব্যবহার করে তৈরি করা হয়, তাহলে রানটাইমকে xrPersistAnchorANDROID থেকে XR_ERROR_VALIDATION_FAILURE রিটার্ন করতেই হবে।
স্পেশিয়াল অ্যাঙ্করের জন্য XrSpace তৈরি করুন
স্পেশিয়াল অ্যাঙ্কর ও স্পেস তৈরি করুন
xrCreateSpatialAnchorSpaceANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreateSpatialAnchorSpaceANDROID(
XrSession session,
XrSpatialContextEXT spatialContext,
const XrSpatialAnchorCreateInfoEXT* createInfo,
XrSpatialEntityIdEXT* anchorEntityId,
XrSpace* anchorSpace);
প্যারামিটারের বিবরণ
sessionহল XrSession-এর একটি হ্যান্ডেল যা আগে xrCreateSession-এর মাধ্যমে তৈরি করা হয়েছেspatialContextহল একটি XrSpatialContextEXT যা আগে xrCreateSpatialContextAsyncEXT ব্যবহার করে তৈরি করা হয়েছে।createInfoহল XrSpatialAnchorCreateInfoEXT-এর একটি পয়েন্টার।anchorEntityIdহলXrSpatialEntityIdEXT-এর একটি পয়েন্টার।anchorSpaceহল XrSpace-এর একটি পয়েন্টার।
xrCreateSpatialAnchorSpaceANDROID ফাংশনটি একটি অ্যাঙ্কর তৈরি করে যা একটি XrSpatialEntityIdEXT এবং একটি XrSpace হ্যান্ডেল আউটপুট করে। xrCreateSpatialAnchorSpaceANDROID-এর জন্য xrCreateSpatialAnchorEXT-এর মতো একই যাচাইকরণের প্রয়োজনীয়তা রয়েছে।
xrCreateSpatialAnchorSpaceANDROID-এ পাস করা XrSpatialContextEXT XR_SPATIAL_CAPABILITY_ANCHOR_EXT-এর সাথে কনফিগার করা না থাকলে, রানটাইমকে XR_ERROR_VALIDATION_FAILURE রিটার্ন করতেই হবে।
xrCreateSpatialAnchorSpaceANDROID-এর মাধ্যমে তৈরি করা অ্যাঙ্কর খুঁজে পাওয়ার যোগ্যতার ক্ষেত্রে, xrCreateSpatialAnchorEXT স্পেসিফিকেশনের শেষ অনুচ্ছেদ প্রযোজ্য হয়।
সঠিক ব্যবহার (অন্তর্নিহিত)
- xrCreateSpatialAnchorSpaceANDROID কল করার আগে
XR_ANDROID_spatial_anchor_spaceএক্সটেনশন অবশ্যই চালু করতে হবে -
sessionঅবশ্যই একটি সঠিক XrSession হ্যান্ডেল হতে হবে -
spatialContextঅবশ্যই একটি সঠিক XrSpatialContextEXT হ্যান্ডেল হতে হবে -
createInfoঅবশ্যই একটি সঠিক XrSpatialAnchorCreateInfoEXT স্ট্রাকচারের পয়েন্টার হতে হবে -
anchorEntityIdঅবশ্যইXrSpatialEntityIdEXTভ্যালুর পয়েন্টার হতে হবে -
anchorSpaceXrSpace হ্যান্ডেলের জন্য অবশ্যই পয়েন্টার হতে হবে -
spatialContextঅবশ্যইsessionথেকে তৈরি, বরাদ্দ বা পুনরুদ্ধার করা হতে হবে
রিটার্ন কোড
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_POSE_INVALIDXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_SPATIAL_ANCHOR_ATTACHABLE_COMPONENT_NOT_FOUND_ANDROIDXR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXTXR_ERROR_TIME_INVALIDXR_ERROR_VALIDATION_FAILURE
আগে থেকে থাকা স্পেশিয়াল অ্যাঙ্কর থেকে XrSpace তৈরি করুন
xrCreateSpatialAnchorSpaceFromIdANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreateSpatialAnchorSpaceFromIdANDROID(
XrSession session,
XrSpatialContextEXT spatialContext,
const XrSpatialAnchorSpaceFromIdCreateInfoANDROID* createInfo,
XrSpace* anchorSpace);
প্যারামিটারের বিবরণ
sessionহল XrSession-এর একটি হ্যান্ডেল যা আগে xrCreateSession-এর মাধ্যমে তৈরি করা হয়েছেspatialContextহল একটি XrSpatialContextEXT যা আগে xrCreateSpatialContextAsyncEXT ব্যবহার করে তৈরি করা হয়েছে।createInfoহল XrSpatialAnchorSpaceFromIdCreateInfoANDROID-এর একটি পয়েন্টার।anchorSpaceহল XrSpace-এর একটি পয়েন্টার।
যেসব ক্ষেত্রে স্পেশিয়াল অ্যাঙ্কর এন্টিটি আগে থেকেই থাকে (যেমন, পারসিস্টেন্সের কারণে), সেখানে অ্যাপ্লিকেশনগুলি তাদের স্পেশিয়াল এন্টিটি আইডি প্রদান করে এইসব স্পেশিয়াল অ্যাঙ্কর থেকে একটি XrSpace তৈরি করতে পারে।
xrCreateSpatialAnchorSpaceFromIdANDROID ফাংশনটি XrSpatialAnchorSpaceFromIdCreateInfoANDROID ::entityId ফিল্ডে একটি XrSpatialEntityIdEXT প্রদান করে একটি XrSpace হ্যান্ডেল তৈরি করে।
xrCreateSpatialAnchorSpaceFromIdANDROID-এ পাস করা XrSpatialContextEXT যদি XR_SPATIAL_CAPABILITY_ANCHOR_EXT-এর সাথে কনফিগার করা না থাকে, তাহলে রানটাইমকে XR_ERROR_VALIDATION_FAILURE রিটার্ন করতেই হবে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- xrCreateSpatialAnchorSpaceFromIdANDROID কল করার আগে
XR_ANDROID_spatial_anchor_spaceএক্সটেনশন অবশ্যই চালু করতে হবে -
sessionঅবশ্যই একটি সঠিক XrSession হ্যান্ডেল হতে হবে -
spatialContextঅবশ্যই একটি সঠিক XrSpatialContextEXT হ্যান্ডেল হতে হবে -
createInfoঅবশ্যই একটি সঠিক XrSpatialAnchorSpaceFromIdCreateInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে -
anchorSpaceXrSpace হ্যান্ডেলের জন্য অবশ্যই পয়েন্টার হতে হবে -
spatialContextঅবশ্যইsessionথেকে তৈরি, বরাদ্দ বা পুনরুদ্ধার করা হতে হবে
রিটার্ন কোড
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROIDXR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXTXR_ERROR_VALIDATION_FAILURE
XrSpatialAnchorSpaceFromIdCreateInfoANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:
typedef struct XrSpatialAnchorSpaceFromIdCreateInfoANDROID {
XrStructureType type;
const void* next;
XrSpatialEntityIdEXT anchorEntityId;
} XrSpatialAnchorSpaceFromIdCreateInfoANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার।anchorEntityIdহল আগে থেকে থাকা স্পেশিয়াল অ্যাঙ্করেরXrSpatialEntityIdEXTযেখান থেকে XrSpace তৈরি করতে হবে।
spatialContext-এর জন্য XrSpatialAnchorSpaceFromIdCreateInfoANDROID ::entityId সঠিক আইডি না হলে, রানটাইমকে XR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXT রিটার্ন করতেই হবে।
XrSpatialAnchorSpaceFromIdCreateInfoANDROID ::entityId যদি কোনও অ্যাঙ্করের জন্য সঠিক এন্টিটি আইডি না হয়, তাহলে রানটাইমকে XR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROID রিটার্ন করতেই হবে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrSpatialAnchorSpaceFromIdCreateInfoANDROID ব্যবহার করার আগে
XR_ANDROID_spatial_anchor_spaceএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_SPATIAL_ANCHOR_SPACE_FROM_ID_CREATE_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে
অ্যাঙ্কর লাইফসাইকেল
XrSpace হ্যান্ডেলের পেরেন্ট হল XrSession। এর অর্থ হল, xrCreateSpatialAnchorSpaceFromIdANDROID :: spatialContext বা xrCreateSpatialAnchorSpaceANDROID :: spatialContext নষ্ট হয়ে যাওয়ার পরেও অ্যাঙ্করকে উপস্থাপন করা XrSpace হ্যান্ডেল বৈধ থাকে। স্পেশিয়াল এন্টিটি অ্যাঙ্করকে দেখানোর জন্য XrSpace তৈরি করলে, অ্যাপ্লিকেশনটি XrSpatialContextEXT ধ্বংস করতে পারে যা XR_SPATIAL_CAPABILITY_ANCHOR_EXT-এর সাথে কনফিগার করা হয়েছিল, তবে xrLocateSpaces-এর সাথে XrSpace ব্যবহার করে অ্যাঙ্করের লেটেস্ট পোজ পাওয়া চালিয়ে যেতে পারে, অর্থাৎ রানটাইমকে অবশ্যই অ্যাঙ্কর ট্র্যাক করা চালিয়ে যেতে হবে যতক্ষণ না এটিকে দেখানো সব XrSpace হ্যান্ডেল ধ্বংস হয়ে যায়।
উদাহরণ কোড
XrSpace হিসেবে স্পেশিয়াল অ্যাঙ্কর তৈরি করুন
নিম্নলিখিত উদাহরণ কোডটি দেখায় যে কীভাবে একটি স্পেশাল অ্যাঙ্কর তৈরি করতে হয় এবং এটিকে XrSpace হিসাবে ফেরত দিতে হয়।
XrSpatialEntityIdEXT spatialAnchorEntityId;
XrSpace spatialAnchorSpace {XR_NULL_HANDLE}; // XrSpace handle of anchor
// Spatial anchor create info
XrSpatialAnchorCreateInfoEXT createInfo{
.type = XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_EXT,
.baseSpace = localSpace,
.time = predictedDisplayTime,
.pose = {{0, 0, 0, 1}, {1, 1, 1}},
};
// Create spatial anchor using the new API
CHK_XR(xrCreateSpatialAnchorSpaceANDROID(session, spatialContext, &createInfo, &spatialAnchorEntityId, &spatialAnchorSpace));
// ...
অ্যাঙ্কর এন্টিটি আইডি থেকে XrSpace তৈরি করুন
আগে থেকে থাকা অ্যাঙ্কর এন্টিটি আইডি থেকে কীভাবে XrSpace তৈরি করতে হয় তা নিম্নলিখিত কোডের উদাহরণ থেকে দেখানো হয়েছে।
XrSpace anchorSpace = XR_NULL_HANDLE;
// Spatial anchor from XrSpace create info
XrSpatialAnchorSpaceFromIdCreateInfoANDROID createInfoFromId{
.type = XR_TYPE_SPATIAL_ANCHOR_SPACE_FROM_ID_CREATE_INFO_ANDROID,
.anchorEntityId = spatialAnchorEntityId,
};
// Create XrSpace handle from spatial anchor ID
CHK_XR(xrCreateSpatialAnchorSpaceFromIdANDROID(session, spatialContext, &createInfoFromId, &anchorSpace));
// ...
নতুন কমান্ড
নতুন স্ট্রাকচার
নতুন Enum কনস্ট্যান্ট
XR_ANDROID_SPATIAL_ANCHOR_SPACE_EXTENSION_NAMEXR_ANDROID_spatial_anchor_space_SPEC_VERSIONXrResult এক্সটেন্ড করা হচ্ছে :
XR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROID
XrStructureType এক্সটেন্ড করা হচ্ছে :
XR_TYPE_SPATIAL_ANCHOR_SPACE_FROM_ID_CREATE_INFO_ANDROID
ইস্যু
ভার্সনের ইতিহাস
রিভিশন ১, ১৫-০৯-২০২৫ (YuSheng Chang, Kyle Chen)
- এক্সটেনশনের প্রাথমিক বিবরণ।