Unity 6.3
0 онлайн 72 гостей 3 в системе
Вход
Физика Шаг 86 из 99

Настройка параметров приготовления компонента Mesh Collider для оптимизации

Оптимизация физических расчетов путем настройки параметров приготовления для компонентов Mesh Collider.

Когда вы выбираете GameObject с компонентом Mesh Collider в Редакторе, вы можете изменить свойство Варианты приготовления пищи в окне Inspector. Установите это свойство, чтобы определить, как эта сетка будет обрабатываться для физических расчетов. Параметры приготовления влияют как на время приготовления, так и на производительность во время выполнения. Вы можете выбрать более одного из доступных параметров, чтобы объединить их.

Когда вы устанавливаете свойство Варианты приготовления пищи для компонента, вы определяете, как готовить эту конкретную меш. Чтобы узнать больше о том, как устанавливать параметры для готовки мешей для всей симуляции, см. Подготовка мешей для коллайдеров.

Чтобы узнать, какие свойства доступны для компонента Mesh Collider, см. Справочная информация о компонентах сетчатого коллайдера.

Варианты приготовления:

  • Нет: Отключает все Варианты Приготовления и обеспечивает стандартное поведение приготовления. Нет отключен по умолчанию. Когда приготовление происходит во время выполнения, например для процедурно генерируемой сетки, которая не была предварительно приготовлена, использование Нет устанавливает самый базовый процесс приготовления.
  • Все: Включает все Варианты приготовления пищи. Это включено по умолчанию.
  • Кук для более быстрого моделирования: Выполняет дополнительную обработку во время приготовления, чтобы оптимизировать меш для более быстрого обнаружения столкновений во время выполнения. Когда приготовление происходит во время выполнения, разрешение этого может значительно увеличить первоначальное время приготовления (a CPU Этот способ позволяет уменьшить количество пиков, но зачастую приводит к улучшению производительности во время самого моделирования физики, особенно для сложных мешей, которые часто участвуют в столкновениях. Это компромисс: больше времени на загрузку и настройку для более плавного геймплея.
  • Enable Mesh Cleaning: Устраняет несовершенства в геометрии меши, такие как крошечные треугольники или почти совпадающие вершины. Включение Enable Mesh Cleaning увеличивает время приготовления во время выполнения. Однако более чистая меш может привести к более стабильному и надежному обнаружению столкновений во время выполнения, потенциально предотвращая физические сбои или неожиданное поведение, которые в противном случае потребовали бы больше циклов CPU для разрешения. Эта опция полезна для мешей, которые были созданы или импортированы с дефектами.
  • Сварные вершины: Подобно Включить очистку сетки, Сварные вершины объединяют вершины, которые находятся очень близко друг к другу. В то время как включение Сварных вершин увеличивает время приготовления во время выполнения, оно может повысить производительность во время выполнения, упрощая сетку и уменьшая количество вершин, которые система физики должна обрабатывать для проверки столкновений.
  • Использовать быструю среднюю фазу: Используется более быстрый, но потенциально менее точный алгоритм средней фазы для обнаружения столкновений. Включение этого алгоритма может повысить производительность для некоторых типов мешей, ускорив процесс запроса столкновений. Однако это может незначительно снизить точность обнаружения столкновений, что может повлиять на очень чувствительные физические взаимодействия.

Рекомендуемые наилучшие методы настройки параметров приготовления Mesh Collider:

  • Всегда используйте относительно низкополярные, закрытые (водонепроницаемые) и чистые меши без вырожденных треугольников или перекрывающихся вершин для компонентов Mesh Collider. Этот подход сокращает время приготовления и повышает производительность во время работы.
  • Используйте Unity Profiler, чтобы определить, происходит ли неожиданное приготовление сетки во время выполнения.

Рекомендуемые советы по производительности для использования компонентов Mesh Collider в целом:

  • Всегда предпочитайте примитивные коллайдеры (сфера, капсула, коробка) для динамических (движущихся) или часто обновляемых объектов.
  • Невыпуклые компоненты Mesh Collider применяйте только для статической геометрии окружения, где важна высокая точность столкновений.
  • Для динамических объектов, требующих сложных форм, предпочтительные выпуклые Mesh Collider компоненты или сложные коллайдеры по сравнению с невыпуклыми.
  • Минимизировать сложность мешей, используемых для Mesh Collider компонентов.

Для оценки производительности Mesh Collider:

  • Профиль: Используйте Unity Profiler. Сфокусируйтесь на узкой фазовой обработке и физических решениях, когда объект с Mesh Collider активно сталкивается. Высокие значения могут указывать на Mesh Collider, которая ресурсоемка. Кроме того, следите за пиками приготовления меши во время выполнения, если меши не предварительно приготовлены.

  • A/B тестирование: Сравните производительность. Создайте тестовый сценарий с помощью GameObject которая имеет Сеть Collider Затем создайте версию того же файла, GameObject который имеет комплексный коллайдер Испытать оба типа в идентичных условиях столкновения и сравнить их Profiler данные.

  • Рассмотрите альтернативы: Если Mesh Collider влияет на производительность, рассмотрите альтернативы:

  • Отделите графическое представление меши от ее физического представления, чтобы упростить ее меш. Вы можете использовать различные GameObjects, чтобы физическая система могла использовать отдельную, упрощенную меш. Для более подробной информации см. Подготовка мешей для коллайдеров.

  • Если у вас есть динамические объекты, рассмотрите возможность использования сложного коллайдера для достижения точности столкновений.

  • Помните, что для динамических компонентов Rigidbody и Mesh Collider они должны быть выпуклыми. Если требуется вогнутое динамическое столкновение, стандартным подходом являются сложные коллайдеры.

Дополнительные ресурсы