Хабрахабр

[Перевод] Форсаж: ускорение работы Forza Horizon 4 благодаря шейдерам окон

image

Гарет Харвуд — технический арт-директор Playground Games

Действие Forza Horizon 4 происходит в прекрасной Британии, заполненной мгновенно узнаваемыми местами и достопримечательностями, в том числе и моделью города Эдинбурга в версии Playground Games.

Для отрисовки зданий Эдинбурга необходимы были новые возможности сборки ресурсов, рендеринга, а также функционал движка, позволяющий загружать модели при движении со скоростью 300 миль в час.
В большинстве игр с открытым миром особое внимание нужно уделять скорости потоковой передачи данных, иForza Horizon 4 с её детализированным и пёстрым городом не стала исключением.

Здания создавались по референсам из реального мира. Для этого необходимо было сфотографировать и изготовить множество домов, однако мы можем создать и физически хранить на диске ограниченное количество зданий. Чтобы справиться с этим ограничением, сохранив при этом вариативность, мы создали взаимозаменяемый модульный набор объектов, которые добавляются к зданиям; к ним относятся такие объекты, как оконные рамы, подъезды, антенны и охранные сигнализации. Также мы обеспечили возможность изменения цветов и оттенков частей этих объектов. Такая система идеально подходила для создания серии домов с террасами, каждый из которых имеет дверь своего цвета.

В Эдинбурге нам нужно было создать огромное количество зданий на относительно небольшой площади. Загрузка этих зданий для небольшой части нашего открытого мира значительно увеличивала требуемый объём памяти. Чтобы справиться с этим, мы построили здания из модулей, взятых из библиотек первых этажей, верхних этажей и крыш, которые можно было соединять различными способами, получая вариативность и интересную картинку при низких требованиях к памяти.

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

Реалистичные миры всегда были сильной чертой игр Forza Horizon, и один из способов их создания стало добавление в здания интерьеров.

Поэтому мы решили использовать другую технику под названием «параллаксные текстуры». Мы знали, что в Forza Horizon 4 Эдинбург будет настолько плотно застроенным и детализированным, что физически моделируемые интерьеры создадут излишнюю нагрузку. При запекании их в текстуру их не ограничивает количество полигонов и сложность материалов. Они дали нам огромное преимущество при создании интерьеров. Раньше необходимо было закрывать окна занавесками или затенять их, но теперь у нас есть полностью параллаксные интерьеры. Рендеринг таких текстур менее затратен, чем создание геометрии, поэтому в игре может быть больше интерьеров.

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

Он добавляет такие нюансы, как витражи и свинцовое стекло, характерные для старой британской архитектуры. Первый слой прост, он содержит только оконную раму и стекло. В normal pass содержится вариация каждого витража для добавления реалистичной вариативности углов отражения стекла, которое особо заметно на старых витражах. Этот слой имеет diffuse, alpha, roughness, metalness и normal pass.

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

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

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

Шейдер вычисляет угол, под которым игрок смотрит в комнату, и изменяет UV-координаты таким образом, чтобы он видел только ту часть интерьера, которая была бы видима под этим углом. У этой техники есть несколько ограничений, с которыми мы справились.

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

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

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

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

Независимо от того, путешествуете ли вы неторопливо по Эдинбургу в своём винтажном родстере, рассматривая каждую витрину, или несётесь со скоростью 300 миль в час на суперкаре за миллион фунтов стерлингов, Forza Horizon 4 будет воссоздавать красивое, реалистичное и интересное окружение. Каждая технология, метод рендеринга, шейдер и текстура работают в гармонии, создавая одну из самых технически сложных частей карты Forza Horizon 4.

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть