Unity 6.3
0 онлайн 20 гостей 3 в системе
Вход

Введение к уровню детализации

Уровень детализации (LOD) — это метод, который повышает производительность за счет уменьшения нагрузки на отображение.

Без решения LOD, Unity отображает объект с одинаковой сложностью, независимо от размера объекта на экране. Например, в одном кадре модель 3D здания может занимать всю игровую панель. Затем игрок отходит от здания, и оно может быть всего лишь несколько пикселей высоко на экране, но Unity должен отображать ту же сетку.

При решении LOD, когда GameObject становится меньше на экране, Unity может уменьшить нагрузку на рендеринг, используя один или комбинацию следующих подходов:

  • Уменьшить количество многоугольников для рендеринга.

  • Снижение сложности или количества материалов для рендеринга.

  • Уменьшить количество компонентов Рендерер сетки.

Unity относится к объектам, представляющим уровни детализации с помощью индексов, где LOD с индексом 0 (LOD0) представляет наиболее подробный LOD, а LODs с более высокими индексами имеют постепенно меньшее количество детализации (LOD1, LOD2 и так далее).

Слева: в LOD0 меши имеют большое количество маленьких треугольников. Справа: в LOD1 меши имеют гораздо меньше треугольников, которые гораздо больше по размеру.
Слева: в LOD0 меши имеют большое количество маленьких треугольников. Справа: в LOD1 меши имеют гораздо меньше треугольников, которые гораздо больше по размеру.

LOD особенности в Unity

Unity реализует две различные возможности LOD:

Каждая функция имеет свои преимущества и использует разный формат для объектов LOD. В следующей таблице представлено сравнение ключевых характеристик функций.

Сетка LOD LOD Группа
Эта функция фокусируется на уменьшении количества многоугольников для рисования с минимальным использованием памяти и вычислительной нагрузки. Не оптимизирует материалы или количество вызовов рисования. Гибкое решение с большим запасом памяти и вычислительной нагрузкой. При создании объектов LOD у вас есть следующие варианты оптимизации для каждого LOD:
  • Создание менее подробной сетки.
  • Уменьшение количества материалов или подсеток, что снижает количество вызовов чертежей.
  • Оптимизировать настройки по материалам.
  • Оптимизация параметров Рендерер сетки.
Предоставляет возможность автоматического создания LODs при импорте модели. Требуется ручное создание каждой сетки LOD во внешнем инструменте.
Unity хранит каждую LOD в буфере индекса первоначальной сетки. Каждый LOD — это один компонент Mesh Renderer или набор таких компонентов. Обращаться к каждому LOD и настраивать его можно через интерфейс редактора.
Обеспечивает меньшую нагрузку на память по сравнению с группой LOD. Обеспечивает меньшую нагрузку на рендеринг по сравнению с группой LOD, поскольку Mesh LOD не использует никаких дополнительных GameObjects, компонентов или мешей. Имеет большую площадь памяти и вычислительную нагрузку по сравнению с Mesh LOD.
Предоставляет параметры, которые имплицитно управляют переходами LOD. Позволяет пользователям явно указать размер объекта на экране, при котором происходит переход LOD по индексу LOD.

LOD переходы

По умолчанию, Unity отображает один LOD за раз. Когда Unity переходит от одного LOD к другому, переход заметен и резкий.

Чтобы сделать переходы LOD плавными, включите LOD cross-fading. Unity рендерует как текущий, так и следующий LOD и смешивает их вместе.

Сфера (LOD 1) плавным образом превращается в куб (LOD 2) при увеличении камеры.
Сфера (LOD 1) плавным образом превращается в куб (LOD 2) при увеличении камеры.

Более подробную информацию см. по адресу:

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