
Добрый день, дорогие хабражители и хабражительницы.
Продолжаем тему оптимизаций для наших с вами ностальгирующих глазок и переходим к следующему этапу графических улучшений. На этот раз на нашем препаровальном столе окажутся модельки. И оптимизировать мы их будем не в меньшую сторону, а в большую.
Пост рассчитан на тех, кто еще только знакомится с тонкостями работы с 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
Jijiki
еслиб они оставили ту жилку кривизны ) возможно ремейк не надо было бы делать, а обойтись новой историей какой-то), спасибо очень интересно