Doom PBR

Doom PBR

«Кажется, там есть что-то интересненькое!»

Doom PBR – это ранняя демонстрация возможностей технологии PBR (Physically Based Rendering). Сейчас PBR является де-факто стандартом современной игровой индустрии – а тогда это ещё была одна из многих любопытных, но спорных концепций.

Тсс-щ-щ-щщщ!

Идея родилась, когда некто Никита Партицкий опубликовал в Сети свою замечтальную высокополигональную модель какодемона – творение, приуроченное к грядущему выходу новой игры в серии Doom:

Вот так выглядела модель после рендера в специализированном пакете 3D-моделирования

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

В это время я занимался экспериментами с Alloy – системой физически корректного рендеринга для Unity 4. Возможности системы поражали – это был качественный скачок в сторону если не реализма, то яркой, насыщенной деталями и впечатляющей картинки. Отражения, следы грязи, шероховатости, царапины – и всё это рисовалось так фантастически достоверно, как не умели делать даже многие AAA-движки того времени. Нет, правда!

Однако, чтобы снабдить модель материалами на базе шейдеров Alloy, требовалось множество дополнительных текстур. Сейчас этот перечень привычен игроделам, но тогда такой набор был скорее уделом AAA-проектов.
А в модели какодемона возможности удачно совпадали с желаниями – все нужные текстуры были. Возникла идея – сделать в честь грядущего выхода свежего Doom (2016) несколько рендеров на игровом движке Unity 4. Изготовить серию простых статичных изображений, набросков, чтобы показать, как бы мог выглядеть «старый Doom» на новой технологической базе. При этом ставилась задача воссоздать настроение, атмосферу старой игры на новый лад, разобрав составляющие его детали «по винтикам».

Проведя несколько экспериментов, я успешно преобразовал модель (автора) и её текстуры в пригодный для Alloy формат. Серия неудач была достаточно быстро преодолена при поддержке En’а и самого автора модели.
Какодемон был успешно подселён в сцену Unity. Текстуры были высокого качества, однако, настройка материала отняла некоторое время – средства Alloy несколько сложнее нынешней реализации PBR в Unity.

Преодолённые проблемы с неправильным наложением текстур

После ряда неудач, я всё же заставил шкуру какодемона влажноотблёскивать, а глаза – угрожающе светиться. Результат смотрелся гораздо солиднее стандартного рендера Unity.

Для того, чтобы разыграть сценку с нападением какодемонов на нашего героя, требовалось окружение – фрагмент уровня, где происходят все события. Я давний любитель игры Doom II, где действие начинается на Земле – как известно, во второй части Doom демоны вторглись в родной мир героя, уничтожив большинство его жителей и принеся элементы своей адской реальности. События происходили в несколько изменённых, чуть абстрактных, но узнаваемых земных декорациях.

Именно потому в качестве окружения был выбран один из ассетов на тему «военная база» – они в великом множестве существуют в Asset Store и поныне. Из доступных вариатнов был выбран тот, где был смоделирован целый военный городок – со зданиями, контейнерами, растущими на клумбах деревьями – достаточно качественный для съёмок сцены от первого лица.

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

Дробовик из нового Doom (по материалам сайта Bethesda)

После долгих поисков и испытаний, роль дробовика выпало сыграть… пистолету-пулемёту M23 авторства DennisH2010. Будучи правильно расположенным по отношению к камере, оружие ничем не выдавало своего происхождения, здорово смахивая на обычный полуавтоматический дробовик. Правда, довольно средненького вида – но одновременно похожий на оригинал из Doom, образец из Doom 3, и оружие родом из свежего Doom.

Из трейлера ещё не вышедшего нового Doom был вырезан красивый изогнутый GUI – очень аккуратно трейлер проматывался по кадру до того момента, пока полупрозрачные панели здоровья и боезапаса не попали на абсолютно чёрный фон. Работа оказалась кропотливой, но результат стоил того.

Небо над уровнем потребовало отдельных поисков. В классических частях Doom часто над игроком нависает горящее, кроваво-красное зловещее небо – гораздо более мрачное и насыщенное, чем любой простой закат. После долгих поисков, открытые хранилища ресурсов выдали подходящий вариант. Серия небольших доработок – и небо устроилось на своём месте,  сразу же обеспечив сцене с довольно безмятежным военным городком этакий тревожный, гнетущий вид.  Правильно настроенное освещение дополнило картину, и военная база стала отдалённо смахивать на “городские” уровни Doom II.

К сожалению, я допустил на этом этапе ошибку, связанную с импортом в движок текстур для skybox-а. На стыках текстур из-за этого появились видимые невооружённым глазом полосы и разрывы. Сейчас я уже знаю, как с этим бороться – но в то время проблема решалась изрядной порцией ретуши готового изображения. Также, нечто странное случилось с освещением листвы при настройке параметров отображения сцены – часть её приобрела аномально светлый оттенок. Впрочем, ретушь не подвела и тут.

Неприятные стыки (видны при увеличении, например, позади какодемона) и светлая листва

В оригинальном Doom II какодемоны стреляли в игрока, выпуская из пасти медленно летящие шары сине-сиреневой плазмы. Открытые пасти моделей какодемонов наводили на мысли о готовящемся выстреле. Потому было принято решение – ближний какодемон будет плеваться в игрока своим снарядом. Но как это сделать?

В пасти ближайшего к камере какодемона был размещён источник синего света. Впоследствии, к нему добавился второй – точечные источники давали не совсем то освещение, что может давать пламенеющий шар, а механизм Area Lights (когда свет рассчитывается не как идущей от единственной яркой точки, а как испускаемый большим телом) не работал в реальном времени. Синее свечение в пасти  подчеркнуло зловещими влажными отблесками рельеф шкуры и строение огромной пасти чудовища. Технология PBR показывала себя во всей красе.

Взгляд на сцену со стороны в редакторе

С шаром какодемона возникли вопросы. Чтобы воссоздать его в трёхмерном пространстве именно так, как задумано, требовалась бы умелая работа художника, специалиста по системам частиц. Однако, где взять такого?

На помощь опять пришли готовые решения. Гениальный Realistic Effects Pack 1 содержал эффект голубого сгустка энергии, взрывообразно разрушающегося при ударе.

Это не было похоже на то, что требовалось мне, но… эффект, при разделении, оказался содержащим все необходимые компоненты – шар синего пламени, поднимающийся пар, свечение, слабые огнистые языки. Я разобрал эффект на составляющие, а после собрал его заново, поправляя, подкручивая и доделывая. После в дело вступила ретушь – эффект размытия, цветокоррекция, добавление эффекта нестерпимой яркости свечения. Шар был размещён в пасти какодемона уже на этапе сборки финального изображения.

Шар какодемона

Последний штрих – логотипы UAC – корпорации вселенной Doom, вызвавшей демонов в этот мир.  Логотипы были аккуратно вырезаны с каких-то изображений по тематике игры, состарены, а затем размещены поверх изображения со внесением всех нужных перспективных искажений. По-моему, никто и не заметил, что логотипы не являлись частью текстур окружения.

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

Детали, ради которых всё затевалось, хорошо видны в большом разрешении – нажмите на картинку, чтобы просмотреть оригинал

Вдобавок, мне понравился неожиданно получившийся в процессе наложения логотипа UAC эффект – и ближайший какодемон был отделён от собратьев и изображён на независимом “постере”. По-моему, он этого заслужил – он тут вышел милашкой. По крайней мере, он не уступает по своей жестокой харизме собрату из классической серии Doom:

Лозунг UAC: “Мы за строительство лучшего будущего!”

Таким образом, мой небольшой эксперимент показал, что технология PBR имеет большое будущее (что и подтвердил состоявшийся релиз Unity 5).

А ещё – что визуально красивую игру по вселенной Doom возможно изготовить и силами фанатов на существующей технологической базе.

Атмосфера Doom не обязана безвозвратно теряться при переходе от спрайтов к моделям. Не мощи игровых движков для этого не хватает. Нужны хорошие модели, текстуры, визуальные эффекты. И люди. И так любимая многими атмосфера вновь оживёт, уже в полном 3D. Всё возможно.