Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Создание моделей для оптимальной производительности

Вот несколько советов по созданию моделей для оптимальной производительности. Некоторые из этих советов применимы ко всем моделям, а некоторые — только к анимированным моделям:

Использование этих методов может помочь улучшить анимацию и рендерингпроцесс вывода графики на экран (или текстуру рендеринга). ). По умолчанию основная камера в Unity отображает изображение на экране. Подробнее
См. в Словарь
скорость ваших моделей, но помните что они также могут снизить визуальную точность и реалистичность эффектов, которых вы пытаетесь достичь. Не существует единого решения для каждой ситуации, которое могло бы обеспечить идеальный баланс между лучшей производительностью и визуальным реализмом. Вы должны найти идеальный баланс в зависимости от сложности ваших персонажей и вашей сценыСцена содержит окружение и меню вашей игры. . Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
Посмотрите в Словарь
, сравнив общий внешний вид и реалистичность, которые вам нужны.

Минимизировать количество полигонов

Количество полигонов, которое следует использовать, зависит от требуемого визуального качества и платформы, на которую вы ориентируетесь. Эти два конкурирующих факта одинаково верны:

  • Чем меньше полигонов вы используете в своих сетках, тем быстрее работает ваше приложение. Это связано с тем, что каждая вершина, ребро или грань требуют вычислительных ресурсов.
  • Чем больше полигонов вы используете в своих сетках, тем более подробными и органичными будут ваши GameObjectsосновной объект в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
    Смотрите в Словарь
    , потому что меньшие полигоны дают вам больше контроля над формой.

Также подумайте, что еще конкурирует за ресурсы рендеринга. Если у вас много игровых объектов или Terrainпейзаж в вашей сцене. Игровой объект Terrain добавляет в вашу сцену большую плоскую плоскость, и вы можете использовать окно Terrain Inspector для создания подробного ландшафта. Подробнее
Просматривайте в Словарь
объекты на экране одновременно, рассмотрите возможность уменьшения количества полигонов на сетки.

Обратите внимание, что фактическое количество вершин, которое графическое оборудование должно обработать, обычно не совпадает с числом, сообщаемым приложением для моделирования. Приложения для моделирования обычно отображают количество различных угловых точек, составляющих модель (известное как количество геометрических вершин). Однако для графической карты некоторые геометрические вершины должны быть разделены на две или более логических вершин для целей рендеринга: например, вершина должна быть разделена, если она имеет несколько нормалей, координат UV или цветов вершин. Следовательно, количество вершин в Unity обычно выше, чем количество, заданное 3D-приложением.

Используйте как можно меньше материалов

Сохраняйте количество материаловактив, который определяет, как поверхность должны быть визуализированы. Подробнее
См. в Словарь
по каждой модели как можно ниже. Используйте более одного материала для персонажа только в том случае, если вам нужно использовать разные шейдерыПрограмма, работающая на графическом процессоре. Подробнее
см. в Словарь
; например, вы можете использовать специальные шейдеры для глаз модели персонажа.

Использовать сетку с одной оболочкой

Для анимированных моделей персонажей, использующих обработчик Skinned Mesh Renderer, следует использовать только один из этих компонентов для каждого персонажа. Система анимации Unity оптимизирует анимацию, используя отсечение видимости и ограничивающий объемзамкнутую форму, представляющую края и грани коллайдера или триггера. Подробнее
См. в Словарь
. Он активирует эти оптимизации только в том случае, если вы используете один компонент анимации и один Mesh со скинамиОсновной графический примитив Unity. Меши составляют большую часть ваших 3D-миров. Unity поддерживает триангулированные или четырехугольные полигональные сетки. Поверхности Nurbs, Nurms, Subdiv должны быть преобразованы в полигоны. Подробнее
См. в Словарь
Рендерер на модели.

Использование двух скинированных сеток вместо одной может примерно удвоить время рендеринга модели, а использование нескольких сеток редко дает какие-либо практические преимущества.

Используйте как можно меньше костей

В целом, чем меньше костей вы используете, тем выше производительность. Однако иногда вам нужно создать модели персонажей с большим количеством костей: например, когда вы хотите много настраиваемых вложений. Эти дополнительные кости увеличивают размер сборки и могут иметь относительную стоимость обработки для каждой дополнительной кости. Например, 15 дополнительных костей на риге, в котором уже есть 30 костей, требуют от Unity на 50 % больше операций для решения в Универсальном режиме, что может повлиять на время, необходимое для решения.

Обратите внимание, что у вас могут быть дополнительные кости для типов Generic и Humanoid. Когда у вас нет анимаций, воспроизводимых с использованием дополнительных костей, стоимость обработки должна быть незначительной. Эта стоимость еще ниже, если их вложения не существуют или скрыты.

Разделение прямой и обратной кинематики

Когда Unity импортирует анимацию, она объединяет узлы обратной кинематики (IK) Модели в прямую кинематикугеометрию, описывающую положение и ориентация суставов и тел персонажа. Используется инверсной кинематикой для управления движением персонажа.
См. в Словарь
(FK), поэтому Unity не нуждается в IK узлы вообще. Однако если они остаются в модели, то Unity все равно включает их в расчеты, хоть они и не влияют на анимацию. Вы можете удалить избыточные узлы IK в Unity или в приложении для 3D-моделирования. Чтобы упростить удаление узлов IK, сохраняйте отдельные иерархии IK и FK при моделировании.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3