Доброго времени суток, дорогие хабражители!


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

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

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

Технологии не стоят на месте. В 1990-х и 2000-х картинка на мониторе в 140 пикселей была чудом, доступным лишь избранным. А сейчас, когда каждый второй геймер имеет у себя дома 4к монитор, а каждый первый консольщик — 100500к телевизор, малюсенькие плиточные текстурки и угловатые пирамидки Лары Крофт уже не вызывают такого восторга. Да и запускать на современных компьютерах старенькие проекты, которые сейчас тянет даже калькулятор, даже как-то стыдно. Что же делать?


Как оказалось, это не шутка, и знаменитую игру действительно можно запустить даже на осциллографе. Однако самое знаменитое видео, где Дум запускают на калькуляторе Texas Instrument TI-83 Plus, похоже, фейк. То самое я не нашла, но нашла другое видео, где мастер подробно объясняет, как устанавливать программы на этот калькулятор и даже запускает… Ну, скорее, помесь Doom и Wolfenstein

Зачем улучшать старье?


Многие геймеры, повзрослев, хотят окунуться в игры своего детства. Однако мозг проворачивает с нами злые шутки: все, абсолютно все вещи, которые вы помните, были не такими. Вообще, искажения памяти неизбежны, так устроен органический мозг. Так или иначе, в нем возникают искажения, особенно при постоянном эмоционально связанном воспоминании. И обычно то, что мозгу нравится, запоминается лучше не только в плане долговременного хранения, но и в плане лучшего вида. Впрочем, то, что нас напугало или заставило тревожиться, тоже запоминается, но запоминается страшнее из-за эмоциональной окраски.
Хорошая статья относительно простым языком доступна по ссылке, а так я советую прочитать обсуждения исследований эмоциональных искажений памяти и реконсолидации Жана Пиаже, Ванессы ван Аст, а также экспериментов Лейни 2004 (прошу не путать с «Эксперименты Лейн»!). Так что да, любимые вещи сильно приукрашиваются.
Будучи ребенком, я играла в Gothic и TES III: Morrowind на папиных сохранениях. И я кайфовала от тамошнего сюжета, от «живости» неписей, от графики… Да что там — я визжала от восторга от самой возможности выбора в диалогах и того, что у компухтерных человечков шевелились рты! И конечно же, запомнились эти игры мне как весьма красивые и разнообразные. А потом я открыла их спустя десять с лишним лет… 


Надо отдать разработчикам должное — драконы из Gothic II выглядят достойно даже спустя 23 года. О ужас, готика вышла аж в 2002 году… как быстро летит время!

Ай, помогите! От угловатых форм героев болели глаза, а рассыпающиеся на пиксели текстуры натурально вызывали отторжение. Сейчас я открываю Готику старого образца… Да после какой-нибудь Enotria с ее офигительной красочной графикой… Ну… больно. Вкусно, но больно.


Даже на моем средненьком железе Enotria: The Last Song выглядит богически. Сочные цвета, кинематографичная дымка и ореол вокруг источников света, мягкие тени, приличные текстуры, ммм… Пример хорошей работы с «тяжелым» движком Unreal Engine.

И тут я запускаю ремейк Gothic… Вот это уже получше. Примерно такую картинку я и помню с 2000-х, разве что Диего немного погорячее (но это уже вкусовщина). 


Демо ремейка игры Gothic. Да, гг демо — не Безымянный, разработчики об этом предупреждают. Но графон начальной локации впечатляет — примерно так я и помню «порт прибытия» возле Барьера. Чуть дальше игрока, как и в оригинале, ждёт пара стай Падальщиков, которые испытают на прочность ваши навыки. А для особо любопытных — еще и гоблин с дубиной. И мини-квест…

Вот так мозг «улучшил графон» в воспоминаниях. Это улучшение обычно и лежит в основе "эффекта или синдрома утенка". Проявляется он так: вы помните какую-то вещь, которая вас радовала. Скажем, игру. Она кажется вам классной и красивой. А потом выходит что-то новое. Оно технически и графически лучше, чем старая игра, но вы помните старую лучше, чем она была на самом деле. И глядя на новую, говорите «Фи». Если хоть раз испытывали подобное чувство, то вы — типичный утенок. Не бойтесь, это нормально.

Но ностальгирующий геймер все еще хочет вернуть свой 2007/2013/2017 (нужное подчеркнуть). Для этого и придумали ремейки и ремастеры.

Итак, с чем нам предстоит разобраться? Есть три больших кита улучшения графония (исключая хитрые движковые штуки вроде трассировки лучей и нейронок/DLSS, мы сейчас говорим непосредственно о моделях и спрайтах). Из этого вытекают и глобальные улучшения игр. И не только игр. Да, мы таки поговорим о ремастерах.

Поднять текстуры!


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

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


    Ремейк-ремастер Half-Life: Black Mesa включает не просто обновление текстур, но и замену всех моделек на более эффектные и полигональные
  • Полный ремейк
    Ремейк включающий все вышеперечисленное и сверху добавляющий полную переработку игрового движка, системы рендеринга, катсцены, а иногда и пересборку на другом движке «по мотивам» оригинала.


    Ремейк Gears of War остался на родном движке Unreal Engine 3, однако разработчики подтянули текстуры, улучшили некоторые модели (особенно монстров и главных героев) и пересобрали визуальные эффекты для игры.

Косметический ремонт


Как улучшить текстуры? Есть два способа:
  • Апскейл
    В современном интернете с апскейлом, так или иначе, знакомы почти все — это алгоритмическое улучшение картинки автоматическими скриптами. Проще говоря, за вас текстуру улучшает программа. В зависимости от целей и предпочтительных инструментов, это может быть растяжение и сглаживание картинки плагинами для фотошопа или автономной нейронной сетью. Если у вас простейшая текстура плитки или кирпичной стены, то вам хватит и простого «увеличить/сглаживание/устранение шума/резкость». 

    Если та же плитка вам нужна в размере 4к (интересно, зачем) или эта же плитка имеет сложный мозаичный узор, то придется учиться работать с более сложными инструментами. Самый простой из сложных — ИИ-апскейлер или в повседневности увеличитель разрешения. В зависимости от ваших требований и сложности рисунка вам могут понадобиться и другие ИИ-шки, вплоть до перегенерации на основе образца старой текстуры.


    Одна из фресок подземелий TES V: Skyrim. Было мелкое шумное «мыло», стало большое сглаженное «мыло». В данном случае устранение шума не пошло на пользу текстуре затертого старого камня.
  • Ручная перерисовка
    Ручная перерисовка подразумевает, что вы откроете текстуру в удобном для вас графредакторе и собственными ручками перерисуете ее всю поверх старой или с нуля. Либо будете так же ручками переносить кусочки с референсов-фотографий рисунок мрамора, например, и накладывать его на каждую плиточку, а потом дорисовывать или лепить штампом затирку между кусочками мрамора. 

    Долго? Долго. Сложно? Сложно. Но результат получается куда лучше, чем автоматический и даже нейронный апскейл.


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

    С органическими моделями типа лиц людей, цельных животных и даже тканевой одежды стоит задуматься над рисованием по модели, а не текстуре. Для этого оригинальную, низкотекстурную, модель импортируют в любой графический движок с поддержкой рисования по поверхности (Substance Painter, ZBrush, плагинированный Blender и т. п.). Дальнейшее зависит лишь от вашего скилла и софта. Впрочем, как и в предыдущем абзаце.

Про опыт графического улучшения


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

Тень Майлза Апшера — журналиста, ГГ первой игры Outlast

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

Так вот, мне написал фанат примерно со следующей просьбой: у него в руках оказалась голова, та самая, которая отбрасывала тень, и он хотел бы привести ее в «человеческий вид». Он хотел добавить эту голову в мод с видом от третьего лица для красивых постановочных рендеров из оригинальной игры, такая разновидность фанарта. Но оригинальная голова-то невидимая!
Вероятно, он сам или кто-то для него рипнул эту голову из файлов игры. Но у головы не было текстур.

Зачем текстуры тому, что никто не увидит? 
Я тогда еще только осваивала технику рисования кожи, так что согласилась потренироваться. 



Оригинальная голова, которую движок игры использовал для рендера тени в игре Outlast…

Надо сказать, что меш ужасный. Скорее всего, это самая обычная «заплатка» в виде базовой модели. Почти все поколения движка имеют такую в составе демонстрационного стартового набора. Я так думаю, потому что моделька ГГ из Lust for Darkness имеет почти такую же голову, но чуть менее полигональную.


И мой апдейт этой головы с полностью перерисованной вручную текстурой в ZBrush. Из-за формы головы он теперь больше смахивает на Думгая, а не на слабосильного больного журналиста (да, по лору, у него больные суставы).

Спустя много лет я думаю, что надо было бы для начала сделать ремеш, чтобы выровнять геометрию и избавиться от треугольников. А заодно получше сделать UV-развертку. Но что уж там, для первого раза вышло неплохо.
Забавный факт
Как ни иронично, но самой успешной моей коллаборацией на почве аутласт с тем человеком стала не эта голова, а корявый мешмод Майлза с совершенно другой головой… Да настолько успешной, что та голова стала чуть ли не хэдканоном у фанатов. 


Теперь эта голова мелькает даже на обложках обзоров и прохождений. И… каких-то фанфиков, кек.

Увы, оригинальных авторов сего творения давно позабыли и растащили модель в SFM и другие программы.

Подтяжка лица для целой игры


Вручную перерисовывать текстуры бывает очень непросто. Особенно, когда речь идет о регионе в игре. Или даже о целой игре. Люди так сильно не хотят расставаться с вещами, которые приносят им удовольствие, что самостоятельно улучшают любимые проекты.

Даже сейчас, когда оригинальный Dark Souls уже нельзя купить в Стиме и поиграть в него по сети без костылей, на Nexusmods все еще хранятся более 200 ретекстуров, улучшающих графику. Или переделывающих знакомые штуки во что-то более веселое. А ведь когда-то ретекстуров было около 2 тысяч, большая часть из них просто добавляла пикселей окружению и предметам… И все это было сделано почти целиком вручную! 


Несмотря на вышедший ремастер, который сильно подрезал список модов на оригинальную игру, их все еще достаточно. Я еще помню Blighttown HD overhaul, который заменял текстуры в целом регионе — Чумном городе…

Разумеется, провернуть улучшение ВСЕХ текстур в игре — задачка нетривиальная. Если перерисовать полтора десятка текстурных атласов какого-нибудь Crash Bandicoot в ручном режиме не так сложно, то перегнать пять гигов картиночек Dark Souls: Prepare to Die Edition из оригинального 1024 на 1024р в современный 4к уже требует какого-то количества ценных человекочасов. Тут уже не обойтись без машинного вмешательства, отдав бездушным алгоритмам хотя бы бесшовную часть земли, досок и растительности.


Системки оригинальной Dark Sоuls: Prepare to Die Edition


Системки Dark Souls: Remastered. Места на диске по итогу занимается чуть больше — от 9 до 10-12 гб. Связано это с переделанной архивацией текстур и тем, что текстуры немного увеличили в размере и добавили каждому сету брони по две версии — повыше и пожиже. Если вы играете на высоких настройках, из архивов извлекаются более качественные картинки.

С ремастером Dark Souls студии удалось сделать немыслимое по сегодняшним меркам — сохранить почти оригинальный размер игры. Это чудо, учитывая, как потяжелела почти не изменившаяся The Last of Us.  На сим, пожалуй, на сегодня закончим. А в следующий раз займемся более интересным делом — наращиванием полигонов.

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


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

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