Введение к уровню детализации
Уровень детализации (LOD) — это метод, который повышает производительность за счет уменьшения нагрузки на отображение.
Без решения LOD, Unity отображает объект с одинаковой сложностью, независимо от размера объекта на экране. Например, в одном кадре модель 3D здания может занимать всю игровую панель. Затем игрок отходит от здания, и оно может быть всего лишь несколько пикселей высоко на экране, но Unity должен отображать ту же сетку.
При решении LOD, когда GameObject становится меньше на экране, Unity может уменьшить нагрузку на рендеринг, используя один или комбинацию следующих подходов:
Уменьшить количество многоугольников для рендеринга.
Снижение сложности или количества материалов для рендеринга.
Уменьшить количество компонентов Рендерер сетки.
Unity относится к объектам, представляющим уровни детализации с помощью индексов, где LOD с индексом 0 (LOD0) представляет наиболее подробный LOD, а LODs с более высокими индексами имеют постепенно меньшее количество детализации (LOD1, LOD2 и так далее).
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 и смешивает их вместе.
Более подробную информацию см. по адресу:
Дополнительные ресурсы