Сжатие количества полигонов с помощью Meshia Mesh Simplifier
Описание
Meshia позволяет недеструктивно сжимать меши по полигонам, при этом компонент старается автоматически поддерживать заданный уровень полигонов. Итоговое качество сильно зависит от детальности мешей, а при настройке нет универсального рецепта, каждый меш оптимизируется индивидуально. Если вам очень нужно ужаться в 70 тысяч полигонов - данный пункт гайда может быть самым длительным. Лучший результат можно получить на довольно плоских одеждах
Инструкция по сжатию
- Предварительно удалите/выключите через задание тега
Editor onlyв инспекторе все меши, которые не будут использоваться на аватаре - Удалите все скрытые под одеждой полигоны с помощью ранее описываемых компонентов
- Нажмите ПКМ по аватару -
Meshia Mesh Simplification-Meshia Cascading Avatar Mesh Simplifier. В аватар будет добавлен одноименный GameObject.Target Triange Count- количество треугольников, до которых будет сжат аватарEnable Auto Adjust- при изменении одного ползунка плавно меняет остальные, если они не заблокированы (иконка с замочком), чтобы суммарно оставлять требуемое количество полигонов.- Галочка включает сжатие полигонов для меша, выключите ее для мешей, которые не должны сжиматься (спойлер - вы не хотите ужимать голову)
- Ползунок показывает на сколько процентов будет сжат меш. С галочкой
Enable auto adjustперемещение ползунка в одну сторону будет двигать остальные ползунки в другую - Числа через дефис - количество треугольников после сжатия/до сжатия
- Иконка замкочка блокирует изменение ползунка для данного меша
- Иконка шестеренки открывает детальные настройки для сжатия меша
- В компоненте с включенной галочкой
Enable NDMF Previewсжатие мешей происходит "в прямом эфире" и сразу видно результат, но это грузит комп, поэтому при необходимости галочку включайте только для проверки настроек
warningНа версии v3.0.0 Meshia Mesh Avatar Simplifier знает про удаленные с помощью Modular Avatar полигоны, но НЕ ЗНАЕТ про полигоны, удаленные другими компонентами. Поэтому на данном этапе нужно посмотреть сколько полигонов удаляется с аватара после сборки и прибавить разницу в полигонах к 70000 в
Target Triangle Count.
После сжатия количество реально получившихся полигонов может плавать, поэтому данный параметр может меняться в процессе работы - Крайне не рекомендуется сжимать голову, все артефакты сжатия будут видны на лицевых анимациях, поэтому с
Bodyможно сразу галочку, чтобы меш не сжимался (сжимайте полигоны на голове с крайней осторожностью) - Для тела могут наблюдаться артефакты в виде кривых ногтей, несовпадении с прилегающей одеждой на оставшихся полигонах и прочие заметные вещи, поэтому сжатие тела можно попробовать выключить либо с осторожностью настроить более детально - нажмите шестеренку справа от кол-ва полигонов и поиграйтесь как минимум с первыми тремя галочками.
Preserve Border Edgesпомогает с острыми углами, например, на ногтяхPreserve Surface Curvatureстарается сохранить гладкость поверхности, но может сделать хуже
- Меши с уже небольшим кол-вом полигонов могут выглядеть плохо после сжатия, поэтому для них можно либо сжимать чуть-чуть, либо не сжимать, потому что сильно много эффекта это не даст.
- После сильного сжатия могут немного съехать текстуры на полигонах в некоторых случаях
- На данном этапе проходите по всем мешам, смотрите на них со всех сторон и меняете ползунки/галочки, запускайте Play Mode в юнити с Gesture Manager и двигайте аватаром, пока не получится приемлемый результат. Тут простой инструкции нет, внешний вид будет сильно зависеть от многих вещей.
- Мелкие детали на мешах, которым становится плохо после сжатия, можно удалить через описанные ранее способы удаления полигонов (особенно на обуви, в которой порой ну слишком много полигонов)
- Цепочки - это зло, на вид небольшие, а занимают очень много треугольников и плохо сжимаются. Если есть возможность удалить цепочки целиком - стоит того.
TODO Чую эту часть гайда надо расписать поподробнее
На момент написания гайда последняя версия пакета - v3.0.0. Судя по предрелизным коммитам на GitHub, в v3.1.0 можно будет указывать кости модели, для которых будет применяться настройка "Preserve Border Edges" (крайне помогает с руками).
В гайде есть пример сжатия аватара на 180к треугольников до 70к.
Возможные проблемы
Если при загрузке возникает ошибка Meshia Mesh Simplification, полигоны не сжимаются, а в объекте Meshia Cascading Avatar Mesh Simplifier есть выделенные красным меши - после добавления компонента вы удаляли из аватара меши, нажмите Remove Invalid Entries чтобы их убрать. Если меши добавляли, автоматом появятся в списке.