Шейдеры параллакса текстур в Forza Horizon 4
Действие Forza Horizon 4 происходит в прекрасной Британии, наполнено знаковыми местами и достопримечательностями, благодаря которым районы мгновенно узнаваемы.
Большинство игр с открытым миром требуют особого внимания к потоковой передаче, и езда через подробный и разнообразный город на суперкарах в Forza Horizon 4 не является исключением. Чтобы загружаться со скоростью 300 миль в час, здания Эдинбурга нуждались в создании новых ресурсов, приемов визуализации и технических особенностей движка.
Модульное решение с меньшим объемом памяти
Здания созданы на основе реальных прототипов. Для этого потребовалось сфотографировать и сконструировать много домов, однако физически уместить на диск можно лишь ограниченное число объектов. Чтобы справиться с этим ограничением при сохранении разнообразия, мы создали сменные модульные объекты, которые добавили к зданиям. Это такие элементы, как оконные коробки, подъезды, антенны и сигнализации. Мы также допускали, чтобы части этих объектов были окрашены или тонированы. Это идеально помогло в создании ряда домов с террасами, которые имеют разные цвета дверей.
Для Эдинбурга нам нужно было создать огромное количество зданий на сравнительно небольшой территории. Загрузка этих зданий в небольшую часть открытого мира значительно увеличила бы требования к памяти. Чтобы бороться с этим, мы построили здания модульным способом, где библиотека подвалов, цокольных этажей, верхних этажей и крыш может быть сложена и объединена различными способами для достижения разнообразия при меньшем объеме памяти.
Это также позволило нам легко оценить сложность по отношению к уровню земли: торговые витрины, до которых можно доехать, имели более высокий бюджет рендеринга, чем крыши, которые видны только издалека. Сделанные в единичном экземпляре здания-герои, такие как Памятник Скотту и Национальная галерея, в сочетании с модульными зданиями, снизили заметное глазу повторение при максимальном повторном использовании ресурсов и модулей.
Реализация параллакса текстур
Создание реалистичных миров всегда было сильной стороной Forza Horizon, и один из способов достижения этого у нас – добавление внутренних интерьеров зданий.
Мы знали, что в Forza Horizon 4 Эдинбург будет настолько плотен и детализован, что физическое моделирование интерьеров превысит наши бюджеты. Поэтому мы взяли параллакс текстур. Это создало огромное преимущество, так как запеченные в текстуре интерьеры не привносят ограничения в полигональные расчеты или сложность материалов. И поскольку их визуализация дешевле, чем создание геометрии, мы можем сделать в игре больше интерьеров. Если раньше нам пришлось бы остановиться на закрытых занавесках и затемненных окнах, теперь стало возможным показать полноценные комнаты.
Материал интерьеров с параллаксом состоит из трех слоев, которые независимо выбираются дизайнерами для каждого окна. Поскольку каждый слой имеет несколько разных настроек, для каждого окна это дает сотни визуальных вариаций. Даже если используется лишь небольшой набор из атласа текстур.
Первый слой очень простой, он содержит оконную раму и стекло. К этому добавлены нюансы, такие как оконные панели или витражные стекла, которые характерны для старой британской архитектуры. Этот слой имеет настройки: диффузный, альфа, шероховатость, металличность и нормальный проход. Нормальный проход содержит изменения у каждой стеклянной панели, чтобы добавить реалистичные вариации углов отражения на стекле. Они более заметны у старинных оконных стекол.
Второй слой был для штор или жалюзи. Он имеет свойства диффузный и альфа, но также включает пропускающую текстуру, чтобы ночью продемонстрировать толщину штор. У нас есть толстые шторы, которые не пропускают свет, жалюзи, которые являются полупрозрачными, и кружевные занавески, которые пропускают немного света.
В последнем слое происходит магия шейдеров, так как это плоская текстура, имитирующая 3D интерьер. Интерьеры сначала моделируются в 3D с использованием равномерного масштаба, а затем визуализируются в уникальный формат текстур, поддерживаемый нашими шейдерами параллакса интерьеров. Как и для других слоев, мы создали атласы, которые в данном конкретном случае содержали до восьми различных интерьеров одного стиля, чтобы уменьшить количество вызовов отрисовки.
У нас есть несколько разных атласов для сельских домов, для городских, и для коммерческих заведений, т.е. магазинов, ресторанов и типичных британских пабов. У нас также есть две основные глубины интерьера. Одна для стандартных номеров, а другая для неглубоких оконных витрин. Во время задания материалов с определенными свойствами на каждом полигоне окна художники могут выбрать, какую часть атласа они хотят использовать.
Шейдер рассчитал угол, под которым вы видите комнату, и настроил UV так, чтобы вы могли видеть только ту часть интерьера, которая доступна для вашего угла обзора. Эта техника имеет несколько ограничений, о которых сейчас поговорим.
Во-первых, шейдерный обман становится заметным под очень малыми углами. В этих крайних случаях мы увеличили естественный эффект Френеля для стекла, чтобы показать больше отраженного изображения, чем интерьер. Во-вторых, детали в центре комнаты начинают деформироваться при увеличении углов. Мы уменьшили это, направив интерес наблюдателя к стенам и углам и затемнив пол. Как и в реальной жизни, эффекту параллакса помогает наличие сходящихся линий, попадающих в одну точку фокусировки. В наших изображениях мы играли на этом, имея параллельные линии, где это возможно: плитка, книжные полки, деревянные полы и узорчатые обои.
Каждая текстура интерьера также имеет вспомогательную световую текстуру для ночного времени. Здесь еще раз преимущества запекания текстуры позволили использовать столько источников света, сколько необходимо, поскольку все они в конечном итоге будут объединены в текстуру. У нас есть время включения и выключения для каждого здания, чтобы добавить разнообразия, когда включается свет.
Художники могли свободно выбирать любые типы окон, штор и интерьеров, которые им нравятся, но они следовали некоторым простым правилам: спальни обычно появляются на верхних этажах, и мы не повторяем одну и ту же комнату в каждом окне или ставим лестничные клетки на верхний этаж. Мы также посмотрели на целесообразность каждой комнаты. Например, у нас не могло быть небольшого коттеджа с двумя спальнями, где десять или более окон смотрят в разные комнаты, поэтому художники устанавливают окна, которые смотрят в разные части одной комнаты.
Наконец, по причинам производительности: когда игрок отходит от здания, нам нужно было уменьшить не только сложность сетки, но и сложность шейдеров и материалов. Для этого мы убрали эффект параллакса и заменили окно плоским изображением с окном, шторами и интерьером на одном слое. Это происходит, когда окно очень маленькое на экране и не заметно для игрока.
Путешествуете ли вы по Эдинбургу в своем старинном родстере, заглядывая в каждую витрину магазина, или гоняете на суперкаре за миллион фунтов со скоростью около 300 миль в час, Forza Horizon 4 воссоздает красивую, реалистичную и интересную обстановку. Все техники конструирования, рендеринг, шейдеры и ресурсы работают в гармонии, создавая один из самых технически сложных разделов карты Forza Horizon 4.
Гарет Харвуд, технический арт-директор в Playground Games