Перейти к основному содержимому

Сжатие количества полигонов с помощью Meshia Mesh Simplifier

Описание

Meshia позволяет недеструктивно сжимать меши по полигонам, при этом компонент старается автоматически поддерживать заданный уровень полигонов. Итоговое качество сильно зависит от детальности мешей, а при настройке нет универсального рецепта, каждый меш оптимизируется индивидуально. Если вам очень нужно ужаться в 70 тысяч полигонов - данный пункт гайда может быть самым длительным. Лучший результат можно получить на довольно плоских одеждах

Инструкция по сжатию

  1. Предварительно удалите/выключите через задание тега Editor only в инспекторе все меши, которые не будут использоваться на аватаре
  2. Удалите все скрытые под одеждой полигоны с помощью ранее описываемых компонентов
  3. Нажмите ПКМ по аватару - Meshia Mesh Simplification - Meshia Cascading Avatar Mesh Simplifier. В аватар будет добавлен одноименный GameObject.
    1. Target Triange Count - количество треугольников, до которых будет сжат аватар
    2. Enable Auto Adjust - при изменении одного ползунка плавно меняет остальные, если они не заблокированы (иконка с замочком), чтобы суммарно оставлять требуемое количество полигонов.
    3. Галочка включает сжатие полигонов для меша, выключите ее для мешей, которые не должны сжиматься (спойлер - вы не хотите ужимать голову)
    4. Ползунок показывает на сколько процентов будет сжат меш. С галочкой Enable auto adjust перемещение ползунка в одну сторону будет двигать остальные ползунки в другую
    5. Числа через дефис - количество треугольников после сжатия/до сжатия
    6. Иконка замкочка блокирует изменение ползунка для данного меша
    7. Иконка шестеренки открывает детальные настройки для сжатия меша
    8. В компоненте с включенной галочкой Enable NDMF Preview сжатие мешей происходит "в прямом эфире" и сразу видно результат, но это грузит комп, поэтому при необходимости галочку включайте только для проверки настроек alt text
    warning

    На версии v3.0.0 Meshia Mesh Avatar Simplifier знает про удаленные с помощью Modular Avatar полигоны, но НЕ ЗНАЕТ про полигоны, удаленные другими компонентами. Поэтому на данном этапе нужно посмотреть сколько полигонов удаляется с аватара после сборки и прибавить разницу в полигонах к 70000 в Target Triangle Count.
    После сжатия количество реально получившихся полигонов может плавать, поэтому данный параметр может меняться в процессе работы

  4. Крайне не рекомендуется сжимать голову, все артефакты сжатия будут видны на лицевых анимациях, поэтому с Body можно сразу галочку, чтобы меш не сжимался (сжимайте полигоны на голове с крайней осторожностью)
  5. Для тела могут наблюдаться артефакты в виде кривых ногтей, несовпадении с прилегающей одеждой на оставшихся полигонах и прочие заметные вещи, поэтому сжатие тела можно попробовать выключить либо с осторожностью настроить более детально - нажмите шестеренку справа от кол-ва полигонов и поиграйтесь как минимум с первыми тремя галочками.
    1. Preserve Border Edges помогает с острыми углами, например, на ногтях
    2. Preserve Surface Curvature старается сохранить гладкость поверхности, но может сделать хуже alt text
  6. Меши с уже небольшим кол-вом полигонов могут выглядеть плохо после сжатия, поэтому для них можно либо сжимать чуть-чуть, либо не сжимать, потому что сильно много эффекта это не даст.
  7. После сильного сжатия могут немного съехать текстуры на полигонах в некоторых случаях
  8. На данном этапе проходите по всем мешам, смотрите на них со всех сторон и меняете ползунки/галочки, запускайте Play Mode в юнити с Gesture Manager и двигайте аватаром, пока не получится приемлемый результат. Тут простой инструкции нет, внешний вид будет сильно зависеть от многих вещей.
  9. Мелкие детали на мешах, которым становится плохо после сжатия, можно удалить через описанные ранее способы удаления полигонов (особенно на обуви, в которой порой ну слишком много полигонов)
  10. Цепочки - это зло, на вид небольшие, а занимают очень много треугольников и плохо сжимаются. Если есть возможность удалить цепочки целиком - стоит того.

TODO Чую эту часть гайда надо расписать поподробнее

к сведению

На момент написания гайда последняя версия пакета - v3.0.0. Судя по предрелизным коммитам на GitHub, в v3.1.0 можно будет указывать кости модели, для которых будет применяться настройка "Preserve Border Edges" (крайне помогает с руками).

В гайде есть пример сжатия аватара на 180к треугольников до 70к.

Возможные проблемы

Если при загрузке возникает ошибка Meshia Mesh Simplification, полигоны не сжимаются, а в объекте Meshia Cascading Avatar Mesh Simplifier есть выделенные красным меши - после добавления компонента вы удаляли из аватара меши, нажмите Remove Invalid Entries чтобы их убрать. Если меши добавляли, автоматом появятся в списке.