Точек от MediaPipe мало, чтобы натянуть шейдер на лицо игрока: нужна топология и проекция
Для аватара или AR-маски трекер отдаёт 468 точек в кадре, и на этом всё: ни граней, ни UV-развёртки, рендерить нечего.
Поверхность собирается отдельно: фиксированную топологию лица Google надо достать и натянуть на точки, а UV перенести с канонической модели. Дальше проекция обязана повторить то, что происходит с картинкой на экране: её зеркалят и обрезают под размер контейнера. Иначе меш разъезжается с видео, а текстура садится вверх ногами.
Второй источник проблем: распознавание и рендер идут по разным часам. Трекер пишет результат в изменяемую ссылку, а рендер мутирует существующий BufferGeometry, и 468 позиций не проходят через реактивность каждый кадр. В движке приём тот же: обновлять буфер вершин, а не пересобирать меш.
Разбор на Codrops идёт по шагам, вместе с настройкой GPU-делегата.
Post #2037
1.17K

- 👎 2
- 😇 1