Floating geometry: простой пример
Легенды гласят, что когда-то давным давно некто Enkay обещал написать пост про floating geometry и запекание нормалей, но пропал.
Не, серьезно, затянул я что-то :D
Если упрощенно, то запекание представляет перенос информации на нашу лоуполи модель. Кроме рельефа (который можно задать картой нормалей или картой высот) это может быть цвет, например. При этом необходимо указать источник этой информации.
Взгляните на эту плоскость. Сверху кажется, что в ней имеются вырезы, углубления, детали... Но при взгляде сбоку становятся очевидно, что детали выполнены отдельно и просто висят над поверхностью. Собственно, это и есть пример т. н. "floating geometry". Иллюзия выдерживается, если нормали по краям наших "парящих" деталей совпадают с нормалью к поверхности под ней.
Если нормали не будут совпадать, то станут заметны стыки. Сравните две одинаковые детали, но во втором случае нормали по углам не были исправлены:
Поскольку имеются участки без источника, используемое вами ПО может выдавать странные ошибки на этих участках. Во их избежание советую добавить к "парящим" деталям копию нашей плоскости для перекрытия пустых участков. Если кроме флоатеров у вас имеется и хайполи со сглаженными углами и т.п., то данное действие не нужно.
В зависимости от используемого ПО инструмент для запекания может называться по разному, но суть будет одна - мы указываем отступ от модели-приемника, в котором будем искать новую информацию, и дальше даем выполнять алгоритмам их работу.
В нашем случае результат получился без изъянов: справа плоскость с картой нормалей, слева - хайполи. Но на сложных объектах, не все так просто.
Далее:
- [3DS Max] Макрос для быстрого создания фасок с исправленными нормалями.
- Процесс моделирования лоуполи и хайполи в 3DS Max.
- Запекание в Substance Designer пошагово - подводные камни и способ их избежать.
Ну а пока превью того, что получим в итоге:
P.S. Продолжать публиковать здесь, или уместнее размещать материал в Лиге Разработчиков Видеоигр?
CGI Media
3K постов6.5K подписчиков
Правила сообщества
• Посты должны соответствовать тематике cообщества.
• Не допускается спам и нарушение правил сайта pikabu.