ID Tech 7: как устроены технологии Doom Eternal
Отказ от мегатекстур пошел технологии id Software на пользу.
Кстати, на сайте читать удобнее
Doom Eternal вышел на тех же консолях, что и предыдущая часть серии. Тем не менее, карты здесь больше, а модели проработаннее. Количество мелких деталей увеличилось, качество текстур и эффектов повысилось. Причина — в новом движке.
Вышедший в 2016 году Doom создавался на движке id Tech 6, сохранившем ряд артефактов предыдущего поколения. Наиболее заметным из них была технология мегатекстур, некоторое время считавшаяся прорывной. Надежды не оправдались: мегатекстуры усложняли работу художников, долго прогружались и доставляли массу проблем.
Создавая новую версию движка, рассказывает ведущий программист id Tech 7 Билли Хан, разработчики стремились выполнить две задачи. Во-первых, нужно было повысить качество картинки, отказавшись от мегатекстур и перейдя на ассеты высокого разрешения. Во-вторых, следовало увеличить частоту кадров.
Для начала в id Software решили полностью перейти на использование графического API Vulkan. Этот интерфейс задействовали не только в движке, но и во всех инструментах, с помощью которых создаются уровни, эффекты и другие ассеты.
Благодаря этому удалось существенно увеличить скорость создания контента и одновременно повысить производительность. По сравнению с предыдущей частью серии, в Doom Eternal в десять раз больше уникальных ассетов, наполняющих мир деталями.
Вместо мегатекстур было решено создать новую систему потоковой загрузки. Это решило сразу две проблемы: во-первых, дизайнерам не приходилось работать с огромными текстурными атласами, что тоже ускоряло работу; во-вторых, удалось повысить разрешение самих текстур.
Сам процесс работы над ассетами стал куда более гибким. К примеру, художники могли создавать материалы, просто рисуя прямо поверх моделей или нужных поверхностей; появилась возможность комбинировать слои текстур и гораздо проще переиспользовать уже созданные материалы.
Одновременно был переработан алгоритм отсечения невидимых полигонов. Это очень важная оптимизация: в одной сцене Doom Eternal может быть примерно в 8-10 раз больше полигонов, чем в Doom 2016 года — то есть порядка 80-90 миллионов.
Чтобы помочь железу справиться с нагрузкой, разработчики улучшили систему уровней детализации. У почти каждого ассета в Doom Eternal есть несколько менее детализированных версий, причем их подгрузка зависит не только от расстояния до объекта, но и от того, насколько большая его часть видна в кадре.
Еще одна оптимизация касается освещения. Движок умеет попиксельно анализировать влияние источников света на освещенность сцены и отключает обсчет для тех пикселей, изменения которых будут минимальны. Благодаря этому дизайнеры могут активнее расставлять по уровням источники света — они не приведут к просадке частоты кадров.
Для оптимизации анимации использовалось кэширование Alembic. Это техника, разработанная студией Industrial Light and Magic и применяющаяся, в основном, для кино и анимационных фильмов; в играх ее можно было увидеть, например, в Gears 5.
Суть техники в том, чтобы дать движку возможность как можно активнее переиспользовать уже существующие фрагменты анимаций. Фактически каждая анимация состоит из множества кусочков, которые можно компоновать в разном порядке: это повышает реалистичность и одновременно снижает нагрузку.
Эта система применяется практически для всех существ в Doom Eternal — от щупалец, вылезающих из-под земли, до демонов. Все данные подгружаются по мере необходимости: так можно не забивать ими память.
Для консольных версий внедрили ряд отдельных оптимизаций. В первую очередь это динамическое разрешение: на Xbox One S картинка рендерится максимум в разрешении 900p, на PlayStation 4 разрешение достигает 1080p, но в особенно тяжелых сценах обе консоли могут проседать примерно до 720p.
У мощных консолей разрешение рендеринга выше. На PlayStation 4 Pro используется максимальное разрешение 1440p, у Xbox One X оно выставлено на 1800p. До разрешения 4К картинка восстанавливается с помощью специальных алгоритмов.
По уровню графики обычные консоли примерно соответствуют средним настройкам в версии для PC, у Xbox One X и PlayStation 4 Pro графика близка к высоким-максимальным настройкам на PC. Кроме того, на консолях скорректировано расстояние подгрузки менее детализированных версий объектов.
Все эти оптимизации позволили консольным версиям Doom Eternal выдавать практически стабильные 60 кадров в секунду; просадки бывают, но не слишком серьезными. Мощные PC могут выдавать сотни кадров в секунду: это особенно полезно для владельцев мониторов с высокой частотой обновлений.
- Doom Eternal: Кровавое супергнездо — все секреты и предметы
- Российский художник устроил концерт героев Animal Crossing в стиле Doom
- Кодзима снова гений: игроки считают, что он предсказал карантинный апокалипсис
- Дэниел Крейг мечтал играть не Джеймса Бонда, а Супермена — или Человека-паука
- Doom Eternal: Вольеры охотников рока — все секреты и предметы
- Doom Eternal запустили с экранной трассировкой лучей