XR_ANDROID_face_tracking OpenXR एक्सटेंशन

Name String

XR_ANDROID_face_tracking

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

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

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

459

बदलाव

3

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

OpenXR 1.0

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

2025-06-04

आईपी का स्टेटस

आईपी से जुड़े किसी भी दावे की जानकारी नहीं है.

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

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

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

लेवाना चेन, Google

खास जानकारी

इस एक्सटेंशन की मदद से ऐप्लिकेशन, ब्लेंड शेप के वेट पा सकते हैं. साथ ही, 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 है. इससे पता चलता है कि मौजूदा सिस्टम में चेहरे को ट्रैक करने की सुविधा काम करती है या नहीं.

कोई ऐप्लिकेशन, xrGetSystemProperties को कॉल करते समय, XrSystemProperties को XrSystemFaceTrackingPropertiesANDROID स्ट्रक्चर के साथ बढ़ाकर, यह देख सकता है कि सिस्टम में चेहरे को ट्रैक करने की सुविधा है या नहीं.

अगर और सिर्फ़ अगर कोई रनटाइम XR_FALSE के लिए supportsFaceTracking दिखाता है, तो रनटाइम को xrCreateFaceTrackerANDROID से XR_ERROR_FEATURE_UNSUPPORTED दिखाना ज़रूरी है.

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

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

Failure

  • 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

Failure

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID

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

xrGetFaceCalibrationStateANDROID फ़ंक्शन को इस तरह से परिभाषित किया गया है:

XrResult xrGetFaceCalibrationStateANDROID(
    XrFaceTrackerANDROID                        faceTracker,
    XrBool32*                                   faceIsCalibratedOutput);

पैरामीटर की जानकारी

  • faceTracker, XrFaceTrackerANDROID है. इसे पहले xrCreateFaceTrackerANDROID ने बनाया था.
  • faceIsCalibratedOutput से पता चलता है कि फ़ेस ट्रैकर को कैलिब्रेट किया गया है या नहीं.

कोई ऐप्लिकेशन, xrGetFaceCalibrationStateANDROID फ़ंक्शन का इस्तेमाल करके, फ़ेस कैलिब्रेशन की स्थिति की जांच कर सकता है.

अगर ट्रैकिंग सेवा अब भी शुरू हो रही है, तो रनटाइम may, xrGetFaceCalibrationStateANDROID से XR_ERROR_SERVICE_NOT_READY_ANDROID दिखा सकता है. इससे पता चलता है कि ऐप्लिकेशन बाद में फिर से कोशिश कर सकता है.

अगर सिस्टम में चेहरे के कैलिब्रेशन की सुविधा काम नहीं करती है, तो xrGetFaceCalibrationStateANDROID, XR_ERROR_FEATURE_UNSUPPORTED दिखाएगा. इसके अलावा, चेहरे के कैलिब्रेशन की स्थिति दिखाने के लिए, faceIsCalibratedOutput को XR_TRUE पर सेट किया जा सकता है.

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

रिटर्न कोड

सफल

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Failure

  • 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 का पॉइंटर है. यह चेहरे को ट्रैक करने की स्थिति और चेहरे के हाव-भाव की जानकारी दिखाता है.

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

  • xrGetFaceStateANDROID को कॉल करने से पहले, XR_ANDROID_face_tracking एक्सटेंशन को चालू करना ज़रूरी है
  • faceTracker, XrFaceTrackerANDROID का एक मान्य हैंडल होना चाहिए
  • getInfo must, XrFaceStateGetInfoANDROID स्ट्रक्चर का मान्य पॉइंटर होना चाहिए
  • faceStateOutput, XrFaceStateANDROID स्ट्रक्चर का पॉइंटर होना चाहिए

रिटर्न कोड

सफल

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Failure

  • 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 ऐरे के अपडेट इस क्रम में होंगे, ताकि ऐप्लिकेशन, चेहरे के हाव-भाव वाले संबंधित एनम (जैसे, XrFaceParameterIndicesANDROID) का इस्तेमाल करके एलिमेंट को इंडेक्स कर सके.

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

  • XrFaceStateANDROID का इस्तेमाल करने से पहले, XR_ANDROID_face_tracking एक्सटेंशन को चालू करना ज़रूरी है
  • type ज़रूरी है कि XR_TYPE_FACE_STATE_ANDROID हो
  • next ज़रूरी है कि वह NULL हो या स्ट्रक्चर चेन में अगले स्ट्रक्चर का मान्य पॉइंटर हो
  • अगर parametersCapacityInput, 0, parameters नहीं है, तो must, parametersCapacityInput float वैल्यू की किसी श्रेणी का पॉइंटर होना चाहिए
  • अगर regionConfidencesCapacityInput, 0, regionConfidences नहीं है, तो must, 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 एक्सटेंशन, चेहरे के तीन हिस्सों के लिए कॉन्फ़िडेंस वैल्यू भी देता है: बाईं आंख, दाईं आंख, और निचला हिस्सा. ये वैल्यू, 0 (कोई भरोसा नहीं) से लेकर 1 (सबसे ज़्यादा भरोसा) तक होती हैं. इनसे हर इलाके के लिए, चेहरे को ट्रैक करने की सुविधा की सटीकता का पता चलता है.

इन कॉन्फ़िडेंस वैल्यू का इस्तेमाल करके, ब्लेंडशेप को धीरे-धीरे बंद किया जा सकता है. इसके अलावा, चेहरे के उस हिस्से पर विज़ुअल फ़िल्टर (जैसे कि धुंधला करना) लागू किए जा सकते हैं. चालू/बंद करने के सामान्य कंट्रोल के लिए, हमारा सुझाव है कि थ्रेशोल्ड के तौर पर 0.3 का इस्तेमाल करें. इससे चेहरे के उस हिस्से में ब्लेंडशेप पूरी तरह से बंद हो जाएंगे.

"चेहरे का निचला हिस्सा" आंखों के नीचे का पूरा हिस्सा होता है. इसमें मुंह, ठुड्डी, गाल, और नाक शामिल हैं. आंख वाले हिस्से में आंखें और भौहें शामिल होती हैं.

नीचे दी गई टेबल में, हर कॉन्फ़िडेंस रीजन से जुड़े ब्लेंडशेप के बारे में बताया गया है:

कॉन्फ़िडेंस रीजन ब्लेंडशेप
चेहरे का निचला हिस्सा `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_LOWERER_L_ANDROID`, `XR_FACE_PARAMETER_INDICES_BROW_LOWERER_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_EYES_LOOK_UP_R_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`

ब्लेंड शेप के कन्वेंशन

यह एक्सटेंशन, कम किए गए G-Nome फ़ॉर्मैट के लिए XR_FACE_PARAMETER_COUNT_ANDROID के ज़रिए 68 ब्लेंड शेप तय करता है. इस enum में मौजूद हर पैरामीटर, ब्लेंड शेप ऐरे में एक इंडेक्स होता है. इसकी वैल्यू 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,
    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
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
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 = 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 and 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
63 TONGUE_OUT
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
TONGUE_OUT = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
TONGUE_OUT = 1.0
64 TONGUE_LEFT
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
TONGUE_LEFT = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
TONGUE_LEFT = 1.0
65 TONGUE_RIGHT
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
TONGUE_RIGHT = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
TONGUE_RIGHT = 1.0
66 TONGUE_UP
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
TONGUE_UP = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
TONGUE_UP = 1.0
67 TONGUE_DOWN
सामान्य हाव-भाव वाले चेहरे की रेफ़रंस इमेज
TONGUE_DOWN = 0.0
चेहरा ट्रैक करने की सुविधा के लिए रेफ़रंस इमेज
TONGUE_DOWN = 1.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));

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

नए enum कॉन्स्टेंट

  • 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

नए एनम

नए स्ट्रक्चर

नए फ़ंक्शन

समस्याएं

वर्शन इतिहास

  • पहला बदलाव, 05-09-2024 (लेवाना चेन)
    • एक्सटेंशन की शुरुआती जानकारी
  • दूसरा वर्शन, 01-04-2025 (कैनी वर्केमर)
    • चेहरे की पहचान से जुड़ी कॉन्फ़िडेंस रीजन जोड़ी गईं
  • तीसरा वर्शन, 04-06-2025 (लेवाना चेन)
    • नया गड़बड़ी कोड जोड़ा गया.

OpenXR™ और OpenXR लोगो, The Khronos Group Inc. के ट्रेडमार्क हैं. इन्हें चीन, यूरोपियन यूनियन, जापान, और यूनाइटेड किंगडम में ट्रेडमार्क के तौर पर रजिस्टर किया गया है.