Карты нормалей для гейм моделлеров

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

Автор предполагает, что читатель имеет базовые знания UV, и понимает, что такое карты нормалей.

Теория. Введение. Сглаженные и несглаженные касательные (tangents)

Карты нормалей запекают по-разному, в зависимости от степени сглаженности объекта.

Цель визуализации состоит в компенсации сглаживания, которая максимально приблизит внешний вид низкополигональной модели к виду её высокополигонального собрата.

Normalmaps for the Technical Game Modeler

Теория. Сглаженные касательные. Ошибки сглаживания

Сглаживание на поверхностях с резкими углами (прямые и острые углы), как правило, даёт неудовлетворительный результат и вызывает ошибки сглаживания.

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

Карты нормалей для гейм моделлеров

Теоретически, эта проблема решается добавлением геометрии по краям модели — это делает их более гладкими и даёт более точные результаты сглаживания при визуализации в режиме реального времени.

Normal maps для гейм моделлеров

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

При этом не сильно страдает производительность (при разбиении объектов на группы сглаживания технически тоже создаётся дополнительная геометрия), но приходится работать с несколько большим количеством полигонов, усложняется развёртка и т.п.

Теория. Несглаженные касательные. Проблемы на рёбрах

С несглаженными касательные проблем со сглаживанием не возникает. Потому что сглаживания нет :)

Но давайте посмотрим на простой куб с несглаженными касательными. Снова проблема:

Normal map для гейм моделлеров

Причиной возникновения проблемы является разная направленность векторов в каждой точке карты нормалей (см. рисунок).

Карта нормалей для гейм моделлеров

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

Соответственно, эта проблема наблюдается на линии швов, а это значит, что проблему можно полностью решить с помощью специально подготовленных UV.

Normalmap для гейм моделлеров

Применение. Получение чистого результата при помощи гибридных карт

Запекание — гибрид сглаженных и несглаженных касательных, использующих вертексные нормали (xNormal, Maya) / группы сглаживания (3ds max)

  1. UV границы желательно преобразовывать в жёсткие рёбра — это существенно снижает ошибки сглаживания (без проблем со швами).
  2. Для того чтобы уменьшить количество ошибок сглаживания, можно разделить UV и ввести более жёсткие ребра или добавить дополнительную геометрию.
  3. Обязательно экспериментируйте с пакетом, который вы используете для запекания для того, чтобы знать его возможности. К примеру, xNormal запекает значительно меньше ошибок, чем 3ds max.

Normal maps для гейм моделлеров

Экспорт окончательной модели — совместимость с различными движками.

  • Не все движки поддерживают вертексные нормали и/или группы сглаживания.
  • После запекания, для лучшего результата экспорта игровых материалов, лучше вручную указать группы сглаживания и применить общее сглаживание ко всей модели.
  • Таким образом, вы получите оптимальный шейдинг запечённой модели, и применённая карта нормалей будет иметь высочайшее качество, вне зависимости от движка.
Поделиться в: Опубликовать в twitter Опубликовать в своем блоге livejournal.com