Добрый день, дорогие хабражители и хабражительницы.


Продолжаем тему оптимизаций для наших с вами ностальгирующих глазок и переходим к следующему этапу графических улучшений. На этот раз на нашем препаровальном столе окажутся модельки. И оптимизировать мы их будем не в меньшую сторону, а в большую.
Пост рассчитан на тех, кто еще только знакомится с тонкостями работы с 3D-графикой в дизайне и игровой индустрии, и поэтому некоторые понятия специально подаются утрировано для понимания сути процесса. Текст написан на основе личного опыта автора. Профессионалы, скорее всего, и так знают большую часть хитростей и приемов. Но, быть может, какие-то интересные штучки и они найдут для себя.

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

Как мы говорили в прошлый раз, существует некоторое различие в понятиях ремейк и ремастер. Ремастер обычно не затрагивает ядро игры, оставляя основные ее особенности неизменными. Графический ремейк и вовсе содержит лишь улучшение текстур и эффектов, редко — обновление моделей.

Ремейк от ремастера отличается не только более качественными текстурами и эффектами, но и некоторой переработкой моделей и осовремениванием игрового процесса. Далеко не всегда это справедливо, но для удобства будем понимать под ремейком то, что переделано чуть меньше чем полностью.

Нарастить полигоны!


Как я уже говорила в прошлой части, мы помним игры лучше, чем они были на самом деле. Поэтому бывает трудно объяснить новому поколению, что нас так зацепило в мутно-мыльной поделке из нулевых. Иногда хочется и самому освежить память, но перед самим собой и друзьями стыдно запускать то, от чего привыкшие к кинематографичной графике глаза полезут на лоб. А студии нет-нет да и возвращаются к относительно успешным проектам, дабы подзаработать денежек на чем-то проверенном и ностальгическом. Ведь игрок с куда большей вероятностью купит что-то, что хоть как-то относится к его давним воспоминаниям, а возможно даже привлечет к этому внимание более молодого поколения. «Смотри, сына/доча, во что твой батя играл! Только это покрасивше.»

Так, в погоне за ностальгирующей аудиторией и гарантированной прибылью, началась эпоха ремейков. Согласитесь, какой бы прилив воспоминаний о прошлом ни вызывали две пирамидки Лары Крофт, два холмика выглядят куда естественнее и приятнее.

С пиксельартом и спрайтами все понятно: как в предыдущей статье, мы просто берем и делаем апскейл или перерисовываем атлас вручную. А что же делать с 3D-моделями?


«Эволюция» Лары крофт из игр Tomb Raider. С 2013 года правообладатели сделали полный перезапуск серии, перемешав идеи из оригинала с новыми задумками и кардинально поменяв внешность главной героини. Не всем это пришлось по вкусу.

Итак, как же быть, если у нас есть только оригинал в виде трехполигональной болванки? Мы можем пойти двумя путями: сделать новую модель полностью с нуля, используя оригинал как референс, и оптимизировать оригинальную модель до состояния конфетки.

С первым вариантом вроде бы все ясно: вот у нас концепт-арт (если сохранился), вот у нас оригинальная лоу-поли модель. Берешь и скульптишь или собираешь из примитивов, как удобнее, периодически сверяясь с референсом. Правда, как оказалось, далеко не все знают, как пользоваться референсами. Но об этом как-нибудь в другой раз.

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


Старая версия робота для проекта, утерянная вместе с исходником сцены…


И новая, полностью сделанная с нуля с измененным дизайном. Но пока с незаконченными текстурами
Второй вариант подразумевает несколько более сложную работу. Для начала придется заняться реверс-инженерингом или по-простому — рипом. То есть вытащить оригинальные модели из архивов игры и, если есть возможность, импортировать их в удобный или принятый в офисе разработчика софт.
Далее художнику необходимо заняться очень сложным делом — поработать головой. Взглянуть на доставшуюся ему модель и оценить, что он может с ней сделать, не нарушая общий стиль и конфигурацию.

Лего-блоки в детализированный меш


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


База какого-то странного существа. То ли антропоморфного раптора, то ли смешного инопланетного дракончика.

Итак, у нас есть база. Эту базу нам необходимо детализировать и сделать это как можно аккуратнее. Так, чтобы модель не потеряла качество и не превратилась в «мыло» с излишне плавными контурами. Особенно это важно для hard surface моделей техники.

Чтобы сохранить контуры модели, 3дшники часто прибегают к уловкам вроде дополнительных «ребер жесткости» там, где у модели должна быть острая грань.


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

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


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

Допустим, полигональность позволяет немного улучшить нашу модель, добавив ей подробностей. Если ваш скилл и сетка модели допускают — не медлите, разбивайте полигоны вручную. Не стесняйтесь позиционировать и отдельные вершины. Чем больше вы поработаете с моделью на начальном этапе, тем проще будет на следующих.


Немного (много) усилий — и болванка инопланетянина превращается в заготовку инопланетянина. Больше всего внимания всегда стоит уделять голове персонажа: это первое, на что человек обращает внимание после общего контура. А также на кисти рук —- это второе и очень важное, если игра идет от первого лица или из-за плеча персонажа.

Теперь, когда мы более-менее разобрались с основой, можно переходить к более сложным вещам. Например, дополнительному подразбиению с помощью subdivision surface.

Магия подразбиения

Subdivision или подразбиениеметод уплотнения сетки путем разделения каждого полигона поверхности на несколько полигонов поменьше. Как правило, подразбиение кратно 4м для лучшего обсчета (хотя блендер может подразбивать и на кратные 2м и даже нечетному числу полигонов). Если полигоно правильный, т.е. четырехугольный, то линии разделения идут через его центр перпендикулярно сторонам. Естественно, чем ближе форма полигона к квадрату, тем лучше.

Перед началом сабдива нелишним будет разделить модель на полигруппы или даже отдельные меши, чтобы избежать проблем в дальнейшем.

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

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


Теперь у нас обмылок. Несоединенные части сдулись, как шарики, и «отлетели» от базы.
Обмылки«ласковое» название излишне сглаженных и потому деформированных частей. Нельзя сказать, что четырехугольники могли избежать такой участи, но треугольная сетка деформируется сильнее и менее предсказуемо. При попытке сгладить даже хедкраба из старой Half-Life, вы получите округлый кусок непонятно чего с четырьмя торчащими бугорками.

Пример вмятины на месте треугольников

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


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

Утерянные карты

Есть и еще одна проблема: наращивание полигонов может «сломать» UV-карту оригинальной модели. Особенно остро это чувствуешь, когда оригинал модели затерялся в летах вместе со сгоревшим дотла старым компьютером или съеденным собакой ссдшником…

Я попыталась добавить полигонов к старой модельке мимика-монетки. Как видите, сетка местами «распалась», образуя разрывы и искажения на углах. Разумеется, такие вещи нужно вручную исправлять.

Хорошо, если подразбитая сетка просто слегка сгладится на углах. Но, как правило, все намного хуже: вершины покидают свои места, некоторые участки меша обретают разрывы, а порой можно получить «затяжки», идущие от одного «острова» на UV-развертке к другому. Конечно, это возникает не только при попытке нарастить полигоны, но и при их сокращении. Естественно, чем сложнее форма «островов» и чем их больше, тем выше вероятность возникновения таких «приколов».


Иногда сложно сказать, где именно и как проявятся ошибки. Например, здесь блендер прекрасно справился с лицом, но тело «пережевал», создав затяжки между островами меша на UV-карте и исказив карту на пальцах, грудной клетке и пояснице. Края островов теперь тоже не совпадают с рисунком текстуры.

Я регулярно сталкиваюсь с подобными проблемами, пытаясь улучшить свои старые модели. Сделанные порой десять лет назад в малоиспользуемом софте с гораздо меньшим скиллом, многие из них требуют полной переработки. Какие-то ради более красивой картинки, какие-то ради функциональности, а некоторые — потому что старый дизайн показался слишком простым или не вписывающимся в стилистику проекта.

Итого


Вообще-то я хотела добавить в статью немного моего сверхважного мнения по ремейку TES IV: Oblivion с точки зрения 3дшника и человека, который полдетства провел в оригинальной игре. Но, увы, он у меня не запустился. Памятуя, что и оригинальный обливион на старте имел проблемы с движком (Gamebryo) и далеко не всегда ровно шел даже на приличных по тем временам машинах, я не удивилась. Все же основа нового Обливиона живет на том же старом движке, и даже архивы не поменяли разрешение.


Родные BSA и BSD форматы в ремастере…

И только графоний (вроде бы) визуализируется через Unreal Engine 5. И то ли геймбрио с анрилом дружить нормально не хочет, то ли разработчики решили не маяться с оптимизацией и просто запихали обновленные модельки «как есть», навешав стандартных анриловских DOF и прочих эффектов… Но результат налицо: игра ужасно тормозит и провисает даже у людей с более пристойными сборками, чем у меня. А у меня просто вылетает.
Увы. Останетесь вы без обзора Обливиона от меня. Если разрабы не намутят супероптимизирующий патч. Хотя достопочтенный Тодд Говард скорее выпустит очередной ремастер Скайрима…
В целом, тема оптимизации во всех смыслах широка, глубока и требует куда большего погружения, нежели пара строчек на Хабре. Тем не менее поверхностное знакомство, думаю, засчитано. А дальше погружайтесь по мере необходимости вашей работы. Может, вы, как концепт-художник, вообще с ней не столкнетесь, а может, станете таким профи, что и мне рассказать что-то новое сможете.

Всего хорошего и не болейте!


НЛО прилетело и оставило здесь промокод для читателей нашего блога:
15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS

Комментарии (1)


  1. Jijiki
    06.06.2025 16:25

    еслиб они оставили ту жилку кривизны ) возможно ремейк не надо было бы делать, а обойтись новой историей какой-то), спасибо очень интересно