Разместить здесь вашу рекламу


Как нейросети помогают делать ремастеры

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

Есть примеры и легендарных проектов, которым переиздание было просто необходимо. Среди таких, например, Mass Effect Legendary Edition. Игра стала одним из первых AAA-ремастеров, где разработчики, чтобы облегчить себе жизнь, использовали нейросети для апскейлинга текстур. Наткнулись на подробный разбор, что это за технология, чем отличается от DLSS и как работает. Примеры тоже имеются. Подробности — под катом.

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

Логика перехода к сверхвысокому разрешению проста: скармливаем картинку алгоритму глубокого обучения, получаем ее новую версию с более высоким разрешением, сохраняя оригинальную визуальную идею.

Зачем нужен апскейлинг текстур

В старых двухмерных играх объекты создавались с помощью пиксельной графики: так получали изображение персонажа, бэкграунда и всего, что расположено между ними. Для движущихся героев собирали атлас спрайтов: он менял активный спрайт во время игры и отражал поведение героя. Однако в трехмерных играх объекты состоят из множества частей, ключевые — модель и ее текстуры.

Любой объект в 3D-игре, будь то персонаж, пропс или окружение, создается «пустым». 3D-художник вылепливает модель, а затем детализирует ее с помощью текстур. К каждому объекту применяется несколько текстур: основная (диффузная) и дополнительные (помогают визуализировать объект в различных условиях освещения). Сюда входит карта нормалей для добавления вершин, карта отражений для отображения цвета и карта свечений. Их стали использовать лет десять назад в связи с развитием Physically Based Rendering или PBR в игровых движках. Обычно к поверхности применяют несколько текстур, а затем детализируют модель.

Разные текстуры для одного материала
Разные текстуры для одного материала

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

Однако пиксельная фрагментарность обостряется при отображении старых 3D-игр на мониторах с современным разрешением. Модели выглядят более резкими и, да, изображение становится четче, но текстуры, используемые на объектах, выглядят очень плохо. Они вытянутые и пестрят пикселями. Почему? Потому что эти текстуры разработаны для поддержки игры на оборудовании с целевым разрешением на момент релиза. Никто из разработчиков Doom в 1993 году не предполагал, что люди будут играть в нее 30 лет спустя на 32-дюймовом широкоэкранном 4K-мониторе. Проект был разработан с учетом развития графики и памяти своего времени и адаптирован под мониторы, на которых он должен был отображаться тогда. Игры последних 20 лет для Nintendo Gamecube, Playstation 2 и оригинальной Xbox постигла та же участь.

DOOM (1993)
DOOM (1993)

Более современные игры обошли эту проблему: художники предусмотрительно создают исходные текстуры с более высоким разрешением. Игра получает пакет текстур с высоким разрешением в качестве DLC или патча на PlayStation 5 и Xbox Series X. То есть, когда тайтл релизили с текстурами 1080p на Playstation 4 и Xbox One, их разрешение было снижено по сравнению с исходными 4K-текстурами, созданными во время разработки. Снижение разрешения текстур — обычная практика, особенно для кроссплатформенных игр.

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

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

Пример увеличения разрешения картинки
Пример увеличения разрешения картинки

Апскейлинг текстур постепенно становится отдельной отраслью, и многие компании, такие как Topaz Labs, продают программное обеспечение для сверхвысокого разрешения, шумоподавления и повышения резкости изображений и даже видео (ведь это тоже просто серия статических изображений, создающих иллюзию движения). У Nvidia есть собственные инструменты разработки NGX для апскейлинга, которые предназначены для работы на графическом процессоре с поддержкой RTX, а Adobe недавно интегрировала функцию сверхвысокого разрешения в свою программу Camera Raw. Многие инструменты разработки ИИ, который выдает сверхвысокое разрешение, можно найти в свободном доступе в интернете, и поэтому создатели модов начали применять его к своим любимым играм.

Апскейлинг текстур vs DLSS

Все это замечательно, но очень напоминает технологию под названием DLSS (Deep Learning Super Sampling). DLSS — это технология апскейлинга, разработанная Nvidia и работающая на их видеокартах RTX. Несмотря на сходства, в работе DLSS и апскейлинга текстур есть различия.

DLSS обеспечивает масштабирование и сглаживание изображения, но апскейлинг происходит при выводе картинки. DLSS позволяет видеокарте рендерить игру с более низким разрешением, чем обычно, чтобы использовать меньше ресурсов, а ИИ затем апскейлит картинку, и она отображается на экране. То есть GPU может, к примеру, рендерить игры с разрешением 1080p, а DLSS затем масштабирует изображение до 4K, чтобы вывести его на ваш монитор. Это возможно благодаря тому, что у DLSS есть модель, обученная для этой игры, которая знает, как картинка должна выглядеть в более высоком разрешении.

DLSS
DLSS
Апскейлинг текстур
Апскейлинг текстур

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

Как работает апскейлинг текстур

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

Многие игры из статьи переработаны при помощи особого типа генеративно-состязательной сети: ESRGAN (Enhanced Super-Resolution Generative Adversarial Network или расширенная генеративно-состязательная сеть сверхвысокого разрешения). Алгоритм-генератор ESRGAN работает благодаря сверточной нейронной сети, использующей сверточные слои для сбора информации об исходном изображении с низким разрешением. При передаче это изображение захватывает так называемое «пространство признаков». Этот набор свойств используется для описания визуальных паттернов, например: изображен ли на картинке мех, кирпич или какой-то другой известный материал. Сверточные слои нужны для обработки и хранения этой информации, чтобы при создании изображения со сверхвысоким разрешением оно сохраняло то же пространство признаков, что и исходник. Получив эту информацию, генератор начинает масштабировать изображение.

Модифицированный дискриминатор в сочетании с изменениями в генераторе GAN позволяет выделить ESRGAN среди других GAN сверхвысокого разрешения: он лучше воссоздает резкость и детализацию текстур. Многие существующие методы сильно размывают такие текстуры, как мех, усы, волосы, или теряют детальность таких элементов, как кирпичная кладка или плитка.

ESRGAN отлажена очень хорошо, но не идеально. Сверхвысокое разрешение работает отлично, если на входе — изображение высокого качества. Апскейлинг с 1080p до 4K проходит намного проще, чем в случае с исходником с более низким разрешением. Во втором случае могут появляться ненужные артефакты. Эта проблема многих проектов, которые мы обсудим позже.

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

Апскейлинг текстур в модах

Бум использования технологий сверхвысокого разрешения приходится на последние три года. ESRGAN впервые увидел свет в 2018 году, но он уже оказывает огромное влияние на игровую индустрию, и в основном благодаря сообществам моддеров. Они создают обновленные пакеты текстур для любимых игр. Например, New Vision 1.5 mod для Deus Ex (2000).

Сейчас выходят моды со сверхвысоким разрешением. Их создатели извлекают из игр оригинальные текстуры и переделывают их с помощью технологий глубокого обучения. Тут много примечательных примеров, включая Deus Ex New Vision 2.0. Рассмотрим некоторые из них детальнее.

DOOM Neural Upscale 2x

Этот мод можно скачать бесплатно и запустить с любой установкой GZDOOM. Он произвел фурор в начале 2018 года. Мод основан на инструментах Nvidia GameWorks, предшественнике нынешней Nvidia NGX. Плюс они использовали апскейлер Topaz Labs. Этот набор текстур DOOM интересен тем, что разрешение было увеличено не так сильно, как ожидалось. Как следует из названия, текстуры здесь всего в два раза больше первоначального размера. А все потому, что разработчики мода хотели сохранить художественную целостность и четкость исходника.

Во время разработки текстуры были увеличены в восемь раз, но в процессе перехода к сверхвысокому разрешению стали появляться артефакты. Причина, конечно, в том, что исходные изображения слишком маленькие. Как упоминалось ранее, сверхвысокое разрешение зависит от информации, которая заключена в изображении и от захвата его пространства признаков. Легко преобразовать изображение с 1920x1080 до 4K, потому что в базовом изображении много деталей, с которыми можно работать. Размер большинства оригинальных текстур DOOM всего 64х128, у некоторых — 128x128. Попытка увеличить их в восемь раз приведет к проблемам, поскольку в них слишком мало информации. Таким образом, после увеличения в восемь раз, их уменьшили до 2x, а затем очистили вручную, чтобы удалить артефакты. Кроме того, все маски прозрачности тоже пришлось обрабатывать без помощи ИИ.

Max Payne Remastered (неофициальный релиз)

Этот замечательный пример работы ESRGAN выпущен в конце 2018 года и получил несколько обновлений в начале 2019. Как и в DOOM, тут задействованы процессы автоматического создания новых текстур и небольшая ручная доработка.

Max Payne Remastered заменяет пару тысяч текстур — около 95% оригинальных арт-ассетов игры. Одни текстуры в этом моде были увеличены всего в два раза, другие — в восемь. Игра действительно выглядит намного четче и приятнее на современных устройствах. Устранено почти все размытие, возникающее при растяжении небольших текстур на мониторах с высоким разрешением.

Апскейлинг на консолях

Эта технология работает не только в десктопных играх. На рынке появились и пакеты текстур для консольных тайтлов. Например, пак для Metroid Prime для Nintendo Gamecube. Сообщество моддеров, предоставляющих наборы текстур для эмулятора Dolphin, растет медленно, но верно. Они улучшают многие классические игры для GameCube, включая Metroid Prime, Tony Hawk's Pro Skater и Super Mario Sunshine.

Примеры в AAA-играх

Недавний релиз Mass Effect Legendary Edition показал, что и студии применяют эти технологии для работы с артом. Апскейлинг с помощью нейросетей стал лишь частью масштабной работы по восстановлению визуала трилогии Mass Effect. Шейдеры материалов и системы частиц обновили наряду с базовыми моделями персонажей. Но разрешение некоторых шейдеров материалов было слишком низким, ИИ им бы не помог, поэтому разработчикам пришлось переделать их вручную.

Трилогия Mass Effect разработана на Unreal Engine 3, который полностью соответствовал графическим ожиданиям оборудования того времени. Первая игра вышла в 2007 году, с тех пор возможности рендеринга заметно возросли. Многие игры Mass Effect работали с разрешением 720p на Playstation 3 и Xbox 360. Текстуры и модели персонажей часто уменьшались по сравнению с их исходными версиями. Для ремастера BioWare перешла к более поздней версии UE3, которая могла обрабатывать исходную модель и размеры текстур, а затем увеличивать масштаб исходных файлов. Апскейл с помощью ИИ помог сократить время и ресурсы, затрачиваемые на проект. Команда старалась ремастерить как можно больше текстур из оригинальной трилогии. Серьезное мероприятие: более тридцати тысяч текстур увеличены примерно в четыре раза по сравнению с исходниками.

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

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

Апскейлинг был применен не только в текстурах: были обновлены некоторые кат-сцены. Большинство роликов было переработано в движке в разрешение 4K, но с некоторыми это оказалось невозможно. Пришлось увеличить масштаб исходных видеофайлов. Кстати, то же самое сделали с кат-сценами в Command and Conquer Remastered. Почти все в этой игре было переработано вручную до 4K, но ролики были масштабированы с помощью ИИ, потому что исходные видеофайлы потерялись.

Заключение

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

Полезные ссылки

  • Ветка на Reddit про апскейлинг в играх

  • Про ESRGAN

  • DOOM Neural Upscale 2X

  • Max Payne Remastered

  • Dolphin Texture Mods

  • Deus Ex New Vision 2.0

  • Morrowind Enhanced Texture Mod

Источник: https://habr.com/ru/company/playgendary/blog/577592/


Интересные статьи

Интересные статьи

Занимаясь на курсах или обучаясь по различным туториалам, книгам и статьям, начинающие разработчики не слишком заботятся о том, как называть свои константы, переменные, классы, протоколы и т.п. во вре...
Сколько бы вы ни защищались, что бы ни делали, на 100% гарантировать защиту информации невозможно. Во-первых, что-то вы можете не предусмотреть с точки зрения законодательства, технически...
Меня зовут Павел Комаровский, и я алкоголик занимаюсь саморазвитием уже более 10 лет. Эта статья о том, какой подход к личному целеполаганию я выработал для себя в итоге ...
Вопрос в заголовке включает в себя неочевидную часть, ведь перед тем, как рассказывать про создание хорошей интеграции стоит определить, какую интеграцию мы считаем хорошей. А ответ на эт...
Существует традиция, долго и дорого разрабатывать интернет-магазин. :-) Лакировать все детали, придумывать, внедрять и полировать «фишечки» и делать это все до открытия магазина.