নাম স্ট্রিং
XR_ANDROID_raycast
এক্সটেনশন প্রকার
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
464
রিভিশন
1
এক্সটেনশন এবং সংস্করণ নির্ভরতা
সর্বশেষ সংশোধিত তারিখ
2024-10-02
আইপি স্ট্যাটাস
কোন পরিচিত আইপি দাবি.
অবদানকারী
স্পেন্সার কুইন, গুগল
নিহাভ জৈন, গুগল
জন পার্সে, গুগল
জ্যারেড ফাইন্ডার, গুগল
লেভানা চেন, গুগল
কেনি ভার্কেমার, গুগল
ওভারভিউ
এই এক্সটেনশনটি অ্যাপ্লিকেশনটিকে পরিবেশে ট্র্যাকেবলের বিরুদ্ধে রেকাস্ট করার অনুমতি দেয়। রেকাস্টগুলি পরিবেশের বস্তুগুলি সনাক্ত করার জন্য দরকারী হতে পারে যেগুলির সাথে একটি রশ্মি ছেদ করবে৷ যেমন:
- উল্লম্ব রেকাস্ট ব্যবহার করে একটি ভাসমান বস্তু কোথায় পড়ে যাবে তা নির্ধারণ করতে।
- একটি ফরওয়ার্ড-ফেসিং রেকাস্ট ব্যবহার করে একজন ব্যবহারকারী কোথায় খুঁজছেন তা নির্ধারণ করতে।
প্রশ্ন সমর্থিত raycast ক্ষমতা
xrEnumerateRaycastSupportedTrackableTypesANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrEnumerateRaycastSupportedTrackableTypesANDROID(
XrInstance instance,
XrSystemId systemId,
uint32_t trackableTypeCapacityInput,
uint32_t* trackableTypeCountOutput,
XrTrackableTypeANDROID* trackableTypes);
পরামিতি বিবরণ
-
instance
হল XrInstance যেখান থেকেsystemId
পুনরুদ্ধার করা হয়েছিল। -
systemId
হলXrSystemId
যার সমর্থিত ট্র্যাকযোগ্য প্রকারগুলি রেকাস্টিংয়ের জন্য গণনা করা হচ্ছে। -
trackableTypeCapacityInput
হলtrackableTypes
এর ক্ষমতা, বা প্রয়োজনীয় ক্ষমতা পুনরুদ্ধার করার জন্য 0। -
trackableTypeCountOutput
হল অ্যারের গণনার একটি পয়েন্টার, অথবাtrackableTypeCapacityInput
অপর্যাপ্ত হলে প্রয়োজনীয় ক্ষমতার একটি পয়েন্টার।-
trackableTypes
হল XrTrackableTypeANDROID- এর একটি অ্যারের একটি পয়েন্টার, কিন্তুtrackableTypeCapacityInput
0
হলেNULL
হতে পারে ।
-
- প্রয়োজনীয়
trackableTypes
আকার পুনরুদ্ধারের বিস্তারিত বিবরণের জন্য বাফার সাইজ প্যারামিটার বিভাগটি দেখুন।
xrEnumerateRaycastSupportedTrackableTypesANDROID ট্র্যাকযোগ্য প্রকারগুলি গণনা করে যা বর্তমান সেশনের মাধ্যমে রেকাস্টিং সমর্থন করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_raycast
এক্সটেনশনটি xrEnumerateRaycastSupportedTrackableTypesANDROID কল করার আগে সক্রিয় করা আবশ্যক -
instance
অবশ্যই একটি বৈধ XrInstance হ্যান্ডেল হতে হবে -
trackableTypeCountOutput
একটিuint32_t
মানের একটি পয়েন্টার হতে হবে - যদি
trackableTypeCapacityInput
0
না হয়, তাহলেtrackableTypes
অবশ্যইtrackableTypeCapacityInput
XrTrackableTypeANDROID মানগুলির একটি অ্যারের নির্দেশক হতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_ERROR_VALIDATION_FAILURE
-
XR_ERROR_RUNTIME_FAILURE
-
XR_ERROR_HANDLE_INVALID
-
XR_ERROR_INSTANCE_LOST
-
XR_ERROR_SIZE_INSUFFICIENT
-
XR_ERROR_SYSTEM_INVALID
-
XR_ERROR_FUNCTION_UNSUPPORTED
একটি raycast সঞ্চালন
xrRaycastANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrRaycastANDROID(
XrSession session,
const XrRaycastInfoANDROID* rayInfo,
XrRaycastHitResultsANDROID* results);
পরামিতি বিবরণ
-
session
হল XrSession যা রেকাস্ট করে। -
rayInfo
হল XrRaycastInfoANDROID যা রশ্মিকে কাস্ট করার জন্য বর্ণনা করে। -
results
হল XrRaycastHitResultsANDROID- এর একটি পয়েন্টার যা রেকাস্টের ফলাফল গ্রহণ করে।
অ্যাপ্লিকেশনটি xrRaycastANDROID কল করে রেকাস্ট করতে পারে ।
- যদি একটি রেকাস্ট XrRaycastHitResultsANDROID::maxResults এর চেয়ে বেশি ট্র্যাকেবলকে ছেদ করে, রানটাইমকে অবশ্যই সেই হিট ফলাফলগুলি ফেরত দিতে হবে যা XrRaycastHitResultsANDROID:: রশ্মির উৎপত্তির কাছাকাছি।
- যদি একটি রেকাস্ট
XR_TRACKABLE_TYPE_ANDROID_PLANE
টাইপের একটি ট্র্যাকযোগ্য ছেদ করে, যা অন্য প্লেন দ্বারা সাবসাম করা হয়, রানটাইম শুধুমাত্র সাবসামিং প্লেনের জন্য হিট ফলাফল প্রদান করবে । - রানটাইমকে অবশ্যই XrRaycastInfoANDROID::origin থেকে XrRaycastInfoANDROID::ট্র্যাজেক্টরি ভেক্টর বরাবর নিকটতম-থেকে-দূরতম ক্রমে হিট ফলাফল প্রদান করতে হবে।
- রানটাইমটি অবশ্যই
XR_ERROR_TRACKABLE_TYPE_NOT_SUPPORTED_ANDROID
ফেরত দিতে হবে যদি XrRaycastInfoANDROID ::ট্র্যাকারদের XrEnumerateRaycastSupportedTROIDspe দ্বারা গণনা করা না হয়।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrRaycastANDROID কল করার আগে
XR_ANDROID_raycast
এক্সটেনশন সক্রিয় করা আবশ্যক -
session
অবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে -
rayInfo
অবশ্যই একটি বৈধ XrRaycastInfoANDROID কাঠামোর একটি পয়েন্টার হতে হবে৷ -
results
অবশ্যই একটি XrRaycastHitResultsANDROID কাঠামোর একটি নির্দেশক হতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED
-
XR_ERROR_TRACKABLE_TYPE_NOT_SUPPORTED_ANDROID
-
XR_ERROR_VALIDATION_FAILURE
-
XR_ERROR_RUNTIME_FAILURE
-
XR_ERROR_HANDLE_INVALID
-
XR_ERROR_INSTANCE_LOST
-
XR_ERROR_SESSION_LOST
-
XR_ERROR_OUT_OF_MEMORY
-
XR_ERROR_LIMIT_REACHED
-
XR_ERROR_POSE_INVALID
-
XR_ERROR_TIME_INVALID
-
XR_ERROR_FEATURE_UNSUPPORTED
XrRaycastInfoANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrRaycastInfoANDROID {
XrStructureType type;
void* next;
uint32_t maxResults;
uint32_t trackerCount;
const XrTrackableTrackerANDROID* trackers;
XrVector3f origin;
XrVector3f trajectory;
XrSpace space;
XrTime time;
} XrRaycastInfoANDROID;
সদস্য বিবরণ
-
type
হল এই কাঠামোর XrStructureType । -
next
হলNULL
বা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
maxResults
হলuint32_t
ফলাফলের সর্বাধিক সংখ্যা যা ফেরত দিতে হবে। -
trackerCount
হলtrackers
অ্যারেরuint32_t
গণনা। -
trackers
হল XrTrackableTrackerANDROID এর অ্যারে যার বিরুদ্ধে কাস্ট করা রশ্মি পরীক্ষা করা উচিত । -
origin
হল XrVector3f যেখান থেকে রশ্মি নিক্ষেপ করা হয়েছে। -
trajectory
হল XrVector3f যে রশ্মি লক্ষ্য করে। -
space
হল XrSpace যেখানে রশ্মি নিক্ষেপ করা হয়। -
time
হলXrTime
এ রশ্মি নিক্ষেপ করা হয়।
XrRaycastInfoANDROID গঠন রশ্মি ঢালাইয়ের বর্ণনা দেয়।
- XrRaycastInfoANDROID::trackers অ্যারেতে বিভিন্ন ধরনের ট্র্যাকার থাকতে পারে ।
- XrRaycastInfoANDROID::trackers অ্যারেতে একই ধরনের একাধিক ট্র্যাকার থাকা উচিত নয়, অন্যথায় রানটাইম অবশ্যই
XR_ERROR_VALIDATION_FAILURE
ফেরত দেবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_raycast
এক্সটেনশনটি অবশ্যই XrRaycastInfoANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_TYPE_RAYCAST_INFO_ANDROID
হতে হবে -
next
অবশ্যইNULL
বা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
trackers
অবশ্যইtrackerCount
বৈধ XrTrackableTrackerANDROID হ্যান্ডেলগুলির একটি অ্যারের নির্দেশক হতে হবে -
space
অবশ্যই একটি বৈধ XrSpace হ্যান্ডেল হতে হবে -
trackerCount
প্যারামিটার অবশ্যই0
এর বেশি হতে হবে -
space
এবংtrackers
উপাদান উভয়ই একই XrSession থেকে তৈরি, বরাদ্দ বা পুনরুদ্ধার করা আবশ্যক
XrRaycastHitResultsANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrRaycastHitResultsANDROID {
XrStructureType type;
void* next;
uint32_t resultsCapacityInput;
uint32_t resultsCountOutput;
XrRaycastHitResultANDROID* results;
} XrRaycastHitResultsANDROID;
সদস্য বিবরণ
-
type
হল এই কাঠামোর XrStructureType । -
next
হলNULL
বা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
resultsCapacityInput
হলresults
অ্যারের ক্ষমতা, বা প্রয়োজনীয় ক্ষমতা পুনরুদ্ধারের জন্য একটি অনুরোধ নির্দেশ করার জন্য 0। -
resultsCountOutput
হল লিখিতresults
গণনার একটি পয়েন্টার, অথবাresultsCapacityInput
অপর্যাপ্ত হলে প্রয়োজনীয় ক্ষমতার একটি পয়েন্টার। -
results
হল XrRaycastHitResultANDROID স্ট্রাকচারের একটি অ্যারের নির্দেশক৷resultsCapacityInput
0 হলে এটিNULL
হতে পারে । - প্রয়োজনীয়
results
আকার পুনরুদ্ধারের বিস্তারিত বিবরণের জন্য বাফার সাইজ প্যারামিটার বিভাগটি দেখুন।
XrRaycastHitResultsANDROID- এ একটি রেকাস্টের হিটগুলির অ্যারে রয়েছে৷
রানটাইম অবশ্যই resultsCountOutput
XrRaycastInfoANDROID::maxResults- এর থেকে কম বা সমান করতে হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_raycast
এক্সটেনশনটি XrRaycastHitResultsANDROID ব্যবহার করার আগে সক্রিয় করা আবশ্যক -
type
XR_TYPE_RAYCAST_HIT_RESULTS_ANDROID
হতে হবে -
next
অবশ্যইNULL
বা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
results
অবশ্যইresultsCapacityInput
XrRaycastHitResultANDROID-ভিত্তিক কাঠামোর একটি অ্যারের নির্দেশক হতে হবে -
resultsCapacityInput
ইনপুট প্যারামিটার অবশ্যই0
এর বেশি হতে হবে
XrRaycastHitResultANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrRaycastHitResultANDROID {
XrTrackableTypeANDROID type;
XrTrackableANDROID trackable;
XrPosef pose;
} XrRaycastHitResultANDROID;
সদস্য বিবরণ
-
type
হল XrTrackableTypeANDROID এর ট্র্যাকযোগ্য যা রেকাস্ট হিট করেছে। -
trackable
হলXrTrackableANDROID
যা raycast হিট করেছে, অথবাXR_NULL_TRACKABLE_ANDROID
যদি ট্র্যাকযোগ্যtype
XR_TRACKABLE_TYPE_DEPTH_ANDROID
হয়। -
pose
হল XrPosef যা raycast হিট করেছে।
XrRaycastHitResultANDROID- এ একটি রেকাস্ট হিটের বিবরণ রয়েছে।
XrRaycastHitResultANDROID::একটি প্লেনের আঘাতের ভঙ্গি এমন হতে হবে যাতে X এবং Z সমতলের সমান্তরাল হয়, এবং Y অক্ষ সমতলের জন্য স্বাভাবিক।
ট্র্যাকযোগ্য আঘাতের ধরন | বর্ণনা |
| একটি বিন্দুর সঠিক গভীরতা এবং অভিযোজন নির্ধারণ করতে অনুভূমিক এবং/অথবা উল্লম্ব পৃষ্ঠগুলিতে আঘাত করে। |
| একটি বিন্দুর সঠিক গভীরতা এবং অভিযোজন নির্ধারণ করতে সমগ্র দৃশ্য থেকে গভীরতার তথ্য ব্যবহার করে। |
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_raycast
এক্সটেনশনটি XrRaycastHitResultANDROID ব্যবহার করার আগে সক্রিয় করা আবশ্যক -
type
একটি বৈধ XrTrackableTypeANDROID মান হতে হবে
রেকাস্টিংয়ের উদাহরণ কোড
নিচের উদাহরণ কোডটি দেখায় কিভাবে রেকাস্ট করতে হয়।
XrSession session; // previously initialized
XrTime updateTime; // previously initialized
XrSpace appSpace; // space created for XR_REFERENCE_SPACE_TYPE_LOCAL.
XrPosef headPose; // latest pose of the HMD.
XrTrackableTrackerANDROID planeTracker; // tracker for plane trackables.
XrTrackableTrackerANDROID depthTracker; // tracker for depth trackables.
// Perform a raycast against multiple trackers.
XrTrackableTrackerANDROID trackers[] = {
&planeTracker,
&depthTracker,
};
XrRaycastInfoANDROID rayInfo = {XR_TYPE_RAYCAST_INFO_ANDROID};
rayInfo.trackerCount = sizeof(trackers) / sizeof(XrTrackableTrackerANDROID);
rayInfo.trackers = trackers;
rayInfo.origin = headPose.position;
rayInfo.trajectory = CalculateForwardDirectionFromHeadPose(headPose);
rayInfo.space = appSpace;
rayInfo.time = updateTime;
uint32_t totalHitResults = 0;
constexpr uint32 NUM_DESIRED_RESULTS = 2;
XrRaycastHitResultANDROID hitResult[NUM_DESIRED_RESULTS];
XrRaycastHitResultsANDROID hitResults = {XR_TYPE_RAYCAST_HIT_RESULTS_ANDROID};
hitResults.maxResults = NUM_DESIRED_RESULTS;
hitResults.resultsCapacityInput = NUM_DESIRED_RESULTS;
hitResults.results = hitResult;
XrResult result = xrRaycastANDROID(session, &rayInfo, &hitResults);
if (result == XR_SUCCESS && hitResults.resultsCountOutput >= 1) {
// Hit results are returned in closest-to-farthest order in
// hitResults.results[0] .. hitResults.results[hitResults.resultsCountOutput - 1]
}
নতুন Enum ধ্রুবক
XrStructureType গণনা এর সাথে প্রসারিত করা হয়েছে:
-
XR_TYPE_RAYCAST_INFO_ANDROID
-
XR_TYPE_RAYCAST_HIT_RESULTS_ANDROID
নতুন কাঠামো
নতুন ফাংশন
ইস্যু
সংস্করণ ইতিহাস
- রিভিশন 1, 2024-10-02 (কেনি ভার্কেমার)
- প্রাথমিক এক্সটেনশন বর্ণনা