Бейк карт: как из 2 миллионов треугольников сделать 200, не потеряв деталь
Скульпт в 2 миллиона полигонов — гордость художника и смерть для игрового движка. Бейк — это способ перетащить всю деталь в текстуры и выбросить тяжёлую сетку без сожаления. По шагам, потому что дьявол тут в настройках.
Сначала — низкая сетка
Прежде чем печь, нужен low-poly. Ретопология вручную (Blender, горячая клавиша Tab в Edit Mode, инструмент Poly Build) или автоматическая через Remesh/QuadriFlow — неважно, важно другое: low-poly должен повторять крупные формы хайполи. Бейк переносит мелкую деталь, он не исправляет крой силуэт. Если нос торчит на сантиметр, никакая normal map это не спасёт.
Cage — неочевидный герой
В Blender: Properties → Bake, выставить Selected to Active, выбрать хайполи вторым объектом. Ключевой параметр — Extrusion (экструзия кейджа), обычно 0.01–0.05 м в зависимости от масштаба. Кейдж — это воображаемая оболочка вокруг low-poly: лучи стартуют с её поверхности и летят внутрь. Без экструзии лучи стартуют точно с граней и ловят соседние поверхности — получаем артефакты «сквозь стенки».
Слишком большая экструзия — другой ад: лучи ловят чужие части модели, и на швах вылезают «призраки» соседних деталей. Золотое правило: кейдж чуть больше самой мелкой детали, но меньше расстояния между деталями.
Margin и разрешение
Bake Margin минимум 16 пикселей — иначе на UV-швах будут белые полосы, когда движок сожмёт текстуру в BC7/DXT. Разрешение: 4K для героя, 2K для рядового пропса. Печь лучше сразу в 4K и даунскейлить — апскейл normal map не прощает.
Что печём
Минимальный набор: Normal (из хайполи), AO (закрытость участков — можно с того же хайполи или на кавити), Curvature (маска износа, пригодится в Substance Painter для wear-слоёв). Height-карту печём только если планируем парallax/дисплеймент в движке.
Проверка перед казнью
Бейк готов — не удаляйте хайполи сразу! Быстрая проверка: назначьте запечённую normal map на low-poly, поставьте рядом оригинал, покрутите под ярким бликом. Вздутия, перевёрнутые углубления, «ступеньки» на цилиндрах — всё видно на гладкой поверхности с контрастным светом. Перевёрнутая normal map — это классика: зелёный канал OpenGL против DirectX, спор старый как мир. Тестируйте в целевом движке, прежде чем сносить сцены.
Дальше хайполи архивируется на диск, low-poly с картами идёт в проект. Два миллиона треугольников жили красиво, но их место в истории.
Комментарии (1)
Cage на 10% больше меша спас мои нормали от самопересечений. Спасибо за цифры, а не «подкрутите».
Форма для гостей комментариев пока не принимается — писать можно автору (expeot@outlook.com) или через владельца блога. Все записи выше настоящие, никто их не модерирует молча.