Почему в Dragon Age: The Veilguard такие роскошные волосы — рассказывают разработчики
Как в BioWare создали причёски, «которые хочется потрогать».
Специалисты студии BioWare поделились техническими подробностями о создании реалистичной системы рендеринга волос в Dragon Age: The Veilguard. Выбрали главное из материала.
Технология Strand Hair
В основе визуализации волос в The Veilguard лежит технология Strand Hair из движка Frostbite. Она сочетает физическое моделирование на основе отдельных прядей и рендеринг в реальном времени для естественной симуляции человеческих волос. EA уже применяла эту технологию в спортивных симуляторах EA Sports FC, Madden NFL и NHL, но для The Veilguard её пришлось существенно доработать.
В отличие от спортсимов, в RPG от BioWare у персонажей есть нетипичные особенности вроде рогов или эльфийских ушей. Причёски героев гораздо более разнообразные, а волосы могут опускаться до пояса. Чтобы учесть все эти особенности, разработчики:
- разделили процессы симуляции волос и тесселяции при рендеринге;
- увеличили максимальную длину волос с 63 до 255 сегментов;
- внедрили новую систему для создания причёсок со сложной структурой вроде косичек;
- добились точного поведения материала волос и правильного отображения теней, чтобы они выглядели реалистично при любых условиях освещения;
- создали новую систему освещения, которая учитывает, как свет проходит через волосы.
Для того чтобы внедрить технологию Strand Hair в Dragon Age: The Veilguard, студия BioWare тесно сотрудничала с командой разработчиков движка Frostbite. Вместе им удалось преодолеть много трудностей, связанных с освещением и поведением волос в сложных сценах, например, когда персонажа окружают многочисленные и разнообразные магические частицы. Прежде технология Strand Hair не сталкивалась с такими вызовами, поскольку в спортивных симуляторах ничего подобного нет.
Пряди волос с использованием технологии Strand Hair рендерятся иначе по сравнению с обычными 3D-объектами. Для них применяется специальный программный растеризатор, который отвечает за преобразование трёхмерной модели волос в двумерное изображение. Полученный результат компонуется в основной кадр, плавно смешиваясь с другими непрозрачными и прозрачными объектами при финальной обработке.
BioWare использовала для рендеринга причёсок сложную технику, которая предполагает разделение волос на две части. На первом этапе происходит визуализация непрозрачной части волос, а на втором — полупрозрачной, например, кончиков, которые могут пропускать свет. Рендеринг также учитывает эффект глубины резкости, что делает кадр более естественным.
Ещё одной проблемой, с которой столкнулись разработчики, стало использование большого количества разных настроек освещения для катсцен. Важно было добиться, чтобы волосы выглядели как можно более естественно, но производительность оставалась высокой, ведь речь идёт о визуализации в реальном времени.
Для решения этой проблемы разработчики рендерили дополнительные высококачественные тени на волосах персонажей. Тени рассчитываются в режиме реального времени с использованием узкого конуса света, точно повторяющего форму каждого волоса. В результате получаются очень точные карты теней, что сделало изображение более детализированным и правдоподобным.
Такая продвинутая система рендеринга волос привела к возникновению ряда технических вызовов перед разработчиками. Они столкнулись с высоким расходом оперативной памяти, большой нагрузкой на графический процессор и перегрузкой системы, когда на экране появляется большое количество персонажей.
Для того чтобы добиться стабильной частоты кадров, в BioWare установили жёсткие ограничения на время, которое тратится на рендеринг волос. Для режима с 30 fps максимальное время отрисовки составляет 6,5 мс, а для режима с 60 fps — 3 мс. Когда персонажи находятся вне экранного пространства или далеко от камеры, симуляция волос отключается, что также положительно сказывается на производительности.
На менее мощных ПК и Xbox Series S разработчики использовали упрощённые модели волос, которые требуют меньше памяти. Также в BioWare применили технологию масштабирования разрешения волос, которая автоматически подстраивается под производительность системы и выбранное разрешение.
Релиз Dragon Age: The Veilguard состоялся 31 октября. Ранее в BioWare опубликовали игровую статистику за первую неделю после выхода.