Устранение визуальных артефактов Mesh LOD
Выявление и устранение общих визуальных артефактов в мешах, созданных функцией Mesh LOD.
Когда Unity генерирует LODs, каждый последующий индекс LOD имеет меньше полигонов. Настройки Mesh по умолчанию LOD настроены так, что Unity выбирает определенный LOD, когда сетка имеет соответствующий размер на экране. В большинстве случаев это делает артефакты упрощения сетки незаметными. Рекомендации в этом разделе помогают уменьшить артефакты, когда они становятся проблемой.
Информацию о том, как просматривать сгенерированные LODs и проверять их на предмет артефактов, см. в Вид генерируется LODs. При проверке LODs учитывайте размер, в котором они должны отображаться на экране.
Деформированные или отсутствующие элементы сетки
Симптомы
Автоматически генерируемые меши выглядят искаженными или отображают неправильно расположенные текстуры.
Например, на следующих иллюстрациях показана исходная модель дерева, артефакты после создания LODs и сравнение с LODs, созданным вручную с аналогичным количеством треугольников.
Оригинальная модель:
Следующий крупный план ствола дерева показывает, что, хотя автоматический генератор смог сохранить форму для LOD2, появились некоторые явно видимые проблемы текстурирования. Изображение справа показывает ручно созданный LOD с аналогичным количеством треугольников, который отображает текстуру правильно.
На следующей иллюстрации показана значительная потеря деталей в автоматически генерируемой сетке LOD4. Например, исчезают части листвы. Для сравнения, в ручной сетке LOD с меньшим количеством треугольников имеются части листвы.
Причина
Первоначальная меш имеет области с высокой кривизной или подсетки с разъединенными частями.
Резолюция
Если вы столкнетесь с такими артефактами в режиме воспроизведения, используйте следующие методы, чтобы уменьшить их.
Если все LODs в сцене отображают артефакты, попробуйте уменьшить значение Mesh LOD Threshold.
Если определенная сетка отображает артефакты, попробуйте настроить на объект LOD настройки.
Если качество хорошее для более подробных LODs (например, LOD0 — LOD2), но значительно падает при определенном индексе, используйте настройку Limit LODs, чтобы убедиться, что Unity не генерирует LODs ниже определенного уровня качества.
Если другие подходы не помогают, отключите генерацию Mesh LOD для определенной сетки и используйте вместо этого функцию Group LOD.
Артефакты деформации рендерера Skinned Mesh
Симптомы
Применение смешанных деформаций формы к сетке LOD приводит к неожиданным формам и визуальным артефактам.
Например, следующая модель имеет смешанную деформацию формы, которая включает вершины на краю куба.
На следующей иллюстрации показан меш LOD1, созданный из исходного меша. Форма идентична исходной, но вершины в середине ребра нет. В исходном недеформированном состоянии (слева) это не вызывает проблем. Когда Unity применяет деформацию, на форме появляется нежелательный артефакт, потому что деформация зависит от отсутствующей вершины.
Причина
Автоматический генератор LOD анализирует статический недеформированный меш. Он может удалить вершины, несущественные в недеформированном состоянии, но отсутствие которых вызывает артефакты при деформации в Unity.
Резолюция
Если при применении деформации к мешам возникают артефакты, используйте следующие методы для их устранения:
Если качество хорошее для более подробных LODs (например, LOD0 — LOD2), но значительно падает при определенном индексе, используйте настройку Limit LODs, чтобы убедиться, что Unity не генерирует LODs ниже определенного уровня качества.
Если другие подходы не помогают, отключите генерацию Mesh LOD для определенной сетки и используйте вместо этого функцию Group LOD.
Артефакты освещения из-за неправильных нормальных
Симптомы
Реакция на освещение на поверхности сетки LOD не соответствует геометрии.
Причина
Генератор LOD не пересчитывает нормы при упрощении мешей. Например, на следующем изображении слева показана визуализация норм вершин в исходной меше. На изображении справа показаны нормы в меше LOD2, созданной с помощью Mesh LOD. Верхняя поверхность имеет неправильные нормы и не реагирует на освещение, как ожидалось.
Резолюция
Если вы столкнетесь с такими артефактами в режиме воспроизведения, используйте следующие методы, чтобы уменьшить их.
Если все LODs в сцене отображают артефакты, попробуйте уменьшить значение Mesh LOD Threshold.
Если определенная сетка отображает артефакты, попробуйте настроить на объект LOD настройки.
Если качество хорошее для более подробных LODs (например, LOD0 — LOD2), но значительно падает при определенном индексе, используйте настройку Limit LODs, чтобы убедиться, что Unity не генерирует LODs ниже определенного уровня качества.
Если другие подходы не помогают, отключите генерацию Mesh LOD для определенной сетки и используйте вместо этого функцию Group LOD.