XR_ANDROID_eye_tracking

নামের স্ট্রিং

XR_ANDROID_eye_tracking

এক্সটেনশনের ধরন

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

রেজিস্টার করা এক্সটেনশন নম্বর

457

সংশোধন

1

অনুমোদনের স্ট্যাটাস

অনুমোদিত নয়

এক্সটেনশন ও ভার্সন ডিপেন্ডেন্সি

OpenXR 1.0

শেষবার পরিবর্তন করার তারিখ

2025-01-17

IP স্ট্যাটাস

IP সংক্রান্ত কোনও দাবি নেই।

কন্ট্রিবিউটর

Spencer Quin, Google
Jared Finder, Google
Levana Chen, Google
Kenny Vercaemer, Google
Prasanthi Gurumurthy, Google
Nihav Jain, Google

এক নজরে

এই এক্সটেনশন, অ্যাপ্লিকেশনকে ব্যবহারকারীর চোখের অবস্থান ও ওরিয়েন্টেশন এবং আই ট্র্যাকিং স্ট্যাটাস পেতে দেয়।

আই ট্র্যাকিং ডেটা দুটি মোডে প্রদান করা হয়: কোর্স ও ফাইন। কোর্স ট্র্যাকিং ব্যবহারকারীর চোখের একটি কোর্স অনুমান প্রদান করে, যেখানে ফাইন ট্র্যাকিং আরও সঠিক অনুমান প্রদান করে। কোর্স ট্র্যাকিং হল এমন অ্যাপ্লিকেশনের জন্য যা অবতারের মতো প্রাথমিক উপস্থাপনা প্রদান করতে চায়, অন্যদিকে ফাইন ট্র্যাকিং হল আরও নিখুঁত অ্যাপ্লিকেশনের জন্য।

ইন্টার‍্যাকশনের জন্য, XR_EXT_eye_gaze_interaction ব্যবহার করা উচিত।

অনুমতি

Android অ্যাপ্লিকেশনের ম্যানিফেস্টে android.permission.EYE_TRACKING_COARSE বা android.permission.EYE_TRACKING_FINE অনুমতি তালিকাভুক্ত থাকতেই হবে। এইসব অনুমতিকে বিপজ্জনক অনুমতি হিসেবে বিবেচনা করা হয়। এইসব ফাংশন ব্যবহার করার জন্য অ্যাপ্লিকেশনকে রানটাইমে অবশ্যই অনুমতি চাইতে হবে:

(সুরক্ষা লেভেল: বিপজ্জনক)

সিস্টেমের ক্ষমতা পরীক্ষা করা

XrSystemEyeTrackingPropertiesANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:

typedef struct XrSystemEyeTrackingPropertiesANDROID {
    XrStructureType    type;
    void*              next;
    XrBool32           supportsEyeTracking;
} XrSystemEyeTrackingPropertiesANDROID;

মেম্বারদের বিবরণ

  • type হল এই স্ট্রাকচারের XrStructureType।
  • next হল NULL অথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনও স্ট্রাকচার সংজ্ঞায়িত করা নেই।
  • supportsEyeTracking হল একটি XrBool32 যা বর্তমান সিস্টেমে আই ট্র্যাকিং কাজ করে কিনা তা নির্দেশ করে।

xrGetSystemProperties কল করার সময় XrSystemEyeTrackingPropertiesANDROID স্ট্রাকচারের সাথে XrSystemProperties এক্সটেন্ড করার মাধ্যমে সিস্টেম আই ট্র্যাকিং করতে সক্ষম কিনা তা কোনও অ্যাপ্লিকেশন চেক করতে পারে।

যদি এবং শুধুমাত্র যদি রানটাইম supportsEyeTracking-এর জন্য XR_FALSE রিটার্ন করে, তাহলে রানটাইমকে xrCreateEyeTrackerANDROID থেকে XR_ERROR_FEATURE_UNSUPPORTED রিটার্ন করতেই হবে।

সঠিক ব্যবহার (অন্তর্নিহিত)

আই ট্র্যাকার হ্যান্ডেল তৈরি করা হচ্ছে

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_eye_tracking এক্সটেনশন অবশ্যই চালু করতে হবে
  • session অবশ্যই একটি সঠিক XrSession হ্যান্ডেল হতে হবে
  • createInfo অবশ্যই একটি সঠিক XrEyeTrackerCreateInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে
  • eyeTracker অবশ্যই XrEyeTrackerANDROID হ্যান্ডেলের পয়েন্টার হতে হবে

রিটার্ন কোড

হয়ে গেছে

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

ব্যর্থতা

  • XR_ERROR_FEATURE_UNSUPPORTED
  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_OUT_OF_MEMORY
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_VALIDATION_FAILURE

XrEyeTrackerCreateInfoANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:

typedef struct XrEyeTrackerCreateInfoANDROID {
    XrStructureType    type;
    const void*        next;
} XrEyeTrackerCreateInfoANDROID;

মেম্বারদের বিবরণ

  • type হল এই স্ট্রাকচারের XrStructureType।
  • next হল NULL অথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনও স্ট্রাকচার সংজ্ঞায়িত করা নেই।

XrEyeTrackerCreateInfoANDROID স্ট্রাকচার XrEyeTrackerANDROID হ্যান্ডেল তৈরি করার তথ্য বর্ণনা করে।

সঠিক ব্যবহার (অন্তর্নিহিত)

xrDestroyEyeTrackerANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:

XrResult xrDestroyEyeTrackerANDROID(
    XrEyeTrackerANDROID                         eyeTracker);

প্যারামিটারের বিবরণ

আই ট্র্যাকিং অভিজ্ঞতা শেষ হয়ে গেলে xrDestroyEyeTrackerANDROID ফাংশন eyeTracker এবং অন্তর্নিহিত রিসোর্স রিলিজ করে।

সঠিক ব্যবহার (অন্তর্নিহিত)

  • xrDestroyEyeTrackerANDROID কল করার আগে XR_ANDROID_eye_tracking এক্সটেনশন অবশ্যই চালু করতে হবে
  • eyeTracker অবশ্যই একটি সঠিক XrEyeTrackerANDROID হ্যান্ডেল হতে হবে

থ্রেড নিরাপত্তা

  • eyeTracker এবং যেকোনও চাইল্ড হ্যান্ডেল অ্যাক্সেস করার সুবিধা, অবশ্যই এক্সটার্নালভাবে সিঙ্ক করতে হবে

রিটার্ন কোড

হয়ে গেছে

  • XR_SUCCESS

ব্যর্থতা

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_RUNTIME_FAILURE

চোখ সম্পর্কিত তথ্য পাওয়া হচ্ছে

xrGetCoarseTrackingEyesInfoANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:

XrResult xrGetCoarseTrackingEyesInfoANDROID(
    XrEyeTrackerANDROID                         eyeTracker,
    const XrEyesGetInfoANDROID*                 getInfo,
    XrEyesANDROID*                              eyesOutput);

প্যারামিটারের বিবরণ

  • eyeTracker হল একটি XrEyeTrackerANDROID যা আগে xrCreateEyeTrackerANDROID দ্বারা তৈরি করা হয়েছে।
  • getInfo হল XrEyesGetInfoANDROID-এর একটি পয়েন্টার যা চোখের পোজ ও অবস্থা কোয়েরি করার জন্য তথ্য প্রদান করতে ব্যবহার করা হয়।
  • eyesOutput হল XrEyesANDROID-এর একটি পয়েন্টার যাতে পোজ ও স্ট্যাটাস সহ চোখের তথ্য থাকে।

xrGetCoarseTrackingEyesInfoANDROID ফাংশন চোখের অবস্থা ও পোজ সংক্রান্ত তথ্য এমনভাবে সংগ্রহ করে যাতে ব্যবহারকারীর গোপনীয়তা সুরক্ষিত থাকে।

অ্যাপ্লিকেশনের কাছে android.permission.EYE_TRACKING_COARSE অনুমতি না থাকলে, রানটাইমকে XR_ERROR_PERMISSION_INSUFFICIENT রিটার্ন করতেই হবে।

চোখের পোজ XrEyesGetInfoANDROID :: baseSpace-এ XrEyesGetInfoANDROID :: time-এ প্রকাশ করা হয়।

যেকোনও সময় চোখের পোজের অবস্থান ও দিক ট্র্যাক করা বা আনট্র্যাক করা হয়। এর অর্থ হল, রানটাইমকে অবশ্যই XR_SPACE_LOCATION_POSITION_TRACKED_BIT এবং XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT দুটিই সেট করতে হবে অথবা প্রদত্ত XrEyesANDROID :: eyes-এ XR_SPACE_LOCATION_POSITION_TRACKED_BIT এবং XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT দুটিই মুছে দিতে হবে এবং ট্র্যাকিং স্ট্যাটাস নির্দেশ করতে XrEyesANDROID :: mode সেট করতে হবে।

সঠিক ব্যবহার (অন্তর্নিহিত)

  • xrGetCoarseTrackingEyesInfoANDROID কল করার আগে XR_ANDROID_eye_tracking এক্সটেনশন অবশ্যই চালু করতে হবে
  • eyeTracker অবশ্যই একটি সঠিক XrEyeTrackerANDROID হ্যান্ডেল হতে হবে
  • getInfo-কে অবশ্যই একটি সঠিক XrEyesGetInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে
  • eyesOutput অবশ্যই XrEyesANDROID স্ট্রাকচারের পয়েন্টার হতে হবে

রিটার্ন কোড

হয়ে গেছে

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

ব্যর্থতা

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_OUT_OF_MEMORY
  • XR_ERROR_PERMISSION_INSUFFICIENT
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_TIME_INVALID
  • XR_ERROR_VALIDATION_FAILURE

xrGetFineTrackingEyesInfoANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:

XrResult xrGetFineTrackingEyesInfoANDROID(
    XrEyeTrackerANDROID                         eyeTracker,
    const XrEyesGetInfoANDROID*                 getInfo,
    XrEyesANDROID*                              eyesOutput);

প্যারামিটারের বিবরণ

  • eyeTracker হল একটি XrEyeTrackerANDROID যা আগে xrCreateEyeTrackerANDROID দ্বারা তৈরি করা হয়েছে।
  • getInfo হল XrEyesGetInfoANDROID-এর একটি পয়েন্টার যা কোন আউটপুট প্রয়োজন তা নির্দিষ্ট করতে ব্যবহার করা হয়।
  • eyesOutput হল XrEyesANDROID-এর একটি পয়েন্টার যাতে পোজ ও স্ট্যাটাস সহ চোখের তথ্য থাকে।

xrGetFineTrackingEyesInfoANDROID ফাংশন xrGetCoarseTrackingEyesInfoANDROID-এর চেয়ে আরও বেশি নির্ভুলভাবে চোখের অবস্থা ও পোজ সংক্রান্ত তথ্য পায়।

অ্যাপ্লিকেশনের কাছে android.permission.EYE_TRACKING_FINE অনুমতি না থাকলে, রানটাইমকে XR_ERROR_PERMISSION_INSUFFICIENT রিটার্ন করতেই হবে।

XrEyesGetInfoANDROID :: time , XrEyesGetInfoANDROID :: baseSpace ব্যবহার করে xrGetFineTrackingEyesInfoANDROID-এ কল করার সময় চোখের তথ্য সমাধান করা হয় এবং বেস স্পেসের সাথে সম্পর্কিত হয়। কল করার সময় রানটাইমকে XrEyesGetInfoANDROID :: baseSpace-এর মাধ্যমে নির্ধারিত লোকেশন অবশ্যই সমাধান করতে হবে।

যেকোনও সময় চোখের পোজের অবস্থান ও দিক ট্র্যাক করা বা আনট্র্যাক করা হয়। এর অর্থ হল, রানটাইমকে অবশ্যই XR_SPACE_LOCATION_POSITION_TRACKED_BIT এবং XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT দুটিই সেট করতে হবে অথবা প্রদত্ত XrEyesANDROID :: eyes-এ XR_SPACE_LOCATION_POSITION_TRACKED_BIT এবং XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT দুটিই মুছে দিতে হবে এবং ট্র্যাকিং স্ট্যাটাস নির্দেশ করতে XrEyesANDROID :: mode সেট করতে হবে।

সঠিক ব্যবহার (অন্তর্নিহিত)

  • xrGetFineTrackingEyesInfoANDROID কল করার আগে XR_ANDROID_eye_tracking এক্সটেনশন অবশ্যই চালু করতে হবে
  • eyeTracker অবশ্যই একটি সঠিক XrEyeTrackerANDROID হ্যান্ডেল হতে হবে
  • getInfo-কে অবশ্যই একটি সঠিক XrEyesGetInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে
  • eyesOutput অবশ্যই XrEyesANDROID স্ট্রাকচারের পয়েন্টার হতে হবে

রিটার্ন কোড

হয়ে গেছে

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

ব্যর্থতা

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_OUT_OF_MEMORY
  • XR_ERROR_PERMISSION_INSUFFICIENT
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_TIME_INVALID
  • XR_ERROR_VALIDATION_FAILURE

XrEyesGetInfoANDROID স্ট্রাকচারে চোখের পোজ ও অবস্থা সংক্রান্ত তথ্য থাকে।

typedef struct XrEyesGetInfoANDROID {
    XrStructureType    type;
    const void*        next;
    XrTime             time;
    XrSpace            baseSpace;
} XrEyesGetInfoANDROID;

মেম্বারদের বিবরণ

  • type হল এই স্ট্রাকচারের XrStructureType।
  • next হল NULL অথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনও স্ট্রাকচার সংজ্ঞায়িত করা নেই।
  • time হল XrTime যার ভিত্তিতে baseSpace-এর সাপেক্ষে কোঅর্ডিনেট মূল্যায়ন করা হবে।
  • 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 হল XrEyeANDROID-এর একটি অ্যারে, যার সাইজ হল XR_EYE_MAX_ANDROID , বাঁ ও ডান চোখের জন্য, যেমন XrEyeIndexANDROID দ্বারা ইন্ডেক্স করা হয়েছে।
  • mode হল XrEyeTrackingModeANDROID যা বর্তমানে কোন চোখ ট্র্যাক করা হচ্ছে তা নির্দেশ করে।

সঠিক ব্যবহার (অন্তর্নিহিত)

XrEyeANDROID স্ট্রাকচার চোখের অবস্থা, পজিশন ও ওরিয়েন্টেশন বর্ণনা করে।

typedef struct XrEyeANDROID {
    XrEyeStateANDROID    eyeState;
    XrPosef              eyePose;
} XrEyeANDROID;

মেম্বারদের বিবরণ

  • eyeState হল চোখের XrEyeStateANDROID।
  • eyePose হল একটি XrPosef যা সংশ্লিষ্ট XrEyesGetInfoANDROID :: baseSpace-এর রেফারেন্স ফ্রেমের মধ্যে চোখের তারার অবস্থান এবং ওরিয়েন্টেশন নির্ধারণ করে। এখানে আইডেন্টিটি ওরিয়েন্টেশন বলতে বোঝায়, ব্যবহারকারীর চোখের দিকে +Z, ডানদিকে +X এবং উপরের দিকে +Y অক্ষের কোঅর্ডিনেট।

সঠিক ব্যবহার (অন্তর্নিহিত)

  • XrEyeANDROID ব্যবহার করার আগে XR_ANDROID_eye_tracking এক্সটেনশন চালু করতেই হবে
  • eyeState অবশ্যই একটি সঠিক XrEyeStateANDROID ভ্যালু হতে হবে

XrEyeStateANDROID এনিউমারেশন ট্র্যাক করা চোখের বিভিন্ন অবস্থা শনাক্ত করে।

typedef enum XrEyeStateANDROID {
    XR_EYE_STATE_INVALID_ANDROID = 0,
    XR_EYE_STATE_GAZING_ANDROID = 1,
    XR_EYE_STATE_SHUT_ANDROID = 2,
    XR_EYE_STATE_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrEyeStateANDROID;

enum-এর অর্থ হল:

Enum-এর বিবরণ

XR_EYE_STATE_INVALID_ANDROID

এটি ইঙ্গিত করে যে চোখের সমস্যা সংক্রান্ত স্ট্যাটাস রয়েছে বা চোখ নেই।

XR_EYE_STATE_GAZING_ANDROID

চোখ বর্তমানে তাকিয়ে আছে তা নির্দেশ করে।

XR_EYE_STATE_SHUT_ANDROID

চোখ পিটপিট করা বা পলক ফেলার কারণে চোখ বর্তমানে বন্ধ আছে তা বোঝায়।

XrEyeIndexANDROID এনিউমারেশন বাঁ বা ডান চোখের ইনডেক্স শনাক্ত করে।

typedef enum XrEyeIndexANDROID {
    XR_EYE_INDEX_LEFT_ANDROID = 0,
    XR_EYE_INDEX_RIGHT_ANDROID = 1,
    XR_EYE_INDEX_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrEyeIndexANDROID;

enum-এর অর্থ হল:

Enum-এর বিবরণ

XR_EYE_INDEX_LEFT_ANDROID

বাঁদিকের চোখ।

XR_EYE_INDEX_RIGHT_ANDROID

ডান চোখ।

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,
    XR_EYE_TRACKING_MODE_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrEyeTrackingModeANDROID;

enum-এর অর্থ হল:

Enum-এর বিবরণ

XR_EYE_TRACKING_MODE_NOT_TRACKING_ANDROID

আই ট্র্যাকিং বর্তমানে অ্যাক্টিভ নেই তা দেখায়।

XR_EYE_TRACKING_MODE_RIGHT_ANDROID

এটি দেখায় যে শুধুমাত্র ডান চোখ ট্র্যাক করা হচ্ছে।

XR_EYE_TRACKING_MODE_LEFT_ANDROID

শুধুমাত্র বাঁদিকের চোখ ট্র্যাক করা হচ্ছে তা দেখায়।

XR_EYE_TRACKING_MODE_BOTH_ANDROID

বাঁ ও ডান, দুটি চোখই ট্র্যাক করা হচ্ছে বলে দেখায়।

#define XR_EYE_MAX_ANDROID                2

XR_EYE_MAX_ANDROID হল চোখের সর্বাধিক সংখ্যা যার জন্য XrEyeANDROID ডেটা রিপোর্ট করা হয়।

আই ট্র্যাকিংয়ের জন্য কোডের উদাহরণ

নিম্নলিখিত উদাহরণ কোডটি দেখায় যে কীভাবে একটি ভিউ স্পেসের সাথে সম্পর্কিত চোখের তথ্য পেতে হয়।

XrSession session; // previously initialized, e.g. 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_xrGetCoarseTrackingEyesInfoANDROID xrGetCoarseTrackingEyesInfoANDROID; // previously initialized
PFN_xrGetFineTrackingEyesInfoANDROID xrGetFineTrackingEyesInfoANDROID; // 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 fineEyesInfo{.type = XR_TYPE_EYES_ANDROID,
                               .next = nullptr,
                               .mode = XR_EYE_TRACKING_MODE_BOTH_ANDROID};
    XrEyesANDROID coarseEyesInfo{.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(xrGetCoarseTrackingEyesInfoANDROID(eyeTracker, &eyesGetInfo, &coarseEyesInfo));
    CHK_XR(xrGetFineTrackingEyesInfoANDROID(eyeTracker, &eyesGetInfo, &fineEyesInfo));

    // 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

নতুন Enum কনস্ট্যান্ট

  • XR_ANDROID_EYE_TRACKING_EXTENSION_NAME
  • XR_ANDROID_eye_tracking_SPEC_VERSION
  • XR_EYE_MAX_ANDROID
  • XrObjectType এক্সটেন্ড করা হচ্ছে :

    • XR_OBJECT_TYPE_EYE_TRACKER_ANDROID
  • XrStructureType এক্সটেন্ড করা হচ্ছে :

    • XR_TYPE_EYES_ANDROID
    • XR_TYPE_EYES_GET_INFO_ANDROID
    • XR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROID
    • XR_TYPE_SYSTEM_EYE_TRACKING_PROPERTIES_ANDROID

ইস্যু

ভার্সনের ইতিহাস

  • সংশোধন ১, ১৭-০১-২০২৫ (Kenny Vercaemer)

    • প্রাথমিক এক্সটেনশনের বিবরণ