Коротко
- Nanite — система виртуализированной геометрии, которая обрабатывает видимые детали с учётом ракурса камеры.
- При импорте нового меша можно отметить параметр Build Nanite.
- Для существующих мешей Nanite можно включить сразу для нескольких ассетов через Content Browser или по одному в редакторе ассетов.
- Fallback mesh важен для некоторых функций движка и платформ, где Nanite недоступен или не подходит.
Чему вы научитесь в этом руководстве?
Nanite — система виртуализированной геометрии в Unreal Engine, предназначенная для работы с высокой детализацией геометрии и большим количеством объектов в сценах. Она разбивает данные меша на иерархические кластеры треугольников, использует подходящие уровни детализации в зависимости от ракурса камеры и подгружает необходимые данные в память по мере надобности. Благодаря этому уменьшается необходимость вручную создавать традиционные LOD для каждого меша.
В руководстве разобраны подготовка меша для Nanite, включение поддержки для уже имеющихся в проекте ассетов и проверка результата. Nanite не гарантирует, что любая задача автоматически будет решена без проблем: геометрию, сложность материалов, количество экземпляров, разрешение вывода и оборудование нужно оценивать в совокупности. Поэтому в заключительной части также рассмотрены fallback mesh, размер данных и важные моменты производственного процесса.
Требования
Согласно официальной документации Epic Games, для работы необходим проект Unreal Engine и геометрия, поддерживаемая Nanite. В источниках не указаны требования к конкретной версии движка, платной лицензии или аккаунту, поэтому здесь такие условия не предполагаются. Меши можно подготовить для Nanite во время импорта; поддержку также можно включить для уже существующих ассетов Static Mesh.
Nanite работает с треугольными мешами. В руководстве отмечается, что особенно хорошо подходят ассеты с большим количеством треугольников или экземпляров в сцене, содержащие очень мелкие треугольники на экране либо перекрывающие другую геометрию Nanite. Высокодетализированные цифровые скульптуры и фотограмметрические сканы также приводятся в качестве источников, которые можно использовать напрямую. Однако сочетание контента и оборудования следует отдельно проверять в каждом проекте.
Поскольку Nanite подгружает данные меша с диска по мере необходимости, Epic рекомендует использовать SSD для хранения данных, к которым обращаются во время работы. Само по себе это не гарантирует производительность: контент проекта и оборудование нужно тестировать вместе.
Включение Nanite: пошаговая инструкция
Выберите подходящий меш. Для начала отдайте предпочтение ассетам с плотной геометрией или большим количеством экземпляров в сцене. В качестве менее очевидного кандидата в источнике приводится сфера неба: у неё мало экземпляров, на экране она образует крупные треугольники и не перекрывает другую геометрию. Тем не менее решение о том, какие ассеты будут использовать Nanite, следует принимать с учётом особенностей проекта.
Включите поддержку при импорте нового меша. В настройках импорта отметьте флажок Build Nanite. Преобразование для Nanite занимает время для каждого меша, поэтому в проектах с большим количеством ассетов учитывайте длительность подготовки. Если в проекте заранее рассчитанное освещение Lightmass не используется, Epic рекомендует отключить параметр Generate Lightmap UVs. Согласно руководству, этот параметр может создавать дополнительные UV-каналы и данные для плотных мешей; если baked lighting не требуется, эти затраты могут быть лишними.
Включите Nanite сразу для нескольких существующих ассетов. В Content Browser выберите нужные ассеты Static Mesh или Skeletal Mesh. Щёлкните по выделению правой кнопкой мыши и выберите в меню Nanite > Enable. Преобразование нескольких ассетов может занять время, поэтому включите эту операцию в производственный график.
Включите поддержку для одного меша в редакторе ассетов. Откройте меш в отдельном редакторе. Найдите раздел Nanite Settings в панели Details редактора Static Mesh Editor или Skeletal Mesh Editor и отметьте Enable Nanite Support. Для Geometry Collections в разделе Nanite редактора есть параметр Enable Nanite. Эти параметры следует рассматривать только для соответствующих типов ассетов и поддерживаемых сценариев использования.
Сравните отображение Nanite и fallback. В редакторе меша переключайтесь между полнотекстурированным мешем Nanite и fallback mesh с помощью режима просмотра Nanite Fallback; согласно руководству, сочетание Ctrl + N также переключает эти два режима. Режим Nanite Triangles поможет проверить количество треугольников в fallback-геометрии. Сравнивайте результат не только крупным планом, но и в условиях сцены, где будет использоваться ассет.
При необходимости скорректируйте настройки. Параметры Keep Triangle Percent и Trim Relative Error в разделе Nanite Settings позволяют уменьшить объём сохраняемых данных о деталях меша. Epic описывает эти настройки прежде всего как способ уменьшить размер на диске или загрузки; не следует воспринимать их как прямой способ повысить производительность. Для мешей foliage рекомендуется включить Preserve Area; в том же источнике говорится, что эту настройку не следует использовать для других типов геометрии. Explicit Tangents можно выбрать, если неявное вычисление tangent недостаточно точное; включение увеличивает объём данных для хранения примерно на 10 процентов.
Частые ошибки и ограничения
Не следует считать, что после включения Nanite все функции движка будут использовать полнотекстурированный меш Nanite. Fallback mesh может применяться, когда Nanite недоступен, требуется сложная коллизия, а также для baked lighting и отражений с аппаратной трассировкой лучей в Lumen. Fallback также важен для платформ без поддержки Nanite. Поэтому эту геометрию нужно отдельно проверять в соответствующих сценах и на целевых платформах.
UV-данные не всегда являются обычными координатами текстуры. В руководстве рекомендуется по возможности оставлять включённым параметр Lerp UVs, если UV представляют собой нормальные координаты, которые можно интерполировать между поверхностями. Если в UV-каналах находятся данные вроде индексов, для которых интерполяция не имеет смысла, включённая настройка может исказить результат шейдера; проверьте назначение таких данных.
Деформация с помощью World Position Offset поддерживается, но с ограничениями. Для мешей Nanite не поддерживаются деформации Morph Targets. Кроме того, на производительность могут влиять высокая плотность геометрии, сложность материалов, количество экземпляров в сцене и разрешение вывода. В руководстве указан верхний предел в 16 миллионов экземпляров Nanite в сцене; ограничение касается не только ассетов, для которых включён Nanite, но и всех экземпляров, подгруженных в сцену потоком.
Что меняется в архитектурном и визуализационном процессе?
Архитектурные бюро и команды archviz, работающие с высокодетализированными элементами фасадов, скульптурными деталями интерьера и сканированными объектами окружения, могут выиграть за счёт сокращения необходимости вручную создавать LOD для каждого меша. Nanite управляет видимыми деталями в зависимости от ракурса камеры; при этом финальное изображение нужно тестировать на выбранных ассетах и оборудовании. Особенно важно проверять производительность и потоковую подгрузку в сценах с большим количеством экземпляров.
В проектах, использующих lightmap, нужно учитывать fallback mesh и создание UV. Поскольку в некоторых операциях используется не полнотекстурированная геометрия Nanite, проверки результата только в основном режиме просмотра может быть недостаточно. Оборудование рабочих станций следует оценивать с учётом носителей данных, масштаба сцены и используемых функций движка. Сокращение данных Nanite предназначено для уменьшения размера на диске; при выборе баланса между качеством и объёмом данных проверяйте и режим fallback.
Следующие шаги
Для начала проведите тест на нескольких показательных мешах. Сравните время импорта, режимы Nanite и fallback, производительность в сцене и размер файлов. Затем настройте параметры в соответствии с требованиями проекта и примените их к остальным ассетам. Поскольку поддерживаемые функции и ограничения Nanite могут различаться в зависимости от рабочего процесса в движке, перед принятием решения для конкретного сценария проверьте соответствующие разделы официальной документации.
Источники и лицензия
Использованы руководства Epic Games Unreal Engine Nanite Virtualized Geometry, Nanite in Unreal Engine и Nanite Technical Details. В предоставленном списке источники отмечены как лицензия=свободная; материал отредактирован и адаптирован на турецком языке.
Источники
Источников: 3Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.
Для архитектурных бюро и команд визуализации в Турции наиболее заметное преимущество Nanite — возможность сократить необходимость вручную создавать LOD для ассетов с плотной геометрией. Командам, работающим со сканированными или высокодетализированными мешами, стоит сначала проверить рабочий процесс на небольшой группе ассетов и только затем переходить к производству.
Однако Nanite — не решение проблем с производительностью, которое работает независимо от оборудования и настроек проекта. Рекомендацию использовать SSD, время импорта, fallback mesh и требования к baked lighting нужно включить в план тестирования. Сокращение данных влияет прежде всего на размер файлов на диске; качество изображения и требования к хранению следует проверять вместе.
Частые вопросы
Как включить Nanite в Unreal Engine?
При импорте нового меша можно отметить параметр Build Nanite. Для существующих ассетов поддержку можно включить сразу для нескольких объектов через Content Browser или по одному в разделе Nanite Settings редактора меша.
Для чего нужен fallback mesh в Nanite?
Он используется в некоторых ситуациях, когда Nanite не поддерживается или не подходит. К таким примерам относятся сложная коллизия, baked lighting, отражения с аппаратной трассировкой лучей в Lumen и платформы без поддержки Nanite.
Уменьшает ли Nanite размер данных?
Параметры Keep Triangle Percent и Trim Relative Error могут уменьшить объём деталей, сохраняемых в меше Nanite. В руководстве Epic этот способ описан прежде всего как средство уменьшения размера на диске или объёма загрузки.



