Допустим мы хотим сделать черно-белый эффект, а также добавить к нему деформацию лица, но наш черно-белый эффект не добавится к деформации. Попробуем это решить.

Добавляем деформацию

Как сделать деформацию лица вместе с фильтром?

Для начала вставляем facemesh и добавляем деформацию, например с примеров на главной странице Spark AR Studio. Через пару секунд эффект применяется, а в материалах появляется faceWarpMaterial0.

Если посмотреть на его тип шейдера, то там стоит Face Warp. Это специальный шейдер для деформации, который устанавливается автоматически при добавлении деформации. Увы управлять этим материалом через редактор нельзя, соответственно, наложить эффекты на этот материал тоже. Попробуем это обойти.

Добавляем черно-белый эффект камере

Как сделать деформацию лица вместе с фильтром?

Создаем черно-белый фильтр на камеру по уроку, только у материала, который копирует камеру обязательно ставим тип шейдера — Flat. Facemesh’у добавляем новый материал и убираем галочки у Eyes и Mouth, чтобы маска лица не вырезала глаза и рот. Убираем проверку глубины у фона и меняем слои, чтобы маска всегда была выше фона.

Добавляем эффект на маску

Как сделать деформацию лица вместе с фильтром?

Открываем редактор патчей. Сейчас там фильтр, который принимает изображение с камеры и делает его черно-белым. Для удобства выделяем все патчи, которые в этом участвуют, кликаем правой кнопкой и создаем группу.

Кликаем на facetracker, в свойствах находим «Texture Extraction«, нажимаем плюс и в материалах у нас добавляется «facetracker0 Texture«. Это текстура лица, которую мы можем перенести в редактор патчей, так и сделаем.

Как сделать деформацию лица вместе с фильтром?

Вернемся к материалу лица, аналогично ставим тип шейдера Flat и выносим текстуру в редактор. Копируем наш патч, который делает изображение черно-белым и соединяем через него текстуру лица с материалом.

Как сделать деформацию лица вместе с фильтром?

Вуаля! Деформация стала тоже черно-белой!

Как сделать деформацию лица вместе с фильтром?

P.S. Увы, но таким способом нельзя наложить эффект, если вы деформируете форму самого лица, так как контуры перестанут сходиться с изображением камеры :С