Не могли бы вы объяснить, как этот API распознавания выражений лица и коды GLSL для анимации связаны в этой демонстрации? - PullRequest
0 голосов
/ 18 января 2020

О демо

Это хранилище API распознавания выражений лиц , используемого в демо.

Документ API здесь .

Самая конкретная демонстрация c, о которой я говорю, это здесь .

В этой демонстрации используются три вспомогательные JavaScript программы, такие как these .

Я полагаю, что в этой демонстрации они используют фронтальную камеру ноутбука и API для получения этих двух массивов значений для трехмерной анимации морфируемых целей в веб-браузере.

  1. Направление (вращение вокруг осей x, y, z) головы клиента в режиме реального времени, например

    const rotation = JEEFACETRANSFERAPI.get_rotationStabilized(); \\ please see doc for return value

    в animate () в ThreeJeelizHelper. js .

  2. Выражение лица (морфизированные коэффициенты 11 выражений лица, такие как массив [9] -> [0,8 закрытого левого глаза]) клиента в режиме реального времени, как

    const morphTargetInfluencesDst = JEEFACETRANSFERAPI.get_morphTargetInfluencesStabilized(); \\ please see doc for return value

    в случае успехаCallback () ThreeMorphAnimGeomBuilder () в ThreeJeelizHelper. js.

* 104 4 * Вопрос

Я думаю, что 2-я задача (изменение выражения лица 3D-модели в реальном времени) требует гораздо больше вычислений, чем 1-я задача (изменение направления 3D-модели в режиме реального времени), поэтому Второе задание обрабатывается графическим процессором с использованием GLSL.

По сравнению с первым заданием, которое просто выполняется в функции animate () с использованием JavaScript, второе задание кажется мне запутанным, и я не уверен, как это API и GLSL связаны между собой.

Выражение лица клиента изменяется в режиме реального времени, поэтому я думаю, что этот код JEEFACETRANSFERAPI.get_morphTargetInfluencesStabilized() должен вызываться много раз в процессе рендеринга, но на самом деле, кажется, что он вызывается только один раз в successCallback () ThreeMorphAnimGeomBuilder () в ThreeJeelizHelper. js.

Как код GLSL в здесь получает коэффициенты морфизации из API в реальном время? Где это происходит в коде?


Я мог бы неправильно понять что-то об анимации morph targts или об этом API.

Если вы могли бы указать на мои ошибки, я действительно ценю это.

Спасибо за чтение!

...