নাম স্ট্রিং
XR_ANDROID_avatar_eyes
এক্সটেনশন প্রকার
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
457
রিভিশন
1
এক্সটেনশন এবং সংস্করণ নির্ভরতা
সর্বশেষ সংশোধিত তারিখ
2024-09-30
আইপি স্ট্যাটাস
কোন পরিচিত আইপি দাবি.
অবদানকারী
স্পেন্সার কুইন, গুগল
জ্যারেড ফাইন্ডার, গুগল
লেভানা চেন, গুগল
ওভারভিউ
এই এক্সটেনশনটি অ্যাপ্লিকেশনগুলিকে ব্যবহারকারীর চোখের অবস্থান এবং অভিযোজন, সেইসাথে চোখের ট্র্যাকিং স্থিতি পেতে সক্ষম করে।
এই এক্সটেনশনটি অবতারদের জন্য চোখের ভঙ্গি এবং স্থিতি উপস্থাপনাকে আরও বাস্তবসম্মত করার উদ্দেশ্যে করা হয়েছে। সেই উদ্দেশ্যে:
- এটি নন-ট্র্যাকড স্টেট যেমন ব্লিঙ্কিং এর জন্য অনুমতি দেয়।
- এটি মনোকুলার বা বাইনোকুলার ট্র্যাকিংয়ের অনুমতি দেয়।
এই এক্সটেনশনটি অন্যান্য চোখের ট্র্যাকিং উদ্দেশ্যে ব্যবহার করা উচিত নয়। মিথস্ক্রিয়া জন্য, XR_EXT_eye_gaze_interaction
ব্যবহার করা উচিত ।
আই ট্র্যাকার
একটি আই ট্র্যাকার হল একটি সেন্সিং ডিভাইস যা চোখ ট্র্যাক করে এবং সঠিকভাবে ম্যাপ করে যেখানে ব্যবহারকারী খুঁজছেন। এই এক্সটেনশনের মূল উদ্দেশ্য হল একটি ভার্চুয়াল দৃশ্যে ব্যবহারকারীর দৃষ্টিকে তাদের অবতারগুলিতে ম্যাপ করা।
আই ট্র্যাকিং ডেটা সংবেদনশীল ব্যক্তিগত তথ্য হতে পারে এবং ব্যক্তিগত গোপনীয়তা এবং অখণ্ডতার সাথে ঘনিষ্ঠভাবে যুক্ত। এটি দৃঢ়ভাবে সুপারিশ করা হয় যে অ্যাপ্লিকেশনগুলি যেগুলি আই ট্র্যাকিং ডেটা সঞ্চয় করে বা স্থানান্তর করে সেগুলি সর্বদা ব্যবহারকারীকে সক্রিয় এবং নির্দিষ্ট গ্রহণযোগ্যতার জন্য অনুরোধ করে৷
- একটি অ্যাপ্লিকেশান
XR_ERROR_PERMISSION_INSUFFICIENT
পাবে যখন একটি সক্রিয় আই ট্র্যাকার তৈরি করার চেষ্টা করা হবে যতক্ষণ না অ্যাপ্লিকেশনটিকে আই ট্র্যাকারে অ্যাক্সেসের অনুমতি দেওয়া হয়।
সিস্টেমের ক্ষমতা পরিদর্শন করুন
xrGetSystemProperties কল করার সময় একটি অ্যাপ্লিকেশন XrSystemAvatarEyesPropertiesANDROID কাঠামোকে XrSystemProperties- এ চেইন করে সিস্টেমটি অবতার চোখ সমর্থন করে কিনা তা পরীক্ষা করতে পারে । যদি supportsAvatarEyes
XR_FALSE
ফেরত দেয়, তাহলে একটি অ্যাপ্লিকেশন xrCreateEyeTrackerANDROID থেকে XR_ERROR_FEATURE_UNSUPPORTED
পাবে।
typedef struct XrSystemAvatarEyesPropertiesANDROID {
XrStructureType type;
void* next;
XrBool32 supportsAvatarEyes;
} XrSystemAvatarEyesPropertiesANDROID;
সদস্য বিবরণ
-
type
হল এই কাঠামোর XrStructureType । -
next
হলNULL
বা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
supportsAvatarEyes
হল একটিXrBool32
, বর্তমান সিস্টেম অবতার চোখ সমর্থন করে কিনা তা নির্দেশ করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_avatar_eyes
এক্সটেনশনটি অবশ্যই XrSystemAvatarEyesPropertiesANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_TYPE_SYSTEM_AVATAR_EYES_PROPERTIES_ANDROID
হতে হবে -
next
অবশ্যইNULL
বা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে
একটি আই ট্র্যাকার হ্যান্ডেল তৈরি করুন
XR_DEFINE_HANDLE(XrEyeTrackerANDROID)
XrEyeTrackerANDROID হ্যান্ডেল চোখ ট্র্যাক করার জন্য একটি আই ট্র্যাকার উপস্থাপন করে এবং ব্যবহারকারী যা দেখছে তা সঠিকভাবে ম্যাপ করে।
এই হ্যান্ডেলটি এই এক্সটেনশনের অন্যান্য ফাংশন ব্যবহার করে চোখের ট্র্যাকিং ডেটা অ্যাক্সেস করতে ব্যবহার করা যেতে পারে ।
আই ট্র্যাকিং দৃশ্যে চোখের ভঙ্গি এবং স্থিতি উপস্থাপনা প্রদান করে।
xrCreateEyeTrackerANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreateEyeTrackerANDROID(
XrSession session,
const XrEyeTrackerCreateInfoANDROID* createInfo,
XrEyeTrackerANDROID* eyeTracker);
পরামিতি বিবরণ
-
session
হল একটি XrSession হ্যান্ডেল যেখানে চোখের ট্র্যাকিং সক্রিয় থাকবে। -
createInfo
হল XrEyeTrackerCreateInfoANDROID যা চোখের ট্র্যাকিং নির্দিষ্ট করতে ব্যবহৃত হয়। -
eyeTracker
হল ফেরত XrEyeTrackerANDROID হ্যান্ডেল৷
একটি অ্যাপ্লিকেশন xrCreateEyeTrackerANDROID ফাংশন ব্যবহার করে একটি XrEyeTrackerANDROID হ্যান্ডেল তৈরি করতে পারে ।
যদি সিস্টেম চোখের ট্র্যাকিং সমর্থন না করে, তাহলে xrCreateEyeTrackerANDROID থেকে XR_ERROR_FEATURE_UNSUPPORTED
ফেরত দেওয়া হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrCreateEyeTrackerANDROID কল করার পূর্বে
XR_ANDROID_avatar_eyes
এক্সটেনশনটি সক্রিয় করা আবশ্যক -
session
অবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে -
createInfo
অবশ্যই একটি বৈধ XrEyeTrackerCreateInfoANDROID কাঠামোর একটি নির্দেশক হতে হবে -
eyeTracker
অবশ্যই একটি XrEyeTrackerANDROID হ্যান্ডেলের একটি পয়েন্টার হতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED
-
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
XrEyeTrackerCreateInfoANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrEyeTrackerCreateInfoANDROID {
XrStructureType type;
void* next;
} XrEyeTrackerCreateInfoANDROID;
সদস্য বিবরণ
-
type
হল এই কাঠামোর XrStructureType । -
next
হলNULL
বা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি।
XrEyeTrackerCreateInfoANDROID কাঠামো একটি XrEyeTrackerANDROID হ্যান্ডেল তৈরি করার তথ্য বর্ণনা করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrEyeTrackerCreateInfoANDROID ব্যবহার করার আগে
XR_ANDROID_avatar_eyes
এক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে -
type
XR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROID
হতে হবে -
next
অবশ্যইNULL
বা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে
xrDestroyEyeTrackerANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrDestroyEyeTrackerANDROID(
XrEyeTrackerANDROID eyeTracker);
পরামিতি বিবরণ
-
eyeTracker
হল একটি XrEyeTrackerANDROID যা পূর্বে xrCreateEyeTrackerANDROID দ্বারা তৈরি।
xrDestroyEyeTrackerANDROID ফাংশন eyeTracker
এবং অন্তর্নিহিত সংস্থানগুলি প্রকাশ করে যখন চোখের ট্র্যাকিং অভিজ্ঞতাগুলি শেষ হয়৷
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrDestroyEyeTrackerANDROID কল করার পূর্বে
XR_ANDROID_avatar_eyes
এক্সটেনশনটি সক্রিয় করা আবশ্যক -
eyeTracker
অবশ্যই একটি বৈধ XrEyeTrackerANDROID হ্যান্ডেল হতে হবে৷
থ্রেড নিরাপত্তা
-
eyeTracker
অ্যাক্সেস, এবং যেকোনো শিশু হ্যান্ডেলগুলিকে বাহ্যিকভাবে সিঙ্ক্রোনাইজ করতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_ERROR_FUNCTION_UNSUPPORTED
-
XR_ERROR_HANDLE_INVALID
চোখের তথ্য পাওয়া
xrGetEyesInfoANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrGetEyesInfoANDROID(
XrEyeTrackerANDROID eyeTracker,
const XrEyesGetInfoANDROID* getInfo,
XrEyesANDROID* infoOutput);
পরামিতি বিবরণ
-
eyeTracker
হল একটি XrEyeTrackerANDROID যা পূর্বে xrCreateEyeTrackerANDROID দ্বারা তৈরি। -
getInfo
হল XrEyesGetInfoANDROID- এর একটি পয়েন্টার যা আউটপুট প্রয়োজন তা নির্দিষ্ট করতে ব্যবহৃত হয়। -
infoOutput
হল XrEyesANDROID- এর একটি পয়েন্টার যা ভঙ্গি এবং অবস্থা সহ প্রত্যাবর্তিত চোখের তথ্য ধারণ করে।
xrGetEyesInfoANDROID ফাংশন চোখের অবস্থা এবং ভঙ্গির তথ্য পায়।
XrEyesGetInfoANDROID::time, XrEyesGetInfoANDROID::baseSpace ব্যবহার করে xrGetEyesInfoANDROID এ কল করার সময় চোখের তথ্য সমাধান করা হয়েছে এবং বেস স্পেসের সাথে সম্পর্কিত।
যেকোনো সময়ে চোখের ভঙ্গির অবস্থান এবং দিক উভয়ই ট্র্যাক বা আনট্র্যাক করা হয়। এর মানে হল যে অ্যাপ্লিকেশানগুলি আশা করতে পারে যে XR_SPACE_LOCATION_POSITION_TRACKED_BIT
এবং XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT
উভয়ই সরবরাহকৃত XrEyesANDROID::eyes তে সেট বা সাফ করা হবে এবং XrEyesANDROID::মোড ট্র্যাকিং অবস্থা নির্দেশ করবে৷
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_avatar_eyes
এক্সটেনশনটি অবশ্যই xrGetEyesInfoANDROID কল করার আগে সক্রিয় করতে হবে -
eyeTracker
অবশ্যই একটি বৈধ XrEyeTrackerANDROID হ্যান্ডেল হতে হবে৷ -
getInfo
অবশ্যই একটি বৈধ XrEyesGetInfoANDROID কাঠামোর একটি নির্দেশক হতে হবে -
infoOutput
একটি XrEyesANDROID কাঠামোর একটি পয়েন্টার হতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED
-
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_TIME_INVALID
XrEyesGetInfoANDROID কাঠামোতে চোখের ভঙ্গি এবং অবস্থা পুনরুদ্ধার করার জন্য প্রয়োজনীয় তথ্য রয়েছে।
typedef struct XrEyesGetInfoANDROID {
XrStructureType type;
void* next;
XrTime time;
XrSpace baseSpace;
} XrEyesGetInfoANDROID;
সদস্য বিবরণ
-
type
হল এই কাঠামোর XrStructureType । -
next
হলNULL
বা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
time
হলXrTime
যেখানেbaseSpace
সাপেক্ষে স্থানাঙ্কগুলি মূল্যায়ন করা হয়। -
baseSpace
এইtime
চোখের ভঙ্গি এই XrSpace আপেক্ষিক হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_avatar_eyes
এক্সটেনশনটি অবশ্যই XrEyesGetInfoANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_TYPE_EYES_GET_INFO_ANDROID
হতে হবে -
next
অবশ্যইNULL
বা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
baseSpace
অবশ্যই একটি বৈধ XrSpace হ্যান্ডেল হতে হবে
XrEyesANDROID গঠনে ট্র্যাক করা চোখের তথ্য রয়েছে।
typedef struct XrEyesANDROID {
XrStructureType type;
void* next;
XrEyeANDROID eyes[XR_EYE_MAX_ANDROID];
XrEyeTrackingModeANDROID mode;
} XrEyesANDROID;
সদস্য বিবরণ
-
type
হল এই কাঠামোর XrStructureType । -
next
হলNULL
বা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
eyes
হলXrEyeIndexANDROID
দ্বারা সূচীকৃত বাম এবং ডান চোখের জন্য XrEyeANDROID- এর একটি অ্যারে৷ -
mode
হল XrEyeTrackingModeANDROID যা নির্দেশ করে যে চোখ ট্র্যাক করছে এবং কোনটি।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_avatar_eyes
এক্সটেনশনটি অবশ্যই XrEyesANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_TYPE_EYES_ANDROID
হতে হবে -
next
অবশ্যইNULL
বা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
eyes
যে কোনো প্রদত্ত উপাদান অবশ্যই একটি বৈধ XrEyeANDROID গঠন হতে হবে -
mode
অবশ্যই একটি বৈধ XrEyeTrackingModeANDROID মান হতে হবে৷
XrEyeANDROID গঠন একটি চোখের অবস্থা, অবস্থান এবং অভিযোজন বর্ণনা করে।
typedef struct XrEyeANDROID {
XrEyeStateANDROID eyeState;
XrPosef eyePose;
} XrEyeANDROID;
সদস্য বিবরণ
-
eyeState
হল একটি চোখের XrEyeStateANDROID । -
pose
হল একটি XrPosef যা সংশ্লিষ্ট XrEyesGetInfoANDROID::baseSpace- এর রেফারেন্স ফ্রেমের মধ্যে একটি চোখের উৎপত্তির অবস্থান এবং অভিযোজন সংজ্ঞায়িত করে। এখানে একটি পরিচয় অভিযোজন ব্যবহারকারীর চোখে +Z সহ একটি স্থানাঙ্ক অক্ষ, +X ডানদিকে এবং +Y উপরে উপস্থাপন করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_avatar_eyes
এক্সটেনশনটি অবশ্যই XrEyeANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
eyeState
একটি বৈধ XrEyeStateANDROID মান হতে হবে
XrEyeStateANDROID গণনা ট্র্যাক করা চোখের বিভিন্ন অবস্থা চিহ্নিত করে।
typedef enum XrEyeStateANDROID {
XR_EYE_STATE_INVALID_ANDROID = 0,
XR_EYE_STATE_GAZING_ANDROID = 1,
XR_EYE_STATE_SHUT_ANDROID = 2
} XrEyeStateANDROID;
enums নিম্নলিখিত অর্থ আছে:
এনাম | বর্ণনা |
| ইঙ্গিত করে যে চোখটি একটি ত্রুটির অবস্থায় রয়েছে বা উপস্থিত নেই। |
| ইঙ্গিত করে যে চোখ তাকিয়ে আছে। |
| ইঙ্গিত করে যে চোখের পলক বা পলকের কারণে চোখ বন্ধ হয়ে গেছে। |
XrEyeIndexANDROID গণনা বাম বা ডান চোখের সূচক চিহ্নিত করে।
typedef enum XrEyeIndexANDROID {
XR_EYE_INDEX_LEFT_ANDROID = 0,
XR_EYE_INDEX_RIGHT_ANDROID = 1
} XrEyeIndexANDROID;
enums নিম্নলিখিত অর্থ আছে:
এনাম | বর্ণনা |
| বাম চোখ। |
| ডান চোখ। |
XrEyeTrackingModeANDROID গণনা ট্র্যাক করা চোখের বিভিন্ন মোড সনাক্ত করে।
typedef enum XrEyeTrackingModeANDROID {
XR_EYE_TRACKING_MODE_NOT_TRACKING_ANDROID = 0,
XR_EYE_TRACKING_MODE_RIGHT_ANDROID = 1,
XR_EYE_TRACKING_MODE_LEFT_ANDROID = 2,
XR_EYE_TRACKING_MODE_BOTH_ANDROID = 3
} XrEyeTrackingModeANDROID;
enums নিম্নলিখিত অর্থ আছে:
এনাম | বর্ণনা |
| ইঙ্গিত করে যে চোখের ট্র্যাকিং সক্রিয় নয়। |
| নির্দেশ করে যে শুধুমাত্র ডান চোখ ট্র্যাক করছে। |
| নির্দেশ করে যে শুধুমাত্র বাম চোখ ট্র্যাক করছে। |
| নির্দেশ করে যে বাম এবং ডান উভয় চোখই ট্র্যাক করছে। |
চোখের ট্র্যাকিং জন্য উদাহরণ কোড
নিচের উদাহরণ কোডটি দেখায় কিভাবে একটি ভিউ স্পেসের সাথে সম্পর্কিত চোখের তথ্য পেতে হয়।
XrSession session; // previously initialized, for example, created at app startup.
XrSpace viewSpace; // space created for XR_REFERENCE_SPACE_TYPE_VIEW.
// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrCreateEyeTrackerANDROID xrCreateEyeTrackerANDROID; // previously initialized
PFN_xrDestroyEyeTrackerANDROID xrDestroyEyeTrackerANDROID; // previously initialized
PFN_xrGetEyesInfoANDROID xrGetEyesInfoANDROID; // previously initialized
// This will use the XrSession that is bound to the eye tracker done at time of creation.
XrEyeTrackerANDROID eyeTracker;
XrEyeTrackerCreateInfoANDROID createInfo{
.type = XR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROID,
.next = nullptr};
CHK_XR(xrCreateEyeTrackerANDROID(session, &createInfo, &eyeTracker));
while (1) {
// ...
// For every frame in frame loop
// ...
XrFrameState frameState; // previously returned from xrWaitFrame
const XrTime time = frameState.predictedDisplayTime;
XrEyesANDROID eyesInfo{.type = XR_TYPE_EYES_ANDROID,
.next = nullptr,
.mode = XR_EYE_TRACKING_MODE_BOTH_ANDROID};
XrEyesGetInfoANDROID eyesGetInfo{.type = XR_TYPE_EYES_GET_INFO_ANDROID,
.next = nullptr,
.time = time,
.baseSpace = viewSpace};
CHK_XR(xrGetEyesInfoANDROID(eyeTracker, &eyesGetInfo, &eyesInfo));
// eyes tracking information is now available:
// drawLeftEye(eyesInfo.eyes[XR_EYE_INDEX_LEFT_ANDROID].eyePose);
// drawRightEye(eyesInfo.eyes[XR_EYE_INDEX_RIGHT_ANDROID].eyePose);
// ...
// Finish frame loop
// ...
}
// after usage
CHK_XR(xrDestroyEyeTrackerANDROID(eyeTracker));
নতুন অবজেক্টের ধরন
নতুন Enum ধ্রুবক
-
XR_EYE_MAX_ANDROID
XrObjectType গণনা এর সাথে প্রসারিত করা হয়েছে:
-
XR_OBJECT_TYPE_EYE_TRACKER_ANDROID
XrStructureType গণনা এর সাথে প্রসারিত করা হয়েছে:
-
XR_TYPE_EYES_ANDROID
-
XR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROID
-
XR_TYPE_EYES_GET_INFO_ANDROID
-
XR_TYPE_SYSTEM_AVATAR_EYES_PROPERTIES_ANDROID
নতুন Enums
নতুন কাঠামো
- XrEyeANDROID
- XrEyesANDROID
- XrEyesGetInfoANDROID
- XrEyeTrackerCreateInfoANDROID
- XrSystemAvatarEyesPropertiesANDROID
নতুন ফাংশন
ইস্যু
সংস্করণ ইতিহাস
- রিভিশন 1, 2024-09-04 (লেভানা চেন)
- প্রাথমিক এক্সটেনশন বর্ণনা
নাম স্ট্রিং
XR_ANDROID_avatar_eyes
এক্সটেনশন প্রকার
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
457
রিভিশন
1
এক্সটেনশন এবং সংস্করণ নির্ভরতা
সর্বশেষ সংশোধিত তারিখ
2024-09-30
আইপি স্ট্যাটাস
কোন পরিচিত আইপি দাবি.
অবদানকারী
স্পেন্সার কুইন, গুগল
জ্যারেড ফাইন্ডার, গুগল
লেভানা চেন, গুগল
ওভারভিউ
এই এক্সটেনশনটি অ্যাপ্লিকেশনগুলিকে ব্যবহারকারীর চোখের অবস্থান এবং অভিযোজন, সেইসাথে চোখের ট্র্যাকিং স্থিতি পেতে সক্ষম করে।
এই এক্সটেনশনটি অবতারদের জন্য চোখের ভঙ্গি এবং স্থিতি উপস্থাপনাকে আরও বাস্তবসম্মত করার উদ্দেশ্যে করা হয়েছে। সেই উদ্দেশ্যে:
- এটি নন-ট্র্যাকড স্টেট যেমন ব্লিঙ্কিং এর জন্য অনুমতি দেয়।
- এটি মনোকুলার বা বাইনোকুলার ট্র্যাকিংয়ের অনুমতি দেয়।
এই এক্সটেনশনটি অন্যান্য চোখের ট্র্যাকিং উদ্দেশ্যে ব্যবহার করা উচিত নয়। মিথস্ক্রিয়া জন্য, XR_EXT_eye_gaze_interaction
ব্যবহার করা উচিত ।
আই ট্র্যাকার
একটি আই ট্র্যাকার হল একটি সেন্সিং ডিভাইস যা চোখ ট্র্যাক করে এবং সঠিকভাবে ম্যাপ করে যেখানে ব্যবহারকারী খুঁজছেন। এই এক্সটেনশনের মূল উদ্দেশ্য হল একটি ভার্চুয়াল দৃশ্যে ব্যবহারকারীর দৃষ্টিকে তাদের অবতারগুলিতে ম্যাপ করা।
আই ট্র্যাকিং ডেটা সংবেদনশীল ব্যক্তিগত তথ্য হতে পারে এবং ব্যক্তিগত গোপনীয়তা এবং অখণ্ডতার সাথে ঘনিষ্ঠভাবে যুক্ত। এটি দৃঢ়ভাবে সুপারিশ করা হয় যে অ্যাপ্লিকেশনগুলি যেগুলি আই ট্র্যাকিং ডেটা সঞ্চয় করে বা স্থানান্তর করে সেগুলি সর্বদা ব্যবহারকারীকে সক্রিয় এবং নির্দিষ্ট গ্রহণযোগ্যতার জন্য অনুরোধ করে৷
- একটি অ্যাপ্লিকেশান
XR_ERROR_PERMISSION_INSUFFICIENT
পাবে যখন একটি সক্রিয় আই ট্র্যাকার তৈরি করার চেষ্টা করা হবে যতক্ষণ না অ্যাপ্লিকেশনটিকে আই ট্র্যাকারে অ্যাক্সেসের অনুমতি দেওয়া হয়।
সিস্টেমের ক্ষমতা পরিদর্শন করুন
xrGetSystemProperties কল করার সময় একটি অ্যাপ্লিকেশন XrSystemAvatarEyesPropertiesANDROID কাঠামোকে XrSystemProperties- এ চেইন করে সিস্টেমটি অবতার চোখ সমর্থন করে কিনা তা পরীক্ষা করতে পারে । যদি supportsAvatarEyes
XR_FALSE
ফেরত দেয়, তাহলে একটি অ্যাপ্লিকেশন xrCreateEyeTrackerANDROID থেকে XR_ERROR_FEATURE_UNSUPPORTED
পাবে।
typedef struct XrSystemAvatarEyesPropertiesANDROID {
XrStructureType type;
void* next;
XrBool32 supportsAvatarEyes;
} XrSystemAvatarEyesPropertiesANDROID;
সদস্য বিবরণ
-
type
হল এই কাঠামোর XrStructureType । -
next
হলNULL
বা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
supportsAvatarEyes
হল একটিXrBool32
, বর্তমান সিস্টেম অবতার চোখ সমর্থন করে কিনা তা নির্দেশ করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_avatar_eyes
এক্সটেনশনটি অবশ্যই XrSystemAvatarEyesPropertiesANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_TYPE_SYSTEM_AVATAR_EYES_PROPERTIES_ANDROID
হতে হবে -
next
অবশ্যইNULL
বা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে
একটি আই ট্র্যাকার হ্যান্ডেল তৈরি করুন
XR_DEFINE_HANDLE(XrEyeTrackerANDROID)
XrEyeTrackerANDROID হ্যান্ডেল চোখ ট্র্যাক করার জন্য একটি আই ট্র্যাকার উপস্থাপন করে এবং ব্যবহারকারী যা দেখছে তা সঠিকভাবে ম্যাপ করে।
এই হ্যান্ডেলটি এই এক্সটেনশনের অন্যান্য ফাংশন ব্যবহার করে চোখের ট্র্যাকিং ডেটা অ্যাক্সেস করতে ব্যবহার করা যেতে পারে ।
আই ট্র্যাকিং দৃশ্যে চোখের ভঙ্গি এবং স্থিতি উপস্থাপনা প্রদান করে।
xrCreateEyeTrackerANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreateEyeTrackerANDROID(
XrSession session,
const XrEyeTrackerCreateInfoANDROID* createInfo,
XrEyeTrackerANDROID* eyeTracker);
পরামিতি বিবরণ
-
session
হল একটি XrSession হ্যান্ডেল যেখানে চোখের ট্র্যাকিং সক্রিয় থাকবে। -
createInfo
হল XrEyeTrackerCreateInfoANDROID যা চোখের ট্র্যাকিং নির্দিষ্ট করতে ব্যবহৃত হয়। -
eyeTracker
হল ফেরত XrEyeTrackerANDROID হ্যান্ডেল৷
একটি অ্যাপ্লিকেশন xrCreateEyeTrackerANDROID ফাংশন ব্যবহার করে একটি XrEyeTrackerANDROID হ্যান্ডেল তৈরি করতে পারে ।
যদি সিস্টেম চোখের ট্র্যাকিং সমর্থন না করে, তাহলে xrCreateEyeTrackerANDROID থেকে XR_ERROR_FEATURE_UNSUPPORTED
ফেরত দেওয়া হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrCreateEyeTrackerANDROID কল করার পূর্বে
XR_ANDROID_avatar_eyes
এক্সটেনশনটি সক্রিয় করা আবশ্যক -
session
অবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে -
createInfo
অবশ্যই একটি বৈধ XrEyeTrackerCreateInfoANDROID কাঠামোর একটি নির্দেশক হতে হবে -
eyeTracker
অবশ্যই একটি XrEyeTrackerANDROID হ্যান্ডেলের একটি পয়েন্টার হতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED
-
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
XrEyeTrackerCreateInfoANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrEyeTrackerCreateInfoANDROID {
XrStructureType type;
void* next;
} XrEyeTrackerCreateInfoANDROID;
সদস্য বিবরণ
-
type
হল এই কাঠামোর XrStructureType । -
next
হলNULL
বা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি।
XrEyeTrackerCreateInfoANDROID কাঠামো একটি XrEyeTrackerANDROID হ্যান্ডেল তৈরি করার তথ্য বর্ণনা করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrEyeTrackerCreateInfoANDROID ব্যবহার করার আগে
XR_ANDROID_avatar_eyes
এক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে -
type
XR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROID
হতে হবে -
next
অবশ্যইNULL
বা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে
xrDestroyEyeTrackerANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrDestroyEyeTrackerANDROID(
XrEyeTrackerANDROID eyeTracker);
পরামিতি বিবরণ
-
eyeTracker
হল একটি XrEyeTrackerANDROID যা পূর্বে xrCreateEyeTrackerANDROID দ্বারা তৈরি।
xrDestroyEyeTrackerANDROID ফাংশন eyeTracker
এবং অন্তর্নিহিত সংস্থানগুলি প্রকাশ করে যখন চোখের ট্র্যাকিং অভিজ্ঞতাগুলি শেষ হয়৷
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrDestroyEyeTrackerANDROID কল করার পূর্বে
XR_ANDROID_avatar_eyes
এক্সটেনশনটি সক্রিয় করা আবশ্যক -
eyeTracker
অবশ্যই একটি বৈধ XrEyeTrackerANDROID হ্যান্ডেল হতে হবে৷
থ্রেড নিরাপত্তা
-
eyeTracker
অ্যাক্সেস, এবং যেকোনো শিশু হ্যান্ডেলগুলিকে বাহ্যিকভাবে সিঙ্ক্রোনাইজ করতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_ERROR_FUNCTION_UNSUPPORTED
-
XR_ERROR_HANDLE_INVALID
চোখের তথ্য পাওয়া
xrGetEyesInfoANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrGetEyesInfoANDROID(
XrEyeTrackerANDROID eyeTracker,
const XrEyesGetInfoANDROID* getInfo,
XrEyesANDROID* infoOutput);
পরামিতি বিবরণ
-
eyeTracker
হল একটি XrEyeTrackerANDROID যা পূর্বে xrCreateEyeTrackerANDROID দ্বারা তৈরি। -
getInfo
হল XrEyesGetInfoANDROID- এর একটি পয়েন্টার যা আউটপুট প্রয়োজন তা নির্দিষ্ট করতে ব্যবহৃত হয়। -
infoOutput
হল XrEyesANDROID- এর একটি পয়েন্টার যা ভঙ্গি এবং অবস্থা সহ প্রত্যাবর্তিত চোখের তথ্য ধারণ করে।
xrGetEyesInfoANDROID ফাংশন চোখের অবস্থা এবং ভঙ্গির তথ্য পায়।
XrEyesGetInfoANDROID::time, XrEyesGetInfoANDROID::baseSpace ব্যবহার করে xrGetEyesInfoANDROID এ কল করার সময় চোখের তথ্য সমাধান করা হয়েছে এবং বেস স্পেসের সাথে সম্পর্কিত।
যেকোনো সময়ে চোখের ভঙ্গির অবস্থান এবং দিক উভয়ই ট্র্যাক বা আনট্র্যাক করা হয়। এর মানে হল যে অ্যাপ্লিকেশানগুলি আশা করতে পারে যে XR_SPACE_LOCATION_POSITION_TRACKED_BIT
এবং XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT
উভয়ই সরবরাহকৃত XrEyesANDROID::eyes তে সেট বা সাফ করা হবে এবং XrEyesANDROID::মোড ট্র্যাকিং অবস্থা নির্দেশ করবে৷
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_avatar_eyes
এক্সটেনশনটি অবশ্যই xrGetEyesInfoANDROID কল করার আগে সক্রিয় করতে হবে -
eyeTracker
অবশ্যই একটি বৈধ XrEyeTrackerANDROID হ্যান্ডেল হতে হবে৷ -
getInfo
অবশ্যই একটি বৈধ XrEyesGetInfoANDROID কাঠামোর একটি নির্দেশক হতে হবে -
infoOutput
একটি XrEyesANDROID কাঠামোর একটি পয়েন্টার হতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED
-
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_TIME_INVALID
XrEyesGetInfoANDROID কাঠামোতে চোখের ভঙ্গি এবং অবস্থা পুনরুদ্ধার করার জন্য প্রয়োজনীয় তথ্য রয়েছে।
typedef struct XrEyesGetInfoANDROID {
XrStructureType type;
void* next;
XrTime time;
XrSpace baseSpace;
} XrEyesGetInfoANDROID;
সদস্য বিবরণ
-
type
হল এই কাঠামোর XrStructureType । -
next
হলNULL
বা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
time
হলXrTime
যেখানেbaseSpace
সাপেক্ষে স্থানাঙ্কগুলি মূল্যায়ন করা হয়। -
baseSpace
এইtime
চোখের ভঙ্গি এই XrSpace আপেক্ষিক হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_avatar_eyes
এক্সটেনশনটি অবশ্যই XrEyesGetInfoANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_TYPE_EYES_GET_INFO_ANDROID
হতে হবে -
next
অবশ্যইNULL
বা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
baseSpace
অবশ্যই একটি বৈধ XrSpace হ্যান্ডেল হতে হবে
XrEyesANDROID গঠনে ট্র্যাক করা চোখের তথ্য রয়েছে।
typedef struct XrEyesANDROID {
XrStructureType type;
void* next;
XrEyeANDROID eyes[XR_EYE_MAX_ANDROID];
XrEyeTrackingModeANDROID mode;
} XrEyesANDROID;
সদস্য বিবরণ
-
type
হল এই কাঠামোর XrStructureType । -
next
হলNULL
বা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
eyes
হলXrEyeIndexANDROID
দ্বারা সূচীকৃত বাম এবং ডান চোখের জন্য XrEyeANDROID- এর একটি অ্যারে৷ -
mode
হল XrEyeTrackingModeANDROID যা নির্দেশ করে যে চোখ ট্র্যাক করছে এবং কোনটি।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_avatar_eyes
এক্সটেনশনটি অবশ্যই XrEyesANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_TYPE_EYES_ANDROID
হতে হবে -
next
অবশ্যইNULL
বা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
eyes
যে কোনো প্রদত্ত উপাদান অবশ্যই একটি বৈধ XrEyeANDROID গঠন হতে হবে -
mode
অবশ্যই একটি বৈধ XrEyeTrackingModeANDROID মান হতে হবে৷
XrEyeANDROID গঠন একটি চোখের অবস্থা, অবস্থান এবং অভিযোজন বর্ণনা করে।
typedef struct XrEyeANDROID {
XrEyeStateANDROID eyeState;
XrPosef eyePose;
} XrEyeANDROID;
সদস্য বিবরণ
-
eyeState
হল একটি চোখের XrEyeStateANDROID । -
pose
হল একটি XrPosef যা সংশ্লিষ্ট XrEyesGetInfoANDROID::baseSpace- এর রেফারেন্স ফ্রেমের মধ্যে একটি চোখের উৎপত্তির অবস্থান এবং অভিযোজন সংজ্ঞায়িত করে। এখানে একটি পরিচয় অভিযোজন ব্যবহারকারীর চোখে +Z সহ একটি স্থানাঙ্ক অক্ষ, +X ডানদিকে এবং +Y উপরে উপস্থাপন করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_avatar_eyes
এক্সটেনশনটি অবশ্যই XrEyeANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
eyeState
একটি বৈধ XrEyeStateANDROID মান হতে হবে
XrEyeStateANDROID গণনা ট্র্যাক করা চোখের বিভিন্ন অবস্থা চিহ্নিত করে।
typedef enum XrEyeStateANDROID {
XR_EYE_STATE_INVALID_ANDROID = 0,
XR_EYE_STATE_GAZING_ANDROID = 1,
XR_EYE_STATE_SHUT_ANDROID = 2
} XrEyeStateANDROID;
enums নিম্নলিখিত অর্থ আছে:
এনাম | বর্ণনা |
| ইঙ্গিত করে যে চোখটি একটি ত্রুটির অবস্থায় রয়েছে বা উপস্থিত নেই। |
| ইঙ্গিত করে যে চোখ তাকিয়ে আছে। |
| ইঙ্গিত করে যে চোখের পলক বা পলকের কারণে চোখ বন্ধ হয়ে গেছে। |
XrEyeIndexANDROID গণনা বাম বা ডান চোখের সূচক চিহ্নিত করে।
typedef enum XrEyeIndexANDROID {
XR_EYE_INDEX_LEFT_ANDROID = 0,
XR_EYE_INDEX_RIGHT_ANDROID = 1
} XrEyeIndexANDROID;
enums নিম্নলিখিত অর্থ আছে:
এনাম | বর্ণনা |
| বাম চোখ। |
| ডান চোখ। |
XrEyeTrackingModeANDROID গণনা ট্র্যাক করা চোখের বিভিন্ন মোড সনাক্ত করে।
typedef enum XrEyeTrackingModeANDROID {
XR_EYE_TRACKING_MODE_NOT_TRACKING_ANDROID = 0,
XR_EYE_TRACKING_MODE_RIGHT_ANDROID = 1,
XR_EYE_TRACKING_MODE_LEFT_ANDROID = 2,
XR_EYE_TRACKING_MODE_BOTH_ANDROID = 3
} XrEyeTrackingModeANDROID;
enums নিম্নলিখিত অর্থ আছে:
এনাম | বর্ণনা |
| ইঙ্গিত করে যে চোখের ট্র্যাকিং সক্রিয় নয়। |
| নির্দেশ করে যে শুধুমাত্র ডান চোখ ট্র্যাক করছে। |
| নির্দেশ করে যে শুধুমাত্র বাম চোখ ট্র্যাক করছে। |
| নির্দেশ করে যে বাম এবং ডান উভয় চোখই ট্র্যাক করছে। |
চোখের ট্র্যাকিং জন্য উদাহরণ কোড
নিচের উদাহরণ কোডটি দেখায় কিভাবে একটি ভিউ স্পেসের সাথে সম্পর্কিত চোখের তথ্য পেতে হয়।
XrSession session; // previously initialized, for example, created at app startup.
XrSpace viewSpace; // space created for XR_REFERENCE_SPACE_TYPE_VIEW.
// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrCreateEyeTrackerANDROID xrCreateEyeTrackerANDROID; // previously initialized
PFN_xrDestroyEyeTrackerANDROID xrDestroyEyeTrackerANDROID; // previously initialized
PFN_xrGetEyesInfoANDROID xrGetEyesInfoANDROID; // previously initialized
// This will use the XrSession that is bound to the eye tracker done at time of creation.
XrEyeTrackerANDROID eyeTracker;
XrEyeTrackerCreateInfoANDROID createInfo{
.type = XR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROID,
.next = nullptr};
CHK_XR(xrCreateEyeTrackerANDROID(session, &createInfo, &eyeTracker));
while (1) {
// ...
// For every frame in frame loop
// ...
XrFrameState frameState; // previously returned from xrWaitFrame
const XrTime time = frameState.predictedDisplayTime;
XrEyesANDROID eyesInfo{.type = XR_TYPE_EYES_ANDROID,
.next = nullptr,
.mode = XR_EYE_TRACKING_MODE_BOTH_ANDROID};
XrEyesGetInfoANDROID eyesGetInfo{.type = XR_TYPE_EYES_GET_INFO_ANDROID,
.next = nullptr,
.time = time,
.baseSpace = viewSpace};
CHK_XR(xrGetEyesInfoANDROID(eyeTracker, &eyesGetInfo, &eyesInfo));
// eyes tracking information is now available:
// drawLeftEye(eyesInfo.eyes[XR_EYE_INDEX_LEFT_ANDROID].eyePose);
// drawRightEye(eyesInfo.eyes[XR_EYE_INDEX_RIGHT_ANDROID].eyePose);
// ...
// Finish frame loop
// ...
}
// after usage
CHK_XR(xrDestroyEyeTrackerANDROID(eyeTracker));
নতুন অবজেক্টের ধরন
নতুন Enum ধ্রুবক
-
XR_EYE_MAX_ANDROID
XrObjectType গণনা এর সাথে প্রসারিত করা হয়েছে:
-
XR_OBJECT_TYPE_EYE_TRACKER_ANDROID
XrStructureType গণনা এর সাথে প্রসারিত করা হয়েছে:
-
XR_TYPE_EYES_ANDROID
-
XR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROID
-
XR_TYPE_EYES_GET_INFO_ANDROID
-
XR_TYPE_SYSTEM_AVATAR_EYES_PROPERTIES_ANDROID
নতুন Enums
নতুন কাঠামো
- XrEyeANDROID
- XrEyesANDROID
- XrEyesGetInfoANDROID
- XrEyeTrackerCreateInfoANDROID
- XrSystemAvatarEyesPropertiesANDROID
নতুন ফাংশন
ইস্যু
সংস্করণ ইতিহাস
- রিভিশন 1, 2024-09-04 (লেভানা চেন)
- প্রাথমিক এক্সটেনশন বর্ণনা