XR_ANDROID_face_tracking OpenXR एक्सटेंशन

Name String

XR_ANDROID_face_tracking

एक्सटेंशन टाइप

इंस्टेंस एक्सटेंशन

रजिस्टर किया गया एक्सटेंशन नंबर

459

बदलाव

1

एक्सटेंशन और वर्शन की डिपेंडेंसी

OpenXR 1.0

पिछली बार बदलाव करने की तारीख

2024-09-06

आईपी स्टेटस

आईपी पर कोई दावा नहीं किया गया है.

योगदान देने वाले

स्पेंसर क्विन, Google

जेरेड फ़ाइंडर, Google

लेवाना चेन, Google

खास जानकारी

इस एक्सटेंशन की मदद से, ऐप्लिकेशन ब्लेंड किए गए आकार का वज़न पा सकते हैं और XR अनुभवों में चेहरे के भावों को रेंडर कर सकते हैं.

इस एक्सटेंशन का मकसद, वर्चुअल स्पेस में उपयोगकर्ताओं के ज़्यादा असरदार अवतार बनाने के लिए ज़रूरी जानकारी देना है. ऐप्लिकेशन, ब्लेंड किए गए आकार की अहमियत तय करने से पहले, चेहरे के कैलिब्रेशन के चालू होने की जांच कर सकता है.

चेहरा ट्रैक करने की सुविधा

चेहरे की गतिविधियों को ट्रैक करने वाला डिवाइस, एक सेंसिंग डिवाइस होता है. यह डिवाइस, उपयोगकर्ता के सामने की इमेज स्ट्रीम और कैमरे के कैलिब्रेशन की मदद से, चेहरे के हाव-भाव को ट्रैक करता है. इस एक्सटेंशन का मुख्य मकसद, वर्चुअल सीन में उपयोगकर्ता के चेहरे के भावों को उनके अवतारों पर मैप करना है.

चेहरे की ट्रैकिंग का डेटा, संवेदनशील निजी जानकारी होती है. यह व्यक्तिगत निजता और भरोसे से जुड़ा होता है. हमारा सुझाव है कि जिन ऐप्लिकेशन में चेहरे की पहचान करने की सुविधा से जुड़ा डेटा सेव या ट्रांसफ़र किया जाता है वे हमेशा उपयोगकर्ता से इसकी अनुमति लें.

  • ऐप्लिकेशन को ऐक्टिव फ़ेस ट्रैकर बनाने पर, XR_ERROR_PERMISSION_INSUFFICIENT दिखेगा. यह तब तक दिखेगा, जब तक ऐप्लिकेशन को फ़ेस ट्रैकर का ऐक्सेस नहीं मिल जाता.
  • xrGetFaceStateANDROID का इस्तेमाल करके चेहरे की स्थितियां पाने पर, XrFaceStateANDROID::isValid XR_TRUE तब तक नहीं दिखाएगा, जब तक ऐप्लिकेशन को ऐक्सेस करने की अनुमति नहीं दी गई है

चेहरे को ट्रैक करने वाला हैंडल बनाना

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 फ़ंक्शन का इस्तेमाल करके, चेहरे के कैलिब्रेशन की स्थिति देख सकता है.

अगर सिस्टम में चेहरे के कैलिब्रेशन की सुविधा काम नहीं करती है, तो 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

चेहरे के भावों की जानकारी पाना

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;
} XrFaceStateANDROID;

पैसे चुकाकर बने सदस्यों के ब्यौरे

  • type इस स्ट्रक्चर का XrStructureType है.
  • next, NULL है या स्ट्रक्चर चेन में अगले स्ट्रक्चर का पॉइंटर है. OpenXR के मुख्य वर्शन या इस एक्सटेंशन में, इस तरह के स्ट्रक्चर तय नहीं किए गए हैं.
  • parametersCapacityInput एक uint32_t है, जो parameters कलेक्शन की क्षमता के बारे में बताता है. इसके अलावा, ज़रूरी क्षमता को वापस पाने के अनुरोध के लिए, parametersCapacityInput को 0 पर सेट किया जा सकता है.
  • parametersCountOutput एक uint32_t है, जिसमें parameters की संख्या बताई गई है. इसके अलावा, अगर parametersCapacityInput की संख्या काफ़ी नहीं है, तो parametersCountOutput में ज़रूरी क्षमता की जानकारी भी दी गई है.
  • parameters, float के ऐप्लिकेशन-ऐलोकेशन वाले ऐरे का पॉइंटर है. इसमें, चेहरे के हाव-भाव के ब्लेंड किए गए आकार के वज़न भरे जाएंगे.
  • faceTrackingState, XrFaceTrackingStateANDROID है, जो कि फ़ेस ट्रैकिंग की पुष्टि की स्थिति है.
  • sampleTime वह XrTime समय होता है जब दिखाए गए एक्सप्रेशन को ट्रैक किया जाता है या एक्सट्रपलेशन किया जाता है. यह उस समय के बराबर होता है जब एक्सट्रैपलेशन पूरा हो गया था और एक्सप्रेशन के वेट का अनुरोध किया गया था.
  • isValid से पता चलता है कि डेटा मान्य है या नहीं. भले ही, वह मौजूदा फ़्रेम से न हो.
  • ज़रूरी parameters साइज़ को वापस पाने के बारे में पूरी जानकारी के लिए, बफ़र साइज़ पैरामीटर सेक्शन देखें.

ऐप्लिकेशन, parametersCapacityInput को XR_FACE_PARAMETER_COUNT_ANDROID पर सेट करके, चेहरे के उन एक्सप्रेशन को ऐक्सेस कर सकता है जिन्हें XrFaceParameterIndicesANDROID से इंडेक्स किया जाता है.

parameters से पता चलता है कि चेहरे के मौजूदा हाव-भावों के ब्लेंड किए गए आकार कितने वज़नीदार हैं.

parameters कलेक्शन के अपडेट को क्रम में लगाया जाएगा, ताकि ऐप्लिकेशन, चेहरे के हाव-भाव के लिए इस्तेमाल होने वाले एनम (उदाहरण के लिए, XrFaceParameterIndicesANDROID) का इस्तेमाल करके एलिमेंट को इंडेक्स कर सके.

मान्य इस्तेमाल (इंप्लिसिट)

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

चेहरे को ट्रैक किया जा रहा हो और उसकी पोज़िशन मौजूदा हो.

ब्लेंड किए गए आकार के लिए नियम

यह एक्सटेंशन, कम किए गए G-Nome फ़ॉर्मैट के लिए, XR_FACE_PARAMETER_COUNT_ANDROID के ज़रिए 63 ब्लेंड शेप तय करता है. इस एनम में मौजूद हर पैरामीटर, ब्लेंड शेप कलेक्शन का एक इंडेक्स होता है. इसकी वैल्यू float टाइप की होती हैं और रनटाइम 1 से 0 तक नॉर्मलाइज़ होता है.

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
} XrFaceParameterIndicesANDROID;
इंडेक्स नाम रेफ़रंस इमेज
0 BROW_LOWERER_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
BROW_LOWERER_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
BROW_LOWERER_L = 1.0
1 BROW_LOWERER_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
BROW_LOWERER_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
BROW_LOWERER_R = 1.0
2 CHEEK_PUFF_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
CHEEK_PUFF_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
CHEEK_PUFF_L = 1.0
3 CHEEK_PUFF_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
CHEEK_PUFF_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
CHEEK_PUFF_R = 1.0
4 CHEEK_RAISER_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
CHEEK_RAISER_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
CHEEK_RAISER_L = 1.0
5 CHEEK_RAISER_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
CHEEK_RAISER_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
CHEEK_RAISER_R = 1.0
6 CHEEK_SUCK_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
CHEEK_SUCK_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
CHEEK_SUCK_L = 1.0
7 CHEEK_SUCK_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
CHEEK_SUCK_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
CHEEK_SUCK_R = 1.0
8 CHIN_RAISER_B
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
CHIN_RAISER_B = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
CHIN_RAISER_B = 1.0
9 CHIN_RAISER_T
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
CHIN_RAISER_T = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
CHIN_RAISER_T = 1.0
10 DIMPLER_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
DIMPLER_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
DIMPLER_L = 1.0
11 DIMPLER_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
DIMPLER_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
DIMPLER_R = 1.0
12 EYES_CLOSED_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
EYES_CLOSED_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
EYES_CLOSED_L = 1.0
13 EYES_CLOSED_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
EYES_CLOSED_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
EYES_CLOSED_R = 1.0
14 EYES_LOOK_DOWN_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
EYES_LOOK_DOWN_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
EYES_LOOK_DOWN_L = 1.0
15 EYES_LOOK_DOWN_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
EYES_LOOK_DOWN_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
EYES_LOOK_DOWN_R = 1.0
16 EYES_LOOK_LEFT_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
EYES_LOOK_LEFT_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
EYES_LOOK_LEFT_L = 1.0
17 EYES_LOOK_LEFT_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
EYES_LOOK_LEFT_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
EYES_LOOK_LEFT_R = 1.0
18 EYES_LOOK_RIGHT_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
EYES_LOOK_RIGHT_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
EYES_LOOK_RIGHT_L = 1.0
19 EYES_LOOK_RIGHT_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
EYES_LOOK_RIGHT_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
EYES_LOOK_RIGHT_R = 1.0
20 EYES_LOOK_UP_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
EYES_LOOK_UP_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
EYES_LOOK_UP_L = 1.0
21 EYES_LOOK_UP_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
EYES_LOOK_UP_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
EYES_LOOK_UP_R = 1.0
22 INNER_BROW_RAISER_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
INNER_BROW_RAISER_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
INNER_BROW_RAISER_L = 1.0
23 INNER_BROW_RAISER_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
INNER_BROW_RAISER_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
INNER_BROW_RAISER_R = 1.0
24 JAW_DROP
सामान्य भाव वाले चेहरे की रेफ़रंस इमेज
JAW_DROP = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
JAW_DROP = 1.0
25 JAW_SIDEWAYS_LEFT
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
JAW_SIDEWAYS_LEFT = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
JAW_SIDEWAYS_LEFT = 1.0
26 JAW_SIDEWAYS_RIGHT
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
JAW_SIDEWAYS_RIGHT = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
JAW_SIDEWAYS_RIGHT = 1.0
27 JAW_THRUST
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
JAW_THRUST = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
JAW_THRUST = 1.0
28 LID_TIGHTENER_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LID_TIGHTENER_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LID_TIGHTENER_L = 1.0
29 LID_TIGHTENER_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LID_TIGHTENER_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LID_TIGHTENER_R = 1.0
30 LIP_CORNER_DEPRESSOR_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_CORNER_DEPRESSOR_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_CORNER_DEPRESSOR_L = 1.0
31 LIP_CORNER_DEPRESSOR_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_CORNER_DEPRESSOR_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_CORNER_DEPRESSOR_R = 1.0
32 LIP_CORNER_PULLER_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_CORNER_PULLER_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_CORNER_PULLER_L = 1.0
33 LIP_CORNER_PULLER_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_CORNER_PULLER_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_CORNER_PULLER_R = 1.0
34 LIP_FUNNELER_LB
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_FUNNELER_LB = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_FUNNELER_LB = 1.0
35 LIP_FUNNELER_LT
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_FUNNELER_LT = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_FUNNELER_LT = 1.0
36 LIP_FUNNELER_RB
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_FUNNELER_RB = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_FUNNELER_RB = 1.0
37 LIP_FUNNELER_RT
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_FUNNELER_RT = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_FUNNELER_RT = 1.0
38 LIP_PRESSOR_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_PRESSOR_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_PRESSOR_L = 1.0
39 LIP_PRESSOR_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_PRESSOR_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_PRESSOR_R = 1.0
40 LIP_PUCKER_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_PUCKER_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_PUCKER_L = 1.0
41 LIP_PUCKER_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_PUCKER_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_PUCKER_R = 1.0
42 LIP_STRETCHER_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_STRETCHER_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_STRETCHER_L = 1.0
43 LIP_STRETCHER_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_STRETCHER_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_STRETCHER_R = 1.0
44 LIP_SUCK_LB
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_SUCK_LB = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_SUCK_LB = 1.0
45 LIP_SUCK_LT
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_SUCK_LT = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_SUCK_LT = 1.0
46 LIP_SUCK_RB
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_SUCK_RB = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_SUCK_RB = 1.0
47 LIP_SUCK_RT
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_SUCK_RT = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_SUCK_RT = 1.0
48 LIP_TIGHTENER_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_TIGHTENER_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_TIGHTENER_L = 1.0
49 LIP_TIGHTENER_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIP_TIGHTENER_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LIP_TIGHTENER_R = 1.0
50 LIPS_TOWARD
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
LIPS_TOWARD = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
JAW_DROP = 1.0 और LIPS_TOWARD = 1.0
51 LOWER_LIP_DEPRESSOR_L
सामान्य भाव वाले चेहरे की रेफ़रंस इमेज
LOWER_LIP_DEPRESSOR_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LOWER_LIP_DEPRESSOR_L = 1.0
52 LOWER_LIP_DEPRESSOR_R
सामान्य भाव वाले चेहरे की रेफ़रंस इमेज
LOWER_LIP_DEPRESSOR_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
LOWER_LIP_DEPRESSOR_R = 1.0
53 MOUTH_LEFT
सामान्य भाव वाले चेहरे की रेफ़रंस इमेज
MOUTH_LEFT = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
MOUTH_LEFT = 1.0
54 MOUTH_RIGHT
सामान्य भाव वाले चेहरे की रेफ़रंस इमेज
MOUTH_RIGHT = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
MOUTH_RIGHT = 1.0
55 NOSE_WRINKLER_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
NOSE_WRINKLER_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
NOSE_WRINKLER_L = 1.0
56 NOSE_WRINKLER_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
NOSE_WRINKLER_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
NOSE_WRINKLER_R = 1.0
57 OUTER_BROW_RAISER_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
OUTER_BROW_RAISER_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
OUTER_BROW_RAISER_L = 1.0
58 OUTER_BROW_RAISER_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
OUTER_BROW_RAISER_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
OUTER_BROW_RAISER_R = 1.0
59 UPPER_LID_RAISER_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
UPPER_LID_RAISER_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
UPPER_LID_RAISER_L = 1.0
60 UPPER_LID_RAISER_R
सामान्य भाव वाले चेहरे की रेफ़रंस इमेज
UPPER_LID_RAISER_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
UPPER_LID_RAISER_R = 1.0
61 UPPER_LIP_RAISER_L
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
UPPER_LIP_RAISER_L = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
UPPER_LIP_RAISER_L = 1.0
62 UPPER_LIP_RAISER_R
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
UPPER_LIP_RAISER_R = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
UPPER_LIP_RAISER_R = 1.0

चेहरा ट्रैक करने के लिए कोड का उदाहरण

यहां दिए गए उदाहरण में, चेहरे के भावों को ब्लेंड करने वाली आकृतियों के लिए सभी वेट पाने का तरीका बताया गया है.

XrSession session; // previously initialized, for example 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

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:
bool 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;

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,
    };

    CHECK_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
        }
    }
}

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

नए ऑब्जेक्ट टाइप

नई Enum Constant

  • 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

नए Enums

नए स्ट्रक्चर

नए फ़ंक्शन

समस्याएं

वर्शन का इतिहास

  • पहला बदलाव, 05-09-2024 (लेवन चेन)
    • एक्सटेंशन के बारे में शुरुआती जानकारी