رشته نام
XR_ANDROID_face_tracking
نوع پسوند
پسوند نمونه
شماره برنامه افزودنی ثبت شده
459
تجدید نظر
1
وابستگی های افزونه و نسخه
آخرین تاریخ اصلاح
06-09-2024
وضعیت IP
هیچ ادعای IP شناخته شده ای وجود ندارد.
مشارکت کنندگان
اسپنسر کوین، گوگل
جارد فایندر، گوگل
لوانا چن، گوگل
نمای کلی
این افزونه برنامهها را قادر میسازد تا وزنهایی از شکلهای ترکیبی را دریافت کنند و حالات چهره را در تجربیات 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_ANDROID_face_tracking
باید قبل از فراخوانی xrCreateFaceTrackerANDROID فعال شود -
session
باید یک دسته XrSession معتبر باشد -
createInfo
باید یک اشاره گر به یک ساختار معتبر XrFaceTrackerCreateInfoANDROID باشد -
faceTracker
باید یک اشاره گر به یک دسته XrFaceTrackerANDROID باشد
کدهای بازگشت
-
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 توصیف می کند.
استفاده معتبر (ضمنی)
- برنامه افزودنی
XR_ANDROID_face_tracking
باید قبل از استفاده از XrFaceTrackerCreateInfoANDROID فعال شود -
type
بایدXR_TYPE_FACE_TRACKER_CREATE_INFO_ANDROID
باشد -
next
بایدNULL
یا یک اشاره گر معتبر به ساختار بعدی در یک زنجیره ساختار باشد
تابع xrDestroyFaceTrackerANDROID به صورت زیر تعریف می شود:
XrResult xrDestroyFaceTrackerANDROID(
XrFaceTrackerANDROID faceTracker);
توضیحات پارامترها
-
faceTracker
یک XrFaceTrackerANDROID است که قبلا توسط xrCreateFaceTrackerANDROID ایجاد شده است.
تابع xrDestroyFaceTrackerANDROID پس از پایان تجربه ردیابی چهره faceTracker
و منابع زیرین را آزاد می کند.
استفاده معتبر (ضمنی)
- برنامه افزودنی
XR_ANDROID_face_tracking
باید قبل از فراخوانی xrDestroyFaceTrackerANDROID فعال شود -
faceTracker
باید یک دسته معتبر XrFaceTrackerANDROID باشد
ایمنی نخ
- دسترسی به
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_ANDROID_face_tracking
باید قبل از فراخوانی xrGetFaceCalibrationStateANDROID فعال شود -
faceTracker
باید یک دسته معتبر XrFaceTrackerANDROID باشد -
faceIsCalibratedOutput
باید یک اشاره گر به یک مقدارXrBool32
باشد
کدهای بازگشت
-
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_ANDROID_face_tracking
باید قبل از تماس با xrGetFaceStateANDROID فعال شود -
faceTracker
باید یک دسته معتبر XrFaceTrackerANDROID باشد -
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
است که در آن حالات چهره درخواست می شود.
برنامه ها باید زمانی برابر با زمان نمایش پیش بینی شده برای فریم رندر شده درخواست کنند.
استفاده معتبر (ضمنی)
- برنامه افزودنی
XR_ANDROID_face_tracking
باید قبل از استفاده از XrFaceStateGetInfoANDROID فعال شود -
type
بایدXR_TYPE_FACE_STATE_GET_INFO_ANDROID
باشد -
next
بایدNULL
یا یک اشاره گر معتبر به ساختار بعدی در یک زنجیره ساختار باشد
ساختار 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
یا 0 را برای نشان دادن درخواست برای بازیابی ظرفیت مورد نیاز توصیف می کند. -
parametersCountOutput
یکuint32_t
است که تعدادparameters
یا ظرفیت مورد نیاز را در مواردی کهparametersCapacityInput
کافی نیست توصیف می کند. -
parameters
یک اشاره گر به یک آرایه ازfloat
اختصاص داده شده توسط برنامه است که با وزن هایی از اشکال ترکیبی حالت چهره پر می شود. -
faceTrackingState
XrFaceTrackingStateANDROID
وضعیت اعتبار ردیابی چهره است. -
sampleTime
یک زمانXrTime
است که در آن عبارات بازگشتی ردیابی یا برون یابی می شوند. اگر برون یابی در آن زمان موفقیت آمیز بود، برابر با زمانی است که در آن وزن های عبارت درخواست شده بودند. -
isValid
نشان می دهد که آیا داده ها معتبر هستند حتی اگر از فریم فعلی نباشند. - برای توضیح دقیق بازیابی اندازه
parameters
مورد نیاز به بخش پارامترهای اندازه بافر مراجعه کنید.
این برنامه میتواند 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
باشند. -
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 ها معانی زیر را دارند:
Enum | توضیحات |
| نشان می دهد که ردیابی چهره متوقف شده است اما ممکن است در آینده از سر گرفته شود. |
| ردیابی متوقف شده است اما مشتری هنوز یک ردیاب چهره فعال دارد. |
| صورت ردیابی می شود و حالت آن جاری است. |
کنوانسیون اشکال ترکیبی
این برنامه افزودنی 63 شکل ترکیبی را از طریق XR_FACE_PARAMETER_COUNT_ANDROID
برای قالب G-Nome کاهش یافته تعریف می کند. هر پارامتر در این 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
} XrFaceParameterIndicesANDROID;
شاخص | نام | تصویر مرجع | |
---|---|---|---|
0 | BROW_LOWERER_L | ||
1 | BROW_LOWERER_R | ||
2 | CHEEK_PUFF_L | ||
3 | CHEEK_PUFF_R | ||
4 | CHEEK_RAISER_L | ||
5 | CHEEK_RAISER_R | ||
6 | CHEEK_SUCK_L | ||
7 | CHEEK_SUCK_R | ||
8 | CHIN_RAISER_B | ||
9 | CHIN_RAISER_T | ||
10 | DIMPLER_L | ||
11 | DIMPLER_R | ||
12 | EYES_CLOSED_L | ||
13 | EYES_CLOSED_R | ||
14 | EYES_LOOK_DOWN_L | ||
15 | EYES_LOOK_DOWN_R | ||
16 | EYES_LOOK_LEFT_L | ||
17 | EYES_LOOK_LEFT_R | ||
18 | EYES_LOOK_RIGHT_L | ||
19 | EYES_LOOK_RIGHT_R | ||
20 | EYES_LOOK_UP_L | ||
21 | EYES_LOOK_UP_R | ||
22 | INNER_BROW_RAISER_L | ||
23 | INNER_BROW_RAISER_R | ||
24 | JAW_DROP | ||
25 | JAW_SIDEWAYS_LEFT | ||
26 | JAW_SIDEWAYS_RIGHT | ||
27 | JAW_THRUST | ||
28 | LID_TIGHTENER_L | ||
29 | LID_TIGHTENER_R | ||
30 | LIP_CORNER_DEPRESSOR_L | ||
31 | LIP_CORNER_DEPRESSOR_R | ||
32 | LIP_CORNER_PULLER_L | ||
33 | LIP_CORNER_PULLER_R | ||
34 | LIP_FUNNELER_LB | ||
35 | LIP_FUNNELER_LT | ||
36 | LIP_FUNNELER_RB | ||
37 | LIP_FUNNELER_RT | ||
38 | LIP_PRESSOR_L | ||
39 | LIP_PRESSOR_R | ||
40 | LIP_PUCKER_L | ||
41 | LIP_PUCKER_R | ||
42 | LIP_STRETCHER_L | ||
43 | LIP_STRETCHER_R | ||
44 | LIP_SUCK_LB | ||
45 | LIP_SUCK_LT | ||
46 | LIP_SUCK_RB | ||
47 | LIP_SUCK_RT | ||
48 | LIP_TIGHTENER_L | ||
49 | LIP_TIGHTENER_R | ||
50 | LIPS_TOWARD | ||
51 | LOWER_LIP_DEPRESSOR_L | ||
52 | LOWER_LIP_DEPRESSOR_R | ||
53 | MOUTH_LEFT | ||
54 | MOUTH_RIGHT | ||
55 | NOSE_WRINKLER_L | ||
56 | NOSE_WRINKLER_R | ||
57 | OUTER_BROW_RAISER_L | ||
58 | OUTER_BROW_RAISER_R | ||
59 | UPPER_LID_RAISER_L | ||
60 | UPPER_LID_RAISER_R | ||
61 | UPPER_LIP_RAISER_L | ||
62 | UPPER_LIP_RAISER_R |
کد مثال برای ردیابی چهره
کد مثال زیر نشان میدهد که چگونه میتوان تمام وزنها را برای شکلهای ترکیبی حالت چهره به دست آورد.
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
-
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
فهرست های جدید
ساختارهای جدید
توابع جدید
- xrCreateFaceTrackerANDROID
- xrDestroyFaceTrackerANDROID
- xrGetFaceStateANDROID
- xrGetFaceCalibrationStateANDROID
مسائل
تاریخچه نسخه
- بازبینی 1، 05-09-2024 (لوانا چن)
- توضیحات پسوند اولیه