برنامه افزودنی OpenXR XR_ANDROID_face_tracking

رشته نام

XR_ANDROID_face_tracking

نوع افزونه

افزونه نمونه

شماره داخلی ثبت شده

۴۵۹

بازنگری

۳

وابستگی‌های افزونه و نسخه

اوپن‌ایکس‌آر ۱.۰

آخرین تاریخ اصلاح

۲۰۲۵-۰۶-۰۴

وضعیت آی‌پی

هیچ ادعای مالکیت معنوی شناخته‌شده‌ای وجود ندارد.

مشارکت‌کنندگان

اسپنسر کوئین، گوگل

جارد فایندر، گوگل

لوانا چن، گوگل

نمای کلی

این افزونه به برنامه‌ها این امکان را می‌دهد که وزن اشکال ترکیبی را دریافت کرده و حالات چهره را در تجربیات XR رندر کنند.

این افزونه برای ارائه اطلاعات مورد نیاز برای ایجاد آواتارهای واقع‌گرایانه و نمایش‌های گویا از کاربران در فضای مجازی در نظر گرفته شده است. این برنامه می‌تواند قبل از دریافت وزن اشکال ترکیبی، فعال‌سازی کالیبراسیون صورت را بررسی کند.

ردیاب چهره

ردیاب چهره، یک دستگاه حسگر است که حالت چهره را از طریق جریان‌های تصویر روبروی کاربر و کالیبراسیون دوربین ردیابی می‌کند. هدف اصلی این افزونه، نگاشت حالات چهره کاربر به آواتارهای او در یک صحنه مجازی است.

داده‌های ردیابی چهره، اطلاعات شخصی حساسی هستند و ارتباط نزدیکی با حریم خصوصی و یکپارچگی شخصی دارند. اکیداً توصیه می‌شود برنامه‌هایی که داده‌های ردیابی چهره را ذخیره یا منتقل می‌کنند، همیشه از کاربر اجازه فعال و خاص برای انجام این کار را بخواهند.

  • برنامه‌ها هنگام ایجاد یک ردیاب چهره فعال، تا زمانی که به برنامه اجازه دسترسی به ردیاب چهره داده نشود، XR_ERROR_PERMISSION_INSUFFICIENT دریافت خواهند کرد.
  • هنگام دریافت حالت چهره با استفاده از xrGetFaceStateANDROID ، تابع XrFaceStateANDROID::isValid مقدار XR_TRUE را برنمی‌گرداند، مگر اینکه دسترسی به برنامه مجاز شده باشد.

بررسی قابلیت سیستم

ساختار XrSystemFaceTrackingPropertiesANDROID به صورت زیر تعریف شده است:

typedef struct XrSystemFaceTrackingPropertiesANDROID {
    XrStructureType    type;
    void*              next;
    XrBool32           supportsFaceTracking;
} XrSystemFaceTrackingPropertiesANDROID;

توضیحات اعضا

  • type ، نوع XrStructureType این ساختار است.
  • next NULL یا اشاره‌گری به ساختار بعدی در یک زنجیره ساختار است.
  • supportsFaceTracking یک XrBool32 است که نشان می‌دهد آیا سیستم فعلی از ردیابی چهره پشتیبانی می‌کند یا خیر.

یک برنامه می‌تواند با بسط دادن XrSystemProperties با ساختار XrSystemFaceTrackingPropertiesANDROID هنگام فراخوانی xrGetSystemProperties ، بررسی کند که آیا سیستم قادر به ردیابی چهره است یا خیر.

اگر و فقط اگر یک زمان اجرا XR_FALSE برای supportsFaceTracking برگرداند، آن زمان اجرا باید XR_ERROR_FEATURE_UNSUPPORTED از xrCreateFaceTrackerANDROID برگرداند.

یک دسته ردیاب چهره ایجاد کنید

XR_DEFINE_HANDLE(XrFaceTrackerANDROID)

دسته XrFaceTrackerANDROID نشان دهنده یک ردیاب چهره برای ردیابی چهره است.

از این دسته می‌توان برای دسترسی به داده‌های ردیابی چهره با استفاده از سایر توابع این افزونه استفاده کرد.

تابع xrCreateFaceTrackerANDROID به صورت زیر تعریف شده است:

XrResult xrCreateFaceTrackerANDROID(
    XrSession                                   session,
    const XrFaceTrackerCreateInfoANDROID*       createInfo,
    XrFaceTrackerANDROID*                       faceTracker);

توضیحات پارامتر

  • session یک دسته XrSession است که در آن ردیاب چهره فعال خواهد بود.
  • createInfo همان XrFaceTrackerCreateInfoANDROID است که برای مشخص کردن ردیاب چهره استفاده می‌شود.
  • faceTracker شناسه XrFaceTrackerANDROID برگردانده شده است.

یک برنامه می‌تواند با استفاده از تابع xrCreateFaceTrackerANDROID یک شناسه XrFaceTrackerANDROID ایجاد کند.

اگر سیستم از ردیابی چهره پشتیبانی نکند، xrCreateFaceTrackerANDROID XR_ERROR_FEATURE_UNSUPPORTED برمی‌گرداند.

کاربرد معتبر (ضمنی)

کدهای بازگشت

موفقیت

  • 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

ساختار XrFaceTrackerCreateInfoANDROID به صورت زیر توصیف می‌شود:

typedef struct XrFaceTrackerCreateInfoANDROID {
    XrStructureType    type;
    void*              next;
} XrFaceTrackerCreateInfoANDROID;

توضیحات اعضا

  • type ، نوع XrStructureType این ساختار است.
  • next با NULL یا اشاره‌گری به ساختار بعدی در یک زنجیره ساختار است. چنین ساختارهایی در هسته OpenXR یا این افزونه تعریف نشده‌اند.

ساختار XrFaceTrackerCreateInfoANDROID اطلاعات لازم برای ایجاد یک شناسه XrFaceTrackerANDROID را توصیف می‌کند.

کاربرد معتبر (ضمنی)

تابع xrDestroyFaceTrackerANDROID به صورت زیر تعریف شده است:

XrResult xrDestroyFaceTrackerANDROID(
    XrFaceTrackerANDROID                        faceTracker);

توضیحات پارامتر

تابع xrDestroyFaceTrackerANDROID ، پس از پایان یافتن تجربه ردیابی چهره، faceTracker و منابع زیرین آن را آزاد می‌کند.

کاربرد معتبر (ضمنی)

ایمنی رزوه

  • دسترسی به faceTracker و هر شناسه فرزندی باید به صورت خارجی همگام‌سازی شود.

کدهای بازگشت

موفقیت

  • XR_SUCCESS

شکست

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID

کالیبراسیون چهره را بررسی کنید

تابع xrGetFaceCalibrationStateANDROID به صورت زیر تعریف می‌شود:

XrResult xrGetFaceCalibrationStateANDROID(
    XrFaceTrackerANDROID                        faceTracker,
    XrBool32*                                   faceIsCalibratedOutput);

توضیحات پارامتر

  • faceTracker یک XrFaceTrackerANDROID است که قبلاً توسط xrCreateFaceTrackerANDROID ساخته شده است.
  • faceIsCalibratedOutput نشان می‌دهد که آیا ردیاب چهره کالیبره شده است یا خیر.

یک برنامه می‌تواند وضعیت کالیبراسیون چهره را با استفاده از تابع xrGetFaceCalibrationStateANDROID بررسی کند.

وقتی سرویس ردیابی هنوز در حال مقداردهی اولیه است، ممکن است زمان اجرا XR_ERROR_SERVICE_NOT_READY_ANDROID از xrGetFaceCalibrationStateANDROID برگرداند تا نشان دهد که برنامه می‌تواند بعداً دوباره امتحان کند.

اگر سیستم از کالیبراسیون چهره پشتیبانی نکند، xrGetFaceCalibrationStateANDROID XR_ERROR_FEATURE_UNSUPPORTED برمی‌گرداند. در غیر این صورت، faceIsCalibratedOutput می‌تواند روی XR_TRUE تنظیم شود تا وضعیت کالیبراسیون چهره را منعکس کند.

کاربرد معتبر (ضمنی)

کدهای بازگشت

موفقیت

  • 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_SERVICE_NOT_READY_ANDROID

حالت‌های چهره را دریافت کنید

تابع xrGetFaceStateANDROID اشکال ترکیبی از حالات چهره را در یک زمان معین برمی‌گرداند.

XrResult xrGetFaceStateANDROID(
    XrFaceTrackerANDROID                        faceTracker,
    const XrFaceStateGetInfoANDROID*            getInfo,
    XrFaceStateANDROID*                         faceStateOutput);

توضیحات پارامتر

  • faceTracker یک XrFaceTrackerANDROID است که قبلاً توسط xrCreateFaceTrackerANDROID ساخته شده است.
  • getInfo یک اشاره‌گر به XrFaceStateGetInfoANDROID است که اطلاعاتی را برای به دست آوردن حالات چهره توصیف می‌کند.
  • faceStateOutput یک اشاره‌گر به XrFaceStateANDROID است که حالت ردیابی چهره و حالات چهره‌ی برگردانده شده را دریافت می‌کند.

کاربرد معتبر (ضمنی)

کدهای بازگشت

موفقیت

  • 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

ساختار XrFaceStateGetInfoANDROID اطلاعات لازم برای به دست آوردن حالات چهره را توصیف می‌کند.

typedef struct XrFaceStateGetInfoANDROID {
    XrStructureType    type;
    void*              next;
    XrTime             time;
} XrFaceStateGetInfoANDROID;

توضیحات اعضا

  • type ، نوع XrStructureType این ساختار است.
  • next با NULL یا اشاره‌گری به ساختار بعدی در یک زنجیره ساختار است. چنین ساختارهایی در هسته OpenXR یا این افزونه تعریف نشده‌اند.
  • time ، یک XrTime است که در آن حالت‌های چهره درخواست می‌شوند.

برنامه‌ها باید زمانی برابر با زمان نمایش پیش‌بینی‌شده برای فریم رندر شده درخواست کنند.

کاربرد معتبر (ضمنی)

ساختار XrFaceStateANDROID وضعیت ردیابی چهره و حالات چهره را برمی‌گرداند.

typedef struct XrFaceStateANDROID {
    XrStructureType               type;
    void*                         next;
    uint32_t                      parametersCapacityInput;
    uint32_t                      parametersCountOutput;
    float*                        parameters;
    XrFaceTrackingStateANDROID    faceTrackingState;
    XrTime                        sampleTime;
    XrBool32                      isValid;
    uint32_t                      regionConfidencesCapacityInput;
    uint32_t                      regionConfidencesCountOutput;
    float*                        regionConfidences;
} XrFaceStateANDROID;

توضیحات اعضا

  • type ، نوع XrStructureType این ساختار است.
  • next با NULL یا اشاره‌گری به ساختار بعدی در یک زنجیره ساختار است. چنین ساختارهایی در هسته OpenXR یا این افزونه تعریف نشده‌اند.
  • parametersCapacityInput یک uint32_t است که ظرفیت آرایه parameters را توصیف می‌کند، یا 0 برای نشان دادن درخواستی برای بازیابی ظرفیت مورد نیاز است.
  • parametersCountOutput یک uint32_t است که تعداد parameters یا ظرفیت مورد نیاز را در صورتی که parametersCapacityInput کافی نباشد، توصیف می‌کند.
  • parameters یک اشاره‌گر به آرایه‌ای از float است که توسط برنامه اختصاص داده شده و با وزن‌های اشکال ترکیبی حالت چهره پر خواهد شد.
  • faceTrackingState ، وضعیت اعتبارسنجی XrFaceTrackingStateANDROID برای ردیابی چهره است.
  • sampleTime یک زمان XrTime است که در آن عبارات برگشتی ردیابی یا برون‌یابی می‌شوند. این زمان برابر با زمانی است که وزن‌های عبارات درخواست شده‌اند، اگر برون‌یابی در آن زمان موفقیت‌آمیز باشد.
  • isValid نشان می‌دهد که آیا داده‌ها معتبر هستند یا خیر، حتی اگر از فریم فعلی نباشند.
  • regionConfidencesCapacityInput یک uint32_t است که ظرفیت آرایه regionConfidences را توصیف می‌کند، یا 0 برای نشان دادن درخواست بازیابی ظرفیت مورد نیاز است.
  • regionConfidencesCountOutput یک uint32_t است که تعداد regionConfidences یا ظرفیت مورد نیاز را در صورتی که regionConfidencesCapacityInput کافی نباشد، توصیف می‌کند.
  • regionConfidences یک اشاره‌گر به آرایه‌ای از float است که توسط برنامه اختصاص داده شده و با مقادیر اطمینان برای هر ناحیه صورت پر خواهد شد.
  • برای توضیحات مفصل در مورد بازیابی parameters مورد نیاز و اندازه regionConfidences ، به بخش پارامترهای اندازه بافر مراجعه کنید.

برنامه می‌تواند parametersCapacityInput روی XR_FACE_PARAMETER_COUNT_ANDROID تنظیم کند تا حالت‌های چهره‌ای را که توسط XrFaceParameterIndicesANDROID اندیس‌گذاری شده‌اند، دریافت کند.

parameters برگشتی، وزن اشکال ترکیبی از حالات چهره فعلی را نشان می‌دهند.

به‌روزرسانی‌های آرایه parameters به ترتیب انجام می‌شوند تا برنامه بتواند عناصر را با استفاده از enum مربوط به حالت چهره (مثلاً XrFaceParameterIndicesANDROID ) فهرست‌بندی کند.

کاربرد معتبر (ضمنی)

  • افزونه‌ی XR_ANDROID_face_tracking باید قبل از استفاده از XrFaceStateANDROID فعال باشد.
  • type باید XR_TYPE_FACE_STATE_ANDROID باشد.
  • متغیر next باید NULL یا یک اشاره‌گر معتبر به ساختار بعدی در یک زنجیره ساختار باشد.
  • اگر parametersCapacityInput برابر 0, parameters باید اشاره‌گری به آرایه‌ای از مقادیر parametersCapacityInput float باشند.
  • اگر regionConfidencesCapacityInput برابر 0, regionConfidences باید یک اشاره‌گر به آرایه‌ای از مقادیر regionConfidencesCapacityInput float باشد.
  • faceTrackingState باید یک مقدار معتبر XrFaceTrackingStateANDROID باشد.

شمارش XrFaceTrackingStateANDROID حالت‌های مختلف ردیاب چهره را مشخص می‌کند.

typedef enum XrFaceTrackingStateANDROID {
    XR_FACE_TRACKING_STATE_PAUSED_ANDROID = 0,
    XR_FACE_TRACKING_STATE_STOPPED_ANDROID = 1,
    XR_FACE_TRACKING_STATE_TRACKING_ANDROID = 2
} XrFaceTrackingStateANDROID;

enum ها معانی زیر را دارند:

شمارشی

توضیحات

XR_FACE_TRACKING_STATE_PAUSED_ANDROID

نشان می‌دهد که ردیابی چهره متوقف شده است اما ممکن است در آینده از سر گرفته شود.

XR_FACE_TRACKING_STATE_STOPPED_ANDROID

ردیابی متوقف شده است اما کلاینت هنوز ردیاب چهره فعال دارد.

XR_FACE_TRACKING_STATE_TRACKING_ANDROID

چهره ردیابی شده و حالت آن به روز است.

مناطق اطمینان

افزونه‌ی XR_ANDROID_face_tracking همچنین مقادیر اطمینان را برای سه ناحیه‌ی صورت ارائه می‌دهد: چشم چپ، چشم راست و قسمت پایینی صورت. این مقادیر، که از ۰ (بدون اطمینان) تا ۱ (بالاترین اطمینان) متغیر هستند، دقت ردیابی چهره را برای هر ناحیه نشان می‌دهند.

شما می‌توانید از این مقادیر اطمینان برای غیرفعال کردن تدریجی blendshapes یا اعمال فیلترهای بصری (مانند محو کردن) به ناحیه چهره مربوطه استفاده کنید. برای یک کنترل روشن/خاموش اولیه، توصیه می‌کنیم از آستانه ۰.۳ برای غیرفعال کردن کامل blendshapes در ناحیه چهره مربوطه استفاده کنید.

ناحیه «پایین صورت» نمایانگر همه چیز زیر چشم‌ها، از جمله دهان، چانه، گونه و بینی است. ناحیه چشم شامل چشم‌ها و ناحیه ابرو می‌شود.

جدول زیر شکل‌های ترکیبی مرتبط با هر ناحیه اطمینان را شرح می‌دهد:

منطقه اطمینان شکل‌های ترکیبی
صورت تحتانی `XR_FACE_PARAMETER_INDICES_CHEEK_PUFF_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_CHEEK_PUFF_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_CHEEK_RAISER_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_CHEEK_RAISER_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_CHEEK_SUCK_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_CHEEK_SUCK_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_CHIN_RAISER_B_ANDROID`، `XR_FACE_PARAMETER_INDICES_CHIN_RAISER_T_ANDROID`، `XR_FACE_PARAMETER_INDICES_DIMPLER_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_DIMPLER_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_JAW_DROP_ANDROID`، `XR_FACE_PARAMETER_INDICES_JAW_SIDEWAYS_LEFT_ANDROID`، `XR_FACE_PARAMETER_INDICES_JAW_SIDEWAYS_RIGHT_ANDROID`، `XR_FACE_PARAMETER_INDICES_JAW_THRUST_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_CORNER_DEPRESSOR_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_CORNER_DEPRESSOR_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_CORNER_PULLER_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_CORNER_PULLER_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_FUNNELER_LB_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_FUNNELER_LT_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_FUNNELER_RB_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_FUNNELER_RT_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_PRESSOR_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_PRESSOR_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_PUCKER_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_PUCKER_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_STRETCHER_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_STRETCHER_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_SUCK_LB_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_SUCK_LT_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_SUCK_RB_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_SUCK_RT_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_TIGHTENER_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIP_TIGHTENER_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_LIPS_TOWARD_ANDROID`، `XR_FACE_PARAMETER_INDICES_LOWER_LIP_DEPRESSOR_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_LOWER_LIP_DEPRESSOR_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_MOUTH_LEFT_ANDROID`، `XR_FACE_PARAMETER_INDICES_MOUTH_RIGHT_ANDROID`، `XR_FACE_PARAMETER_INDICES_NOSE_WRINKLER_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_NOSE_WRINKLER_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_UPPER_LID_RAISER_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_UPPER_LID_RAISER_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_UPPER_LIP_RAISER_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_UPPER_LIP_RAISER_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_TONGUE_OUT_ANDROID`، `XR_FACE_PARAMETER_INDICES_TONGUE_LEFT_ANDROID`، `XR_FACE_PARAMETER_INDICES_TONGUE_RIGHT_ANDROID`، `XR_FACE_PARAMETER_INDICES_TONGUE_UP_ANDROID`، `XR_FACE_PARAMETER_INDICES_TONGUE_DOWN_ANDROID`
صورت چپ/راست بالایی `XR_FACE_PARAMETER_INDICES_BROW_LOWER_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_BROW_LOWER_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_EYES_CLOSED_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_EYES_CLOSED_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_EYES_LOOK_DOWN_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_EYES_LOOK_DOWN_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_EYES_LOOK_LEFT_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_EYES_LOOK_LEFT_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_EYES_LOOK_RIGHT_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_EYES_LOOK_RIGHT_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_EYES_LOOK_UP_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_INNER_BROW_RAISER_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_INNER_BROW_RAISER_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_LID_TIGHTENER_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_LID_TIGHTENER_R_ANDROID`، `XR_FACE_PARAMETER_INDICES_OUTER_BROW_RAISER_L_ANDROID`، `XR_FACE_PARAMETER_INDICES_OUTER_BROW_RAISER_R_ANDROID`

قراردادهای شکل‌های ترکیبی

این افزونه ۶۸ شکل ترکیبی را از طریق XR_FACE_PARAMETER_COUNT_ANDROID برای فرمت کاهش‌یافته G-Nome تعریف می‌کند. هر پارامتر در این enum یک اندیس به یک آرایه شکل ترکیبی است که مقادیر آن از نوع float هستند و زمان اجرا به ۱ تا ۰ نرمال‌سازی می‌شود.

typedef enum XrFaceParameterIndicesANDROID {
    XR_FACE_PARAMETER_INDICES_BROW_LOWERER_L_ANDROID = 0,
    XR_FACE_PARAMETER_INDICES_BROW_LOWERER_R_ANDROID = 1,
    XR_FACE_PARAMETER_INDICES_CHEEK_PUFF_L_ANDROID = 2,
    XR_FACE_PARAMETER_INDICES_CHEEK_PUFF_R_ANDROID = 3,
    XR_FACE_PARAMETER_INDICES_CHEEK_RAISER_L_ANDROID = 4,
    XR_FACE_PARAMETER_INDICES_CHEEK_RAISER_R_ANDROID = 5,
    XR_FACE_PARAMETER_INDICES_CHEEK_SUCK_L_ANDROID = 6,
    XR_FACE_PARAMETER_INDICES_CHEEK_SUCK_R_ANDROID = 7,
    XR_FACE_PARAMETER_INDICES_CHIN_RAISER_B_ANDROID = 8,
    XR_FACE_PARAMETER_INDICES_CHIN_RAISER_T_ANDROID = 9,
    XR_FACE_PARAMETER_INDICES_DIMPLER_L_ANDROID = 10,
    XR_FACE_PARAMETER_INDICES_DIMPLER_R_ANDROID = 11,
    XR_FACE_PARAMETER_INDICES_EYES_CLOSED_L_ANDROID = 12,
    XR_FACE_PARAMETER_INDICES_EYES_CLOSED_R_ANDROID = 13,
    XR_FACE_PARAMETER_INDICES_EYES_LOOK_DOWN_L_ANDROID = 14,
    XR_FACE_PARAMETER_INDICES_EYES_LOOK_DOWN_R_ANDROID = 15,
    XR_FACE_PARAMETER_INDICES_EYES_LOOK_LEFT_L_ANDROID = 16,
    XR_FACE_PARAMETER_INDICES_EYES_LOOK_LEFT_R_ANDROID = 17,
    XR_FACE_PARAMETER_INDICES_EYES_LOOK_RIGHT_L_ANDROID = 18,
    XR_FACE_PARAMETER_INDICES_EYES_LOOK_RIGHT_R_ANDROID = 19,
    XR_FACE_PARAMETER_INDICES_EYES_LOOK_UP_L_ANDROID = 20,
    XR_FACE_PARAMETER_INDICES_EYES_LOOK_UP_R_ANDROID = 21,
    XR_FACE_PARAMETER_INDICES_INNER_BROW_RAISER_L_ANDROID = 22,
    XR_FACE_PARAMETER_INDICES_INNER_BROW_RAISER_R_ANDROID = 23,
    XR_FACE_PARAMETER_INDICES_JAW_DROP_ANDROID = 24,
    XR_FACE_PARAMETER_INDICES_JAW_SIDEWAYS_LEFT_ANDROID = 25,
    XR_FACE_PARAMETER_INDICES_JAW_SIDEWAYS_RIGHT_ANDROID = 26,
    XR_FACE_PARAMETER_INDICES_JAW_THRUST_ANDROID = 27,
    XR_FACE_PARAMETER_INDICES_LID_TIGHTENER_L_ANDROID = 28,
    XR_FACE_PARAMETER_INDICES_LID_TIGHTENER_R_ANDROID = 29,
    XR_FACE_PARAMETER_INDICES_LIP_CORNER_DEPRESSOR_L_ANDROID = 30,
    XR_FACE_PARAMETER_INDICES_LIP_CORNER_DEPRESSOR_R_ANDROID = 31,
    XR_FACE_PARAMETER_INDICES_LIP_CORNER_PULLER_L_ANDROID = 32,
    XR_FACE_PARAMETER_INDICES_LIP_CORNER_PULLER_R_ANDROID = 33,
    XR_FACE_PARAMETER_INDICES_LIP_FUNNELER_LB_ANDROID = 34,
    XR_FACE_PARAMETER_INDICES_LIP_FUNNELER_LT_ANDROID = 35,
    XR_FACE_PARAMETER_INDICES_LIP_FUNNELER_RB_ANDROID = 36,
    XR_FACE_PARAMETER_INDICES_LIP_FUNNELER_RT_ANDROID = 37,
    XR_FACE_PARAMETER_INDICES_LIP_PRESSOR_L_ANDROID = 38,
    XR_FACE_PARAMETER_INDICES_LIP_PRESSOR_R_ANDROID = 39,
    XR_FACE_PARAMETER_INDICES_LIP_PUCKER_L_ANDROID = 40,
    XR_FACE_PARAMETER_INDICES_LIP_PUCKER_R_ANDROID = 41,
    XR_FACE_PARAMETER_INDICES_LIP_STRETCHER_L_ANDROID = 42,
    XR_FACE_PARAMETER_INDICES_LIP_STRETCHER_R_ANDROID = 43,
    XR_FACE_PARAMETER_INDICES_LIP_SUCK_LB_ANDROID = 44,
    XR_FACE_PARAMETER_INDICES_LIP_SUCK_LT_ANDROID = 45,
    XR_FACE_PARAMETER_INDICES_LIP_SUCK_RB_ANDROID = 46,
    XR_FACE_PARAMETER_INDICES_LIP_SUCK_RT_ANDROID = 47,
    XR_FACE_PARAMETER_INDICES_LIP_TIGHTENER_L_ANDROID = 48,
    XR_FACE_PARAMETER_INDICES_LIP_TIGHTENER_R_ANDROID = 49,
    XR_FACE_PARAMETER_INDICES_LIPS_TOWARD_ANDROID = 50,
    XR_FACE_PARAMETER_INDICES_LOWER_LIP_DEPRESSOR_L_ANDROID = 51,
    XR_FACE_PARAMETER_INDICES_LOWER_LIP_DEPRESSOR_R_ANDROID = 52,
    XR_FACE_PARAMETER_INDICES_MOUTH_LEFT_ANDROID = 53,
    XR_FACE_PARAMETER_INDICES_MOUTH_RIGHT_ANDROID = 54,
    XR_FACE_PARAMETER_INDICES_NOSE_WRINKLER_L_ANDROID = 55,
    XR_FACE_PARAMETER_INDICES_NOSE_WRINKLER_R_ANDROID = 56,
    XR_FACE_PARAMETER_INDICES_OUTER_BROW_RAISER_L_ANDROID = 57,
    XR_FACE_PARAMETER_INDICES_OUTER_BROW_RAISER_R_ANDROID = 58,
    XR_FACE_PARAMETER_INDICES_UPPER_LID_RAISER_L_ANDROID = 59,
    XR_FACE_PARAMETER_INDICES_UPPER_LID_RAISER_R_ANDROID = 60,
    XR_FACE_PARAMETER_INDICES_UPPER_LIP_RAISER_L_ANDROID = 61,
    XR_FACE_PARAMETER_INDICES_UPPER_LIP_RAISER_R_ANDROID = 62,
    XR_FACE_PARAMETER_INDICES_TONGUE_OUT_ANDROID = 63,
    XR_FACE_PARAMETER_INDICES_TONGUE_LEFT_ANDROID = 64,
    XR_FACE_PARAMETER_INDICES_TONGUE_RIGHT_ANDROID = 65,
    XR_FACE_PARAMETER_INDICES_TONGUE_UP_ANDROID = 66,
    XR_FACE_PARAMETER_INDICES_TONGUE_DOWN_ANDROID = 67
} XrFaceParameterIndicesANDROID;
فهرست نام تصویر مرجع
0 ابروی پایین تر
تصویر مرجع چهره خنثی
BROW_LOWERER_L = 0.0
تصویر مرجع ردیابی چهره
BROW_LOWERER_L = 1.0
۱ BROW_LOWERER_R
تصویر مرجع چهره خنثی
BROW_LOWERER_R = 0.0
تصویر مرجع ردیابی چهره
BROW_LOWERER_R = 1.0
۲ گونه_پوف_L
تصویر مرجع چهره خنثی
CHEEK_PUFF_L = 0.0
تصویر مرجع ردیابی چهره
چیک_پاف_ال = ۱.۰
۳ گونه_پاف_R
تصویر مرجع چهره خنثی
CHEEK_PUFF_R = 0.0
تصویر مرجع ردیابی چهره
چیک_پاف_آر = ۱.۰
۴ گونه_خیز_کننده_L
تصویر مرجع چهره خنثی
CHEEK_RAISER_L = 0.0
تصویر مرجع ردیابی چهره
CHEEK_RAISER_L = 1.0
۵ گونه_خیز_کننده_R
تصویر مرجع چهره خنثی
CHEEK_RAISER_R = 0.0
تصویر مرجع ردیابی چهره
CHEEK_RAISER_R = 1.0
۶ گونه_مکش_ل
تصویر مرجع چهره خنثی
گونه_مکیدن_L = 0.0
تصویر مرجع ردیابی چهره
CHEEK_SUCK_L = 1.0
۷ گونه_مکیدن_R
تصویر مرجع چهره خنثی
CHEEK_SUCK_R = 0.0
تصویر مرجع ردیابی چهره
CHEEK_SUCK_R = 1.0
۸ چانه‌زن_B
تصویر مرجع چهره خنثی
CHIN_RAISER_B = 0.0
تصویر مرجع ردیابی چهره
CHIN_RAISER_B = 1.0
۹ چانه_بالابر_T
تصویر مرجع چهره خنثی
CHIN_RAISER_T = 0.0
تصویر مرجع ردیابی چهره
CHIN_RAISER_T = 1.0
۱۰ دیمپلر_ل
تصویر مرجع چهره خنثی
DIMPLER_L = 0.0
تصویر مرجع ردیابی چهره
DIMPLER_L = 1.0
۱۱ دیمپلر_آر
تصویر مرجع چهره خنثی
DIMPLER_R = 0.0
تصویر مرجع ردیابی چهره
DIMPLER_R = 1.0
۱۲ چشمان_بسته
تصویر مرجع چهره خنثی
چشم‌ها بسته = ۰.۰
تصویر مرجع ردیابی چهره
چشم‌ها_بسته_L = ۱.۰
۱۳ چشمان_بسته
تصویر مرجع چهره خنثی
چشم‌ها بسته = ۰.۰
تصویر مرجع ردیابی چهره
چشم‌ها_بسته_R = ۱.۰
۱۴ چشم‌ها_نگاه_به_پایین_چپ
تصویر مرجع چهره خنثی
نگاه_پایین_چشم = ۰.۰
تصویر مرجع ردیابی چهره
نگاه_پایین_چشم = ۱.۰
۱۵ چشم‌ها_نگاه_به_پایین
تصویر مرجع چهره خنثی
نگاه_پایین_چشم = ۰.۰
تصویر مرجع ردیابی چهره
نگاه_پایین_چشم = ۱.۰
۱۶ نگاه_چپ_چشم
تصویر مرجع چهره خنثی
EYES_LOOK_LEFT_L = 0.0
تصویر مرجع ردیابی چهره
EYES_LOOK_LEFT_L = 1.0
۱۷ نگاه_چپ_چشم
تصویر مرجع چهره خنثی
EYES_LOOK_LEFT_R = 0.0
تصویر مرجع ردیابی چهره
EYES_LOOK_LEFT_R = 1.0
۱۸ نگاه_راست_چشم
تصویر مرجع چهره خنثی
EYES_LOOK_RIGHT_L = 0.0
تصویر مرجع ردیابی چهره
EYES_LOOK_RIGHT_L = 1.0
۱۹ نگاه_راست_چشم
تصویر مرجع چهره خنثی
EYES_LOOK_RIGHT_R = 0.0
تصویر مرجع ردیابی چهره
چشم_نگاه_راست_R = ۱.۰
۲۰ نگاه_به_چشم
تصویر مرجع چهره خنثی
EYES_LOOK_UP_L = 0.0
تصویر مرجع ردیابی چهره
EYES_LOOK_UP_L = 1.0
۲۱ نگاه_به_چشم
تصویر مرجع چهره خنثی
EYES_LOOK_UP_R = 0.0
تصویر مرجع ردیابی چهره
EYES_LOOK_UP_R = 1.0
۲۲ ابروهای_دراز_کننده
تصویر مرجع چهره خنثی
افزایش دهنده داخلی وزن = 0.0
تصویر مرجع ردیابی چهره
افزایش دهنده داخلی وزن = ۱.۰
۲۳ ابروهای_دراز_کننده_درون
تصویر مرجع چهره خنثی
افزایش دهنده داخلی = 0.0
تصویر مرجع ردیابی چهره
افزایش دهنده داخلی = ۱.۰
۲۴ فک پایین
تصویر مرجع چهره خنثی
فک پایین = 0.0
تصویر مرجع ردیابی چهره
فک پایین = ۱.۰
۲۵ فک پایین سمت چپ
تصویر مرجع چهره خنثی
چپ فک = ۰.۰
تصویر مرجع ردیابی چهره
JAW_SIDEWAYS_LEFT = 1.0
۲۶ فک پایین
تصویر مرجع چهره خنثی
فک پایین = ۰.۰
تصویر مرجع ردیابی چهره
فک پایین = ۱.۰
۲۷ فک_رانش
تصویر مرجع چهره خنثی
JAW_THRUST = 0.0
تصویر مرجع ردیابی چهره
JAW_THRUST = 1.0
۲۸ سفت کننده درب
تصویر مرجع چهره خنثی
LID_TIGHTENER_L = 0.0
تصویر مرجع ردیابی چهره
LID_TIGHTENER_L = 1.0
۲۹ سفت کننده درب
تصویر مرجع چهره خنثی
LID_TIGHTENER_R = 0.0
تصویر مرجع ردیابی چهره
LID_TIGHTENER_R = 1.0
۳۰ گوشه لب_فشارنده_L
تصویر مرجع چهره خنثی
گوشه لب (LIP_CORNER_DEPRESSOR_L) = 0.0
تصویر مرجع ردیابی چهره
گوشه لب (LIP_CORNER_DEPRESSOR_L) = ۱.۰
۳۱ گوشه لب_فشارنده_R
تصویر مرجع چهره خنثی
گوشه لب فشار دهنده = ۰.۰
تصویر مرجع ردیابی چهره
گوشه لب (LIP_CORNER_DEPRESSOR_R) = ۱.۰
۳۲ گوشه لب
تصویر مرجع چهره خنثی
گوشه لب (LIP)
تصویر مرجع ردیابی چهره
گوشه لب (LIP)
۳۳ گوشه لب
تصویر مرجع چهره خنثی
گوشه لب (LIP_CORNER_PULLER_R) = 0.0
تصویر مرجع ردیابی چهره
گوشه لب (LIP_CORNER_PULLER_R) = ۱.۰
۳۴ لب_خندان_LB
تصویر مرجع چهره خنثی
LIP_FUNNELER_LB = 0.0
تصویر مرجع ردیابی چهره
LIP_FUNNELER_LB = 1.0
۳۵ LIP_FUNNELER_LT
تصویر مرجع چهره خنثی
LIP_FUNNELER_LT = 0.0
تصویر مرجع ردیابی چهره
LIP_FUNNELER_LT = 1.0
۳۶ LIP_FUNNELER_RB
تصویر مرجع چهره خنثی
LIP_FUNNELER_RB = 0.0
تصویر مرجع ردیابی چهره
LIP_FUNNELER_RB = 1.0
۳۷ LIP_FUNNELER_RT
تصویر مرجع چهره خنثی
LIP_FUNNELER_RT = 0.0
تصویر مرجع ردیابی چهره
LIP_FUNNELER_RT = 1.0
۳۸ فشار دهنده لب
تصویر مرجع چهره خنثی
فشار دهنده لب = 0.0
تصویر مرجع ردیابی چهره
فشار دهنده لب = ۱.۰
۳۹ فشار دهنده لب
تصویر مرجع چهره خنثی
فشار دهنده لب = 0.0
تصویر مرجع ردیابی چهره
فشار دهنده لب = ۱.۰
۴۰ لب_غنچه_کردن
تصویر مرجع چهره خنثی
لب_چین_لب = 0.0
تصویر مرجع ردیابی چهره
لب_چین_لب = ۱.۰
۴۱ لب_غنچه_کردن
تصویر مرجع چهره خنثی
لب_چین_کردن = ۰.۰
تصویر مرجع ردیابی چهره
لب_چین_کردن = ۱.۰
۴۲ کشش لب
تصویر مرجع چهره خنثی
LIP_STRETCHER_L = 0.0
تصویر مرجع ردیابی چهره
LIP_STRETCHER_L = 1.0
۴۳ کشش لب
تصویر مرجع چهره خنثی
LIP_STRETCHER_R = 0.0
تصویر مرجع ردیابی چهره
LIP_STRETCHER_R = 1.0
۴۴ لب_مکیدن_لب
تصویر مرجع چهره خنثی
لب_مکیدن_LB = 0.0
تصویر مرجع ردیابی چهره
لب_مکیدن_لب = ۱.۰
۴۵ لب_مکیدن_LT
تصویر مرجع چهره خنثی
لب_مکیدن_LT = 0.0
تصویر مرجع ردیابی چهره
لب_مکیدن_LT = 1.0
۴۶ لب_مکیدن_RB
تصویر مرجع چهره خنثی
لب_مکیدن_RB = 0.0
تصویر مرجع ردیابی چهره
لب_مکیدن_RB = ۱.۰
۴۷ لب_مکیدن_RT
تصویر مرجع چهره خنثی
لب_مکیدن_RT = 0.0
تصویر مرجع ردیابی چهره
لب_مکیدن_RT = 1.0
۴۸ سفت کننده لب
تصویر مرجع چهره خنثی
سفت کننده لب = 0.0
تصویر مرجع ردیابی چهره
LIP_TIGHTENER_L = 1.0
۴۹ سفت کننده لب
تصویر مرجع چهره خنثی
سفت کننده لب = 0.0
تصویر مرجع ردیابی چهره
LIP_TIGHTENER_R = 1.0
۵۰ به سوی لب‌ها
تصویر مرجع چهره خنثی
LIPS_TOWARD = 0.0
تصویر مرجع ردیابی چهره
فک پایین = ۱.۰ و لب‌ها به سمت بالا = ۱.۰
۵۱ پایین آورنده لب پایین
تصویر مرجع چهره خنثی
پایین_لب_فشارنده_L = 0.0
تصویر مرجع ردیابی چهره
فشارنده لب پایین = ۱.۰
۵۲ پایین آورنده لب پایین
تصویر مرجع چهره خنثی
فشارنده لب پایین = ۰.۰
تصویر مرجع ردیابی چهره
فشارنده لب پایین = ۱.۰
۵۳ دهان_چپ
تصویر مرجع چهره خنثی
سمت چپ دهان = 0.0
تصویر مرجع ردیابی چهره
سمت چپ دهان = ۱.۰
۵۴ دهان_راست
تصویر مرجع چهره خنثی
سمت راست دهان = 0.0
تصویر مرجع ردیابی چهره
سمت راست دهان = ۱.۰
۵۵ چروک_بینی_L
تصویر مرجع چهره خنثی
چین و چروک بینی = 0.0
تصویر مرجع ردیابی چهره
چین و چروک بینی = ۱.۰
۵۶ چروک_بینی
تصویر مرجع چهره خنثی
چروک بینی = ۰.۰
تصویر مرجع ردیابی چهره
چروک بینی = ۱.۰
۵۷ بیرون آوردن ابرو
تصویر مرجع چهره خنثی
OUTER_BROW_RAISER_L = 0.0
تصویر مرجع ردیابی چهره
OUTER_BROW_RAISER_L = 1.0
۵۸ بیرون آوردن ابرو
تصویر مرجع چهره خنثی
OUTER_BROW_RAISER_R = 0.0
تصویر مرجع ردیابی چهره
OUTER_BROW_RAISER_R = 1.0
۵۹ درب بالایی
تصویر مرجع چهره خنثی
لبه بالایی بزرگ = ۰.۰
تصویر مرجع ردیابی چهره
لبه بالایی بزرگ = ۱.۰
۶۰ درب بالایی
تصویر مرجع چهره خنثی
لبه بالایی را بالا بیاورید = ۰.۰
تصویر مرجع ردیابی چهره
UPPER_LID_RAISER_R = 1.0
۶۱ لب بالا بلند کردن
تصویر مرجع چهره خنثی
لب بالا بلند = ۰.۰
تصویر مرجع ردیابی چهره
لب بالا بلند = ۱.۰
۶۲ لب بالا بلند کننده
تصویر مرجع چهره خنثی
لب بالا = ۰.۰
تصویر مرجع ردیابی چهره
لب بالا بلند کردن = ۱.۰
۶۳ زبان_خارج
تصویر مرجع چهره خنثی
خروجی زبان = 0.0
تصویر مرجع ردیابی چهره
خروجی زبان = ۱.۰
۶۴ زبان_چپ
تصویر مرجع چهره خنثی
زبان_چپ = 0.0
تصویر مرجع ردیابی چهره
زبان_چپ = ۱.۰
۶۵ زبان_راست
تصویر مرجع چهره خنثی
زبان_راست = 0.0
تصویر مرجع ردیابی چهره
زبان_راست = ۱.۰
۶۶ زبان_بالا
تصویر مرجع چهره خنثی
زبان_UP = 0.0
تصویر مرجع ردیابی چهره
زبان_UP = 1.0
۶۷ زبان_پایین
تصویر مرجع چهره خنثی
زبان_پایین = 0.0
تصویر مرجع ردیابی چهره
زبان_پایین = ۱.۰

نمونه کد برای ردیابی چهره

کد نمونه زیر نحوه دریافت همه وزن‌ها برای اشکال ترکیبی حالت چهره را نشان می‌دهد.

XrInstance instance; // previously initialized
XrSystemId systemId; // previously initialized
XrSession session; // previously initialized, e.g. created at app startup.

// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrCreateFaceTrackerANDROID xrCreateFaceTrackerANDROID; // previously initialized
PFN_xrDestroyFaceTrackerANDROID xrDestroyFaceTrackerANDROID; // previously initialized
PFN_xrGetFaceStateANDROID xrGetFaceStateANDROID; // previously initialized
PFN_xrGetFaceCalibrationStateANDROID xrGetFaceCalibrationStateANDROID; // previously initialized

// Inspect system capability
XrSystemProperties properties{XR_TYPE_SYSTEM_PROPERTIES};
XrSystemFaceTrackingPropertiesANDROID faceTrackingProperties{XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES_ANDROID};
properties.next = &faceTrackingProperties;
CHK_XR(xrGetSystemProperties(instance, systemId, &properties));
if (!faceTrackingProperties.supportsFaceTracking) {
  // face tracking is not supported.
  return;
}

XrFaceTrackerANDROID faceTracker;
XrFaceTrackerCreateInfoANDROID
        createInfo{.type = XR_TYPE_FACE_TRACKER_CREATE_INFO_ANDROID,
                    .next = nullptr};
CHK_XR(xrCreateFaceTrackerANDROID(session, &createInfo, &faceTracker));

// If the system supports face calibration:
XrBool32 isCalibrated;
CHK_XR(xrGetFaceCalibrationStateANDROID(faceTracker, &isCalibrated));
if (!isCalibrated) {
    // Redirect the user to system calibration setting.
}

XrFaceStateANDROID faceState;
float faceExpressionParameters[XR_FACE_PARAMETER_COUNT_ANDROID];
faceState.type = XR_TYPE_FACE_STATE_ANDROID;
faceState.next = nullptr;
faceState.parametersCapacityInput = XR_FACE_PARAMETER_COUNT_ANDROID;
faceState.parameters = faceExpressionParameters;
float regionConfidences[XR_FACE_REGION_CONFIDENCE_COUNT_ANDROID];
faceState.regionConfidencesCapacityInput = XR_FACE_REGION_CONFIDENCE_COUNT_ANDROID;
faceState.regionConfidences = regionConfidences;

while (1) {
    // ...
    // For every frame in the frame loop
    // ...
    XrFrameState frameState; // previously returned from xrWaitFrame

    XrFaceStateGetInfoANDROID faceGetInfo{
            .type = XR_TYPE_FACE_STATE_GET_INFO_ANDROID,
            .next = nullptr,
            .time = frameState.predictedDisplayTime,
    };

    CHK_XR(xrGetFaceStateANDROID(faceTracker, &faceGetInfo, &faceState));
    if (faceState.isValid) {
        for (uint32_t i = 0; i < XR_FACE_PARAMETER_COUNT_ANDROID; ++i) {
            // parameters[i] contains a weight of specific blend shape
        }
        for (uint32_t i = 0; i < XR_FACE_REGION_CONFIDENCE_COUNT_ANDROID; ++i) {
            // regionConfidences[i] contains a confidence value of a specific region
        }
    }
}

// after usage
CHK_XR(xrDestroyFaceTrackerANDROID(faceTracker));

انواع شیء جدید

ثابت‌های شمارشی جدید

  • XR_FACE_PARAMETER_COUNT_ANDROID

شمارش XrObjectType با موارد زیر گسترش یافته است:

  • XR_OBJECT_TYPE_FACE_TRACKER_ANDROID

شمارش XrStructureType با موارد زیر گسترش یافته است:

  • XR_TYPE_FACE_TRACKER_CREATE_INFO_ANDROID
  • XR_TYPE_FACE_STATE_GET_INFO_ANDROID
  • XR_TYPE_FACE_STATE_ANDROID
  • XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES_ANDROID

Enum های جدید

سازه‌های جدید

توابع جدید

مسائل

تاریخچه نسخه

  • بازبینی 1، 05/09/2024 (لوانا چن)
    • توضیحات اولیه افزونه
  • نسخه ۲، ۲۰۲۵-۰۴-۰۱ (کنی ورکامر)
    • مناطق اعتماد به نفس چهره اضافه شد
  • بازبینی 3، 04/06/2025 (لوانا چن)
    • کد خطای جدید اضافه شد.

OpenXR™ و لوگوی OpenXR علائم تجاری متعلق به گروه Khronos هستند و به عنوان یک علامت تجاری در چین، اتحادیه اروپا، ژاپن و بریتانیا ثبت شده‌اند.