Термин из глоссария

Уровень детализации (LOD)

Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.

Что такое уровень детализации (LOD)?

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

Игры, VR впечатления и другие приложения в реальном времени 3D используют LOD для поддержания стабильной частоты кадров в сценах с тысячами объектов.

Как работает уровень детализации?

Уровень детализации работает путем подготовки нескольких версий одного и того же объекта, каждая из которых имеет меньшую детализацию, чем предыдущая, и выбора соответствующей версии в зависимости от того, насколько большим объект выглядит на экране. Unity и большинство других движков нумеруют эти версии как LOD0, LOD1, LOD2 и так далее, при этом LOD0 является наиболее детализированным.

Количество треугольников обычно уменьшается с каждым уровнем LOD.

Уровень LOD
LOD0100
Треугольники (доли LOD0)
%
Обычно показывается, когда
Объект близко и занимает большую часть экрана
Треугольники (доли LOD0)
Обычно показывается, когда
Треугольники (доли LOD0)
Обычно показывается, когда
Треугольники (доли LOD0)
Обычно показывается, когда
Удалено0
Треугольники (доли LOD0)
%
Обычно показывается, когда
Объект слишком мал, чтобы иметь значение, поэтому он не рисуется

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

Какие бывают уровни детализации?

Уровень детализации проявляется в нескольких формах, и многие проекты сочетают эти методы:

  • Дискретный LOD: Двигатель переключается между фиксированным набором заранее созданных мешей с разным уровнем детализации. Это распространенный подход в играх.
  • Непрерывный LOD: Меш упрощается или уточняется постепенно по мере изменения его размера в экранном пространстве, а не переключается на фиксированных уровнях LOD.
  • Иерархический LOD (HLOD): Группы удаленных объектов объединяются в упрощенное представление, что снижает количество вызовов отрисовки и геометрическую сложность.
  • Текстурный LOD (мипмаппинг): GPU сэмплирует прогрессивно уменьшающиеся, предварительно отфильтрованные версии текстуры по мере того, как поверхности становятся дальше или занимают меньше места на экране.
  • Билборды и самозванцы: Удаленная 3D-модель заменяется упрощенным представлением, часто плоским изображением, обращенным к камере.

Уровень детализации и Unity

Unity предоставляет несколько способов реализации уровня детализации, включая Mesh LOD и компонент LOD Group. Mesh LOD может генерировать LOD во время импорта ассетов и предназначен для уменьшения геометрии и обработки вершин GPU с минимальным дополнительным использованием памяти. Группа LOD позволяет настраивать отдельные уровни LOD и переключаться между ними в зависимости от размера экрана.

В чем разница между LOD и отсечением?

Уровень детализации и отсечение оба уменьшают объем рендеринга, но они действуют на объекты по-разному:

Техника
Уровень детализации (LOD)
Что это делает
Отрисовывает более простую версию видимого объекта
Когда это помогает
Объекты, которые находятся далеко или малы на экране
Что это делает
Пропускает объекты, находящиеся вне поля зрения камеры
Когда это помогает
Объекты позади или сбоку от камеры
Отсечение невидимых объектов
Что это делает
Пропускает объекты, скрытые за другими объектами
Когда это помогает
Объекты, заблокированные стенами, зданиями или ландшафтом

Большинство проектов в реальном времени могут использовать все три вместе. Отсечение удаляет объекты, которые не нужно отображать, в то время как LOD упрощает объекты, которые остаются видимыми.

Каковы преимущества использования уровня детализации?

  • Более высокая частота кадров: Рендеринг меньшего количества треугольников для удаленных объектов снижает нагрузку на GPU, что может помочь проекту поддерживать целевую частоту кадров.
  • Более крупные, плотные сцены: Открытые миры, леса и городские пейзажи могут отображать гораздо больше объектов одновременно.
  • Масштабируемая производительность: LOD может помочь одному и тому же контенту масштабироваться на платформах с различными возможностями производительности, включая мобильные устройства и автономные VR-гарнитуры.

Каковы проблемы использования уровня детализации?

  • Видимое всплывание: Резкий переход между уровнями может быть заметен, если переходы не скомбинированы (cross-faded) или пороги не настроены.
  • Дополнительная память и хранилище: Каждая дополнительная сетка LOD может добавить данные сетки, увеличивая использование памяти и потенциально размер сборки.
  • Время создания: Ручные уровни требуют времени художника, а автоматически сгенерированные уровни все еще нуждаются в проверке на визуальные артефакты.

Часто задаваемые вопросы (FAQ)

Сколько уровней LOD должен иметь модель?

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

Применяется ли уровень детализации к текстурам, а также к сеткам?

Да. Мипмаппинг — это техника детализации текстур на основе уровней, при которой графический процессор сэмплирует меньшие, предварительно отфильтрованные копии текстуры, когда поверхности кажутся более удаленными или занимают меньше места на экране. Это может снизить пропускную способность памяти текстур и визуальные артефакты, такие как мерцание. Меш LOD также может использовать разные материалы или шейдеры на более низких уровнях, в зависимости от того, как были созданы LOD.

Связанные термины

3D моделирование

3D моделирование — это процесс создания трехмерных цифровых объектов для игр и интерактивных медиа.

3D рендеринг

3D рендеринг - это процесс генерации 2D изображений из данных 3D сцены с использованием алгоритмов освещения, текстурирования и свойств материалов, при этом балансируя визуальную достоверность и требования к производительности для приложений в реальном времени.

Шутер от первого лица

Кадры-в-Секунду (FPS) указывает, сколько изображений отображается каждую секунду, при этом более высокие значения (в идеале 60-120 для VR-приложений) обеспечивают более плавное движение и снижают риск симуляционной болезни в погружающих опытах.