XR_ANDROID_face_tracking OpenXR uzantısı

Ad dizesi

XR_ANDROID_face_tracking

Uzantı Türü

Örnek uzatma

Kayıtlı Uzatma Numarası

459

Düzeltme

1

Uzantı ve Sürüm Bağımlılıkları

OpenXR 1.0

Son Değiştirilme Tarihi

2024-09-06

IP Durumu

Bilinen IP hak talepleri yok.

Katkıda bulunanlar

Spencer Quin, Google

Jared Finder, Google

Levana Chen, Google

Genel Bakış

Bu uzantı, uygulamaların XR deneyimlerinde şekillerin ağırlıklarını almasını ve yüz ifadelerini oluşturmasını sağlar.

Bu uzantı, sanal alanda kullanıcıların gerçekçi avatarlarını ve etkileyici temsillerini oluşturmak için gereken bilgileri sağlamak amacıyla tasarlanmıştır. Uygulama, karıştırma şekillerinin ağırlıklarını almadan önce yüz kalibrasyonunun etkinleştirilip etkinleştirilmediğini kontrol edebilir.

Yüz İzleyici

Yüz izleyici, kullanıcıya bakan görüntü akışları ve kamera kalibrasyonuyla yüz ifadesini izleyen bir algılama cihazıdır. Bu uzantının asıl amacı, kullanıcının yüz ifadelerini sanal bir sahnedeki avatarlarıyla eşleştirmektir.

Yüz izleme verileri hassas kişisel bilgilerdir ve kişisel gizlilik ve bütünlükle yakından ilişkilidir. Yüz izleme verilerini depolayan veya aktaran uygulamaların, bunu yapmak için her zaman kullanıcıdan etkin ve belirli bir onay istemesi önemle tavsiye edilir.

  • Uygulamalar, etkin bir yüz izleyici oluştururken yüz izleyiciye erişmesine izin verilene kadar XR_ERROR_PERMISSION_INSUFFICIENT alır.
  • xrGetFaceStateANDROID kullanılarak yüz durumları alınırken uygulama erişimine izin verilmediği sürece XrFaceStateANDROID::isValid XR_TRUE döndürmez

Yüz takipçisi herkese açık kullanıcı adı oluşturma

XR_DEFINE_HANDLE(XrFaceTrackerANDROID)

XrFaceTrackerANDROID herkese açık kullanıcı adı, yüz izleme için bir yüz izleyiciyi temsil eder.

Bu herkese açık kullanıcı adı, bu uzantının diğer işlevlerini kullanarak yüz izleme verilerine erişmek için kullanılabilinir.

xrCreateFaceTrackerANDROID işlevi şu şekilde tanımlanır:

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

Parametre Açıklamaları

Uygulamalar, xrCreateFaceTrackerANDROID işlevini kullanarak XrFaceTrackerANDROID işleyicisi oluşturabilir.

Sistem yüz izlemeyi desteklemiyorsa xrCreateFaceTrackerANDROID işlevi XR_ERROR_FEATURE_UNSUPPORTED değerini döndürür.

Geçerli Kullanım (Dolayı)

İade Kodları

Başarılı

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Hata

  • 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 yapısı aşağıdaki gibi açıklanır:

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

Üye Açıklamaları

  • type, bu yapının XrStructureType değeridir.
  • next, NULL veya bir yapı zincirindeki sonraki yapının işaretçisidir. Temel OpenXR'da veya bu uzantıda böyle bir yapı tanımlanmamıştır.

XrFaceTrackerCreateInfoANDROID yapısı, XrFaceTrackerANDROID işleyicisi oluşturmak için gereken bilgileri açıklar.

Geçerli Kullanım (Dolayı)

xrDestroyFaceTrackerANDROID işlevi şu şekilde tanımlanır:

XrResult xrDestroyFaceTrackerANDROID(
    XrFaceTrackerANDROID                        faceTracker);

Parametre Açıklamaları

xrDestroyFaceTrackerANDROID işlevi, yüz izleme deneyimi sona erdiğinde faceTracker ve temel kaynakları serbest bırakır.

Geçerli Kullanım (Dolayı)

Thread Güvenliği

  • faceTracker ve alt herkese açık kimliklere erişim, harici olarak senkronize edilmelidir.

İade Kodları

Başarılı

  • XR_SUCCESS

Hata

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID

Kadran kalibrasyonunu kontrol etme

xrGetFaceCalibrationStateANDROID işlevi şu şekilde tanımlanır:

XrResult xrGetFaceCalibrationStateANDROID(
    XrFaceTrackerANDROID                        faceTracker,
    XrBool32*                                   faceIsCalibratedOutput);

Parametre Açıklamaları

Uygulamalar, xrGetFaceCalibrationStateANDROID işlevini kullanarak kadran kalibrasyon durumunu kontrol edebilir.

Sistem yüz kalibrasyonunu desteklemiyorsa xrGetFaceCalibrationStateANDROID XR_ERROR_FEATURE_UNSUPPORTED değerini döndürür. Aksi takdirde faceIsCalibratedOutput, yüz kalibrasyon durumunu yansıtmak için XR_TRUE olarak ayarlanabilir.

Geçerli Kullanım (Dolayı)

İade Kodları

Başarılı

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Hata

  • 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

Yüz ifadelerini alma

xrGetFaceStateANDROID işlevi, belirli bir zamanda yüz ifadelerinin harman şekillerini döndürür.

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

Parametre Açıklamaları

Geçerli Kullanım (Dolayı)

İade Kodları

Başarılı

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Hata

  • 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 yapısı, yüz ifadelerinin elde edilmesi için gereken bilgileri açıklar.

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

Üye Açıklamaları

  • type, bu yapının XrStructureType değeridir.
  • next, NULL veya bir yapı zincirindeki sonraki yapının işaretçisidir. Temel OpenXR'da veya bu uzantıda böyle bir yapı tanımlanmamıştır.
  • time, yüz ifadelerinin istendiği bir XrTime öğesidir.

Uygulamalar, oluşturulan karenin tahmini görüntüleme süresine eşit bir süre istemelidir.

Geçerli Kullanım (Dolayı)

XrFaceStateANDROID yapısı, yüz izleme durumunu ve yüz ifadelerini döndürür.

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

Üye Açıklamaları

  • type, bu yapının XrStructureType değeridir.
  • next, NULL veya bir yapı zincirindeki sonraki yapının işaretçisidir. Temel OpenXR'da veya bu uzantıda böyle bir yapı tanımlanmamıştır.
  • parametersCapacityInput, parameters dizisinin kapasitesini açıklayan bir uint32_t veya gerekli kapasiteyi alma isteğini belirtmek için 0 değerini alır.
  • parametersCountOutput, parameters öğelerinin sayısını veya parametersCapacityInput'ın yetersiz olması durumunda gereken kapasiteyi açıklayan bir uint32_t öğesidir.
  • parameters, yüz ifadesi karışım şekillerinin ağırlıklarıyla doldurulacak, uygulama tarafından ayrılmış bir float dizisinin işaretçisidir.
  • faceTrackingState, yüz izlemenin geçerlilik durumunun XrFaceTrackingStateANDROID değeridir.
  • sampleTime, döndürülen ifadelerin izlendiği veya ekstrapolasyon uygulandığı XrTime zamandır. O sırada ekstrapolasyon başarılıysa ifade ağırlıklarının istendiği zamana eşittir.
  • isValid, verilerin geçerli olup olmadığını gösterir. Geçerli kareden olmasa bile geçerli olabilir.
  • Gerekli parameters boyutunu almayla ilgili ayrıntılı açıklama için Arabellek Boyutu Parametreleri bölümüne bakın.

Uygulama, XrFaceParameterIndicesANDROID tarafından dizine eklenen yüz ifadelerini almak için parametersCapacityInput değerini XR_FACE_PARAMETER_COUNT_ANDROID olarak ayarlayabilir.

Döndürülen parameters, mevcut yüz ifadelerinin karışım şekillerinin ağırlıklarını temsil eder.

parameters dizisi güncellemeleri, uygulamanın ilgili yüz ifadesi enum'unu (ör. XrFaceParameterIndicesANDROID) kullanarak öğeleri dizine ekleyebilmesi için sıralanır.

Geçerli Kullanım (Dolayı)

XrFaceTrackingStateANDROID enumeration, yüz izleyicinin farklı durumlarını tanımlar.

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;

Listeler aşağıdaki anlamlara sahiptir:

Enum

Açıklama

XR_FACE_TRACKING_STATE_PAUSED_ANDROID

Yüz izlemenin duraklatıldığını ancak ileride devam ettirilebileceğini gösterir.

XR_FACE_TRACKING_STATE_STOPPED_ANDROID

İzleme durdurulmuş ancak istemcide etkin bir yüz izleyicisi var.

XR_FACE_TRACKING_STATE_TRACKING_ANDROID

Yüz izlenir ve yüz ifadesi günceldir.

Harmanlama şekilleriyle ilgili kurallar

Bu uzantı, azaltılmış G-Nome biçimi için XR_FACE_PARAMETER_COUNT_ANDROID aracılığıyla 63 karma şekil tanımlar. Bu enum'daki her parametre, değerleri float türü olan ve çalışma zamanında 1 - 0 olarak normalleştirilen bir karma şekil dizisinin dizinidir.

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;
Dizin Ad Referans resim
0 BROW_LOWERER_L
Donuk yüz referans resmi
BROW_LOWERER_L = 0.0
yüz izleme referans resmi
BROW_LOWERER_L = 1.0
1 BROW_LOWERER_R
Donuk yüz referans resmi
BROW_LOWERER_R = 0.0
yüz izleme referans resmi
BROW_LOWERER_R = 1.0
2 CHEEK_PUFF_L
Donuk yüz referans resmi
CHEEK_PUFF_L = 0.0
yüz izleme referans resmi
CHEEK_PUFF_L = 1.0
3 CHEEK_PUFF_R
Donuk yüz referans resmi
CHEEK_PUFF_R = 0.0
yüz izleme referans resmi
CHEEK_PUFF_R = 1.0
4 CHEEK_RAISER_L
Donuk yüz referans resmi
CHEEK_RAISER_L = 0.0
yüz izleme referans resmi
CHEEK_RAISER_L = 1.0
5 CHEEK_RAISER_R
Donuk yüz referans resmi
CHEEK_RAISER_R = 0.0
yüz izleme referans resmi
CHEEK_RAISER_R = 1.0
6 CHEEK_SUCK_L
Donuk yüz referans resmi
CHEEK_SUCK_L = 0.0
yüz izleme referans resmi
CHEEK_SUCK_L = 1.0
7 CHEEK_SUCK_R
Donuk yüz referans resmi
CHEEK_SUCK_R = 0.0
yüz izleme referans resmi
CHEEK_SUCK_R = 1.0
8 CHIN_RAISER_B
Donuk yüz referans resmi
CHIN_RAISER_B = 0.0
yüz izleme referans resmi
CHIN_RAISER_B = 1.0
9 CHIN_RAISER_T
Donuk yüz referans resmi
CHIN_RAISER_T = 0.0
yüz izleme referans resmi
CHIN_RAISER_T = 1.0
10 DIMPLER_L
Donuk yüz referans resmi
DIMPLER_L = 0.0
yüz izleme referans resmi
DIMPLER_L = 1.0
11 DIMPLER_R
Donuk yüz referans resmi
DIMPLER_R = 0.0
yüz izleme referans resmi
DIMPLER_R = 1.0
12 EYES_CLOSED_L
Donuk yüz referans resmi
EYES_CLOSED_L = 0.0
yüz izleme referans resmi
EYES_CLOSED_L = 1.0
13 EYES_CLOSED_R
Donuk yüz referans resmi
EYES_CLOSED_R = 0.0
yüz izleme referans resmi
EYES_CLOSED_R = 1.0
14 EYES_LOOK_DOWN_L
Donuk yüz referans resmi
EYES_LOOK_DOWN_L = 0.0
yüz izleme referans resmi
EYES_LOOK_DOWN_L = 1.0
15 EYES_LOOK_DOWN_R
Donuk yüz referans resmi
EYES_LOOK_DOWN_R = 0.0
yüz izleme referans resmi
EYES_LOOK_DOWN_R = 1.0
16 EYES_LOOK_LEFT_L
Donuk yüz referans resmi
EYES_LOOK_LEFT_L = 0.0
yüz izleme referans resmi
EYES_LOOK_LEFT_L = 1.0
17 EYES_LOOK_LEFT_R
Donuk yüz referans resmi
EYES_LOOK_LEFT_R = 0.0
yüz izleme referans resmi
EYES_LOOK_LEFT_R = 1.0
18 EYES_LOOK_RIGHT_L
Donuk yüz referans resmi
EYES_LOOK_RIGHT_L = 0.0
yüz izleme referans resmi
EYES_LOOK_RIGHT_L = 1.0
19 EYES_LOOK_RIGHT_R
Donuk yüz referans resmi
EYES_LOOK_RIGHT_R = 0.0
yüz izleme referans resmi
EYES_LOOK_RIGHT_R = 1.0
20 EYES_LOOK_UP_L
Donuk yüz referans resmi
EYES_LOOK_UP_L = 0.0
yüz izleme referans resmi
EYES_LOOK_UP_L = 1.0
21 EYES_LOOK_UP_R
Donuk yüz referans resmi
EYES_LOOK_UP_R = 0.0
yüz izleme referans resmi
EYES_LOOK_UP_R = 1.0
22 INNER_BROW_RAISER_L
Donuk yüz referans resmi
INNER_BROW_RAISER_L = 0.0
yüz izleme referans resmi
INNER_BROW_RAISER_L = 1.0
23 INNER_BROW_RAISER_R
Donuk yüz referans resmi
INNER_BROW_RAISER_R = 0.0
yüz izleme referans resmi
INNER_BROW_RAISER_R = 1.0
24 JAW_DROP
Donuk yüz referans resmi
JAW_DROP = 0.0
yüz izleme referans resmi
JAW_DROP = 1.0
25 JAW_SIDEWAYS_LEFT
Donuk yüz referans resmi
JAW_SIDEWAYS_LEFT = 0.0
yüz izleme referans resmi
JAW_SIDEWAYS_LEFT = 1.0
26 JAW_SIDEWAYS_RIGHT
Donuk yüz referans resmi
JAW_SIDEWAYS_RIGHT = 0.0
yüz izleme referans resmi
JAW_SIDEWAYS_RIGHT = 1.0
27 JAW_THRUST
Donuk yüz referans resmi
JAW_THRUST = 0.0
yüz izleme referans resmi
JAW_THRUST = 1.0
28 LID_TIGHTENER_L
Donuk yüz referans resmi
LID_TIGHTENER_L = 0.0
yüz izleme referans resmi
LID_TIGHTENER_L = 1.0
29 LID_TIGHTENER_R
Donuk yüz referans resmi
LID_TIGHTENER_R = 0.0
yüz izleme referans resmi
LID_TIGHTENER_R = 1.0
30 LIP_CORNER_DEPRESSOR_L
Donuk yüz referans resmi
LIP_CORNER_DEPRESSOR_L = 0.0
yüz izleme referans resmi
LIP_CORNER_DEPRESSOR_L = 1.0
31 LIP_CORNER_DEPRESSOR_R
Donuk yüz referans resmi
LIP_CORNER_DEPRESSOR_R = 0.0
yüz izleme referans resmi
LIP_CORNER_DEPRESSOR_R = 1.0
32 LIP_CORNER_PULLER_L
Donuk yüz referans resmi
LIP_CORNER_PULLER_L = 0.0
yüz izleme referans resmi
LIP_CORNER_PULLER_L = 1.0
33 LIP_CORNER_PULLER_R
Donuk yüz referans resmi
LIP_CORNER_PULLER_R = 0.0
yüz izleme referans resmi
LIP_CORNER_PULLER_R = 1.0
34 LIP_FUNNELER_LB
Donuk yüz referans resmi
LIP_FUNNELER_LB = 0.0
yüz izleme referans resmi
LIP_FUNNELER_LB = 1.0
35 LIP_FUNNELER_LT
Donuk yüz referans resmi
LIP_FUNNELER_LT = 0.0
yüz izleme referans resmi
LIP_FUNNELER_LT = 1.0
36 LIP_FUNNELER_RB
Donuk yüz referans resmi
LIP_FUNNELER_RB = 0.0
yüz izleme referans resmi
LIP_FUNNELER_RB = 1.0
37 LIP_FUNNELER_RT
Donuk yüz referans resmi
LIP_FUNNELER_RT = 0.0
yüz izleme referans resmi
LIP_FUNNELER_RT = 1.0
38 LIP_PRESSOR_L
Donuk yüz referans resmi
LIP_PRESSOR_L = 0.0
yüz izleme referans resmi
LIP_PRESSOR_L = 1.0
39 LIP_PRESSOR_R
Donuk yüz referans resmi
LIP_PRESSOR_R = 0.0
yüz izleme referans resmi
LIP_PRESSOR_R = 1.0
40 LIP_PUCKER_L
Donuk yüz referans resmi
LIP_PUCKER_L = 0.0
yüz izleme referans resmi
LIP_PUCKER_L = 1.0
41 LIP_PUCKER_R
Donuk yüz referans resmi
LIP_PUCKER_R = 0.0
yüz izleme referans resmi
LIP_PUCKER_R = 1.0
42 LIP_STRETCHER_L
Donuk yüz referans resmi
LIP_STRETCHER_L = 0.0
yüz izleme referans resmi
LIP_STRETCHER_L = 1.0
43 LIP_STRETCHER_R
Donuk yüz referans resmi
LIP_STRETCHER_R = 0.0
yüz izleme referans resmi
LIP_STRETCHER_R = 1.0
44 LIP_SUCK_LB
Donuk yüz referans resmi
LIP_SUCK_LB = 0.0
yüz izleme referans resmi
LIP_SUCK_LB = 1.0
45 LIP_SUCK_LT
Donuk yüz referans resmi
LIP_SUCK_LT = 0.0
yüz izleme referans resmi
LIP_SUCK_LT = 1.0
46 LIP_SUCK_RB
Donuk yüz referans resmi
LIP_SUCK_RB = 0.0
yüz izleme referans resmi
LIP_SUCK_RB = 1.0
47 LIP_SUCK_RT
Donuk yüz referans resmi
LIP_SUCK_RT = 0.0
yüz izleme referans resmi
LIP_SUCK_RT = 1.0
48 LIP_TIGHTENER_L
Donuk yüz referans resmi
LIP_TIGHTENER_L = 0.0
yüz izleme referans resmi
LIP_TIGHTENER_L = 1.0
49 LIP_TIGHTENER_R
Donuk yüz referans resmi
LIP_TIGHTENER_R = 0.0
yüz izleme referans resmi
LIP_TIGHTENER_R = 1.0
50 LIPS_TOWARD
Donuk yüz referans resmi
LIPS_TOWARD = 0.0
yüz izleme referans resmi
JAW_DROP = 1.0 and LIPS_TOWARD = 1.0
51 LOWER_LIP_DEPRESSOR_L
Donuk yüz referans resmi
LOWER_LIP_DEPRESSOR_L = 0.0
yüz izleme referans resmi
LOWER_LIP_DEPRESSOR_L = 1.0
52) LOWER_LIP_DEPRESSOR_R
Donuk yüz referans resmi
LOWER_LIP_DEPRESSOR_R = 0.0
yüz izleme referans resmi
LOWER_LIP_DEPRESSOR_R = 1.0
53) MOUTH_LEFT
Donuk yüz referans resmi
MOUTH_LEFT = 0.0
yüz izleme referans resmi
MOUTH_LEFT = 1.0
54 MOUTH_RIGHT
Donuk yüz referans resmi
MOUTH_RIGHT = 0.0
yüz izleme referans resmi
MOUTH_RIGHT = 1.0
55 NOSE_WRINKLER_L
Donuk yüz referans resmi
NOSE_WRINKLER_L = 0.0
yüz izleme referans resmi
NOSE_WRINKLER_L = 1.0
56 NOSE_WRINKLER_R
Donuk yüz referans resmi
NOSE_WRINKLER_R = 0.0
yüz izleme referans resmi
NOSE_WRINKLER_R = 1.0
57) OUTER_BROW_RAISER_L
Donuk yüz referans resmi
OUTER_BROW_RAISER_L = 0.0
yüz izleme referans resmi
OUTER_BROW_RAISER_L = 1.0
58 OUTER_BROW_RAISER_R
Donuk yüz referans resmi
OUTER_BROW_RAISER_R = 0.0
yüz izleme referans resmi
OUTER_BROW_RAISER_R = 1.0
59 UPPER_LID_RAISER_L
Donuk yüz referans resmi
UPPER_LID_RAISER_L = 0.0
yüz izleme referans resmi
UPPER_LID_RAISER_L = 1.0
60 UPPER_LID_RAISER_R
Donuk yüz referans resmi
UPPER_LID_RAISER_R = 0.0
yüz izleme referans resmi
UPPER_LID_RAISER_R = 1.0
61 UPPER_LIP_RAISER_L
Donuk yüz referans resmi
UPPER_LIP_RAISER_L = 0.0
yüz izleme referans resmi
UPPER_LIP_RAISER_L = 1.0
62 UPPER_LIP_RAISER_R
Donuk yüz referans resmi
UPPER_LIP_RAISER_R = 0.0
yüz izleme referans resmi
UPPER_LIP_RAISER_R = 1.0

Yüz izleme için örnek kod

Aşağıdaki örnek kodda, yüz ifadesi karışım şekillerinin tüm ağırlıklarının nasıl alınacağı gösterilmektedir.

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));

Yeni Nesne Türleri

Yeni Enum Constants

  • XR_FACE_PARAMETER_COUNT_ANDROID

XrObjectType dizini aşağıdakilerle genişletildi:

  • XR_OBJECT_TYPE_FACE_TRACKER_ANDROID

XrStructureType dizini aşağıdakilerle genişletildi:

  • XR_TYPE_FACE_TRACKER_CREATE_INFO_ANDROID
  • XR_TYPE_FACE_STATE_GET_INFO_ANDROID
  • XR_TYPE_FACE_STATE_ANDROID

Yeni Sıralamalar

Yeni Yapılar

Yeni İşlevler

Sorunlar

Sürüm Geçmişi

  • Düzeltme 1, 05.09.2024 (Levana Chen)
    • İlk uzantı açıklaması