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

http://www.gamasutra.com/view/news/332409/Game_Tech_Deep_Dive_The_fast_and_furious_window_shaders_of_Forza_Horizon_4.php
  • Перевод
image

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

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

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

Модульное решение, снизившее нагрузку на память


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


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

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

Реализация параллаксных текстур



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

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


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

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


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


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

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


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

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

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


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

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


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



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

Поделиться публикацией

Комментарии 22

    +1
    Для гонки хорошее решение. Так-то видно, что объекты в «комнатах» от стен максимум на 5 сантиметров отступают. Но на скорости этого не заметишь.
      +4
      20 лет назад мне очень нравилась вот эта игра. У меня тогда был графический ускоритель 3dfx voodoo2, поэтому игра смотрелась очень хорошо. Графика по тем временам казалась просто инопланетной; например, обратите внимание на свет от ламп когда автомобиль тоннель проезжает — очень красиво и, главное, лагов не было вообще, от слова совсем. Да и даже теперь, имхо, игра выглядит очень прилично, особенно на фоне всякой «инди» халтуры. Кроме того, в то время пакет 3D Max был сверх популярным, demo сцена тоже очень популярной темой была. И вот нам, в виду этого всего, тогда казалось, что в 10-х годах XXI века у нас уж точно в играх графика будет прямо как в кино картинка. Это я все к чему: до тех пор пока будут существовать игровые приставки, нормального графона без лагов на PC, в ближайшей перспективе, ожидать не приходится. Вам, кстати, спасибо большое за статьи — я от разработки игр далек, но читать все-равно очень интересно.
        +2

        А как же RTX от nvidia? На приставках такой технологии нет.

          +1
          Вот именно, на условной игровой приставке RTX от NVIDIA нет, но по плану конторы ее выпустившей, приставка та должна устойчиво продаваться еще N лет, а значит в интересах этой самой конторы будет, скажем так, «сгладить» разницу в качестве условной игры выпущенной как для ПК, так и для ее игровой приставки. У издателей игр интерес — охватить как можно больше платформ, а это означает «вписаться» в ограниченные (по сравнению с ПК) технические характеристики игровой приставки. Например, с Batman Arkham Knight была, имхо, вообще провокация: после старта продаж в Steam пользователи в отзывах прям так и писали: мол, «ой все, сдаю игру по гарантии в Steam, а куплю теперь экземпляр для PS4» — типа такого.
            0
            У Майкрософт (одна из студий, которая разрабатывает форзу) в последнее время философия по отношению к играм под названием «play anywhere». Грубо говоря, один раз купив игру, вы сможете в неё играть как на приставке, так и на пк, так и на мобильных устройствах (это в ближайшем будущем), поэтому им лаги на ПК не нужны — продаж контента будет меньше. Знаю, что horizon 3 на ПК лагал, четвёртая часть не знаю, но надеюсь на лучшее.

            P. S. Поиграйте в forza horizon 4 или motorsport 7, потому что NFS, который вы привели в пример, сейяас выглядит как будто сравнили civilization 6 и майнкрафт (без обид).
              +1
              Вы ничего не поняли. Я писал про скорость развития игровой индустрии в контексте качества графики тогда (20 лет назад) и сейчас. Суть в том, что тогда железо пытались использовать по полной, теперь же современные видеокарты, например, GEFORCE RTX 1080 Ti от NVIDIA потенциально могут дать картинку близкую к реалистичной; однако при этом игр с реалистичной графикой, игр которые бы в полной мере использовали ресурсы такой видеокарты до сих пор нет. Почему? А потому что выпустить такую игру можно будет только для ПК, видеоприставки ее по железу не потянут. Потому что на PS4 и на XBOX нет GEFORCE RTX 1080 Ti. Поэтому когда сейчас приступают к разработке новой AAA игры — ориентируются на тех. характеристики популярной игровой приставки (например PS4, которая вышла в 2013 году), и уже только потом портируют игру на ПК. NFS 3 вышла и для PS1 тоже, кстати; так что Вы можете сравнить на youtube качество графики в NFS 3 на PC (с 3dfx ускорителем) и на PS1: на PS1 графика значительно уступала.
                +1
                Вы можете сравнить на youtube качество графики в NFS 3 на PC (с 3dfx ускорителем) и на PS1

                Для тех, кто заинтересовался.
                  +1
                  Не знаю как на PS1, но на PC в игре можно было вид камеры менять (ближе/дальше) и вот на Вашем видео слева вид выбран не самый удачный, имхо (кстати, в комментах под ним тоже об этом писали). Вот тоже хорошее видео той же самой трассы (для PC):
              0
              Никакая это не провокация, а наплевательское отношение к порту. Его отдали какой-то левой студии. Технические характеристики здесь не при чем совершенно.
                0
                Может и так, а может, «наплевательское отношение к порту» игры на ПК имело место быть вовсе не по какому-то там случайному недосмотру менеджеров, но, наоборот, совершалось намеренно и преследовало вполне конкретные цели; например, повышение продаж релиза игры для приставок.
            0
            Мы в NFSII долго резались… и мечтали о 3DFX
              +1
              Мне кажется вы не правы на счет того, что приставки тянут вниз. Я когда-то тоже имел такое мнение. Но сейчас серьезно пересмотрел. Вот в чем дело, приставки с их жизненным циклом в 5-7 лет вынуждают разработчиков заниматься оптимизацией. Шутка ли, но в консолях текущего поколения стоит ноутбучное железо 2013 года, которое было ниже среднего даже на момент выхода. И оно до сих пор неплохо тащит.
              Я вспоминаю свой комп 1998 года — расцвет ПК гейминга: 3D шутеры, стратегии, отличные РПГ, выходящие только на ПК. Вот только незадача, почти топовый комп 1998 года с 3dfx voodo на борту уже к 2000 году был кучей хлама, где на минималках тормозило абсолютно все. Жесткая борьба разработчиков за картинку с одной стороны и такая же конкуренция со стороны железа с другой, приводила к тому, что разработчики были не заинтересованы в оптимизации своих продуктов — на это просто не было времени, нужно было делать круче чем конкуренты и быстрее них. А рост производительности железа не оставлял никаких шансов — хочешь играть — делай апгрейд, никого не волнует, что ПК ты купил пол года назад. А вот когда разработчики игр снова активно стали смотреть в сторону консолей, то и частота апгрейда ПК подзамедлилась. И картинка все хорошеет и хорошеет тем не менее. И это видно даже на консолях. Картинка в играх в начале жизненного цикла и под закат — большая разницы, а железо то не изменилось. Значит оптимизация движков пошла на пользу. А это все важно и для будущего. И interior mapping тому отличный пример. Я сам взял его на вооружение в своей работе.
                +1
                Всё же не уверен, что в 2013 ноутбуки ниже среднего имели 8-ядерный процессор, 8 гигабайт ОЗУ, и видео на уровне GTX 750.

                В ретроспективе пока (текущее поколение ещё не достигло максимума) больше впечатляет X360, какие игры там умудрялись тянуть с приличным качеством на, даже не говоря про всё остальное железо, 512 МБ ОЗУ.
                  –1
                  Там 8 «атомовских» ядер, если что.
                  +1
                  Разрешение экрана телевизора формата NTSC 640x480, а на компьютере обладатели ускорителей старались выставить 1024x768, а то и выше.
                  +1
                  Как раз наоборот. Основной прогресс в графических тенхологиях, реальный, практический, почти всегда идет от консолей, ибо там железо фиксированное и нужно думать. Халтура просто не пройдет, поэтому релиз практически каждой ААА (да и не только. Порой и инди могут удивить как тот же inside) игры это кладезь передовых технологий и практически всегда есть чего рассказать нового, о чем стабильно говорят на GDC.

                  А ПК, ну вышел RTX. Замечательно, только штука бестолковая. Ускорили железом самый обычный рейтрейсинг, который все равно тормозит и для рилтайм приложений не годится даже в примитивных этих отражениях. Чего уж говорить о GI.
                    0
                    кладезь передовых технологий


                    Но есть исключения:
                    TES 4: Oblivion(PS3, XBOX, PC)(2006): gamedev.ru/community/gamedev_lecture/articles/?id=718
                    STALKER: Тени Чернобыля(PC)(2007): gamedev.ru/community/gamedev_lecture/articles/r_e_n_de_r

                    Беседка осилила тени от СТАТИЧНЫХ объектов только в TES 5(2011г.).
                    GSC за год написала новый рендер для чистого неба(Было на GDC2009).
                      0
                      У Вас, видимо, живое воображение, потому что я имел в виду лишь халтуру от инди. Другими словами, я не имел в виду того, что все инди прям плохое. Например, автор моей любимой Another World, Эрик Шайи создал ее вообще с нуля в одиночку (у меня есть диск выпущенный к 15-и летнему юбилею этой игры и там есть видео в котором Шайи рассказывает о том как она создавалась). В целом же, предлагаю Вам познакомится с историей игр которые буквально создали, собственно, саму современную игровую индустрию, какой мы ее знаем сейчас; например первый Wolfenstein, DOOM. Еще хороший пример — первый Bioshock (хотя здесь, скорее, больше подтверждается правота Вашего мнения, т.к. Bioshock 1 изначально создавался одновременно как для PC, так и для Xbox 360).
                        0
                        Я совершенно не понял, к чему здесь инди и какая-то история игровой индустрии. Я всего лишь описал ситуацию как она есть и была многие годы уже. И я очень сомневаюсь, что отсутствие консолей пошло бы на пользу графическим технологиям. Даже с консолями прекрасно видно какой бардак нвидия устраивает все время со своими эксклюзивными фишками. Не будь конкуренции, страшно представить чего бы они вообще творили. А с консолями же получается, что разработчикам в любом случае приходится прилагать усилия и самостоятельно двигать прогресс вперед, выжимать из того, что есть на руках, а не ждать нового поколения видеокарт. RTX нвидии это типичное решение в лоб, которое характерно для ПК рынка. Возьмем не талантом, так грубой силой. Даже 2080 ti не хватает в итоге. Технологии ради продажи железа.

                        Собственно и с 3dfx и прочими творился тот же самый бардак, который закономерно сам собой и загнулся, уступив все рынку консолей. А на ПК началась какая никакая унификация.

                        А bioshock, как и практически все игры того времени, делался в первую очередь под консоли, а именно xbox 360. В то время было типично выбрать одну основную платформу и чаще всего это был именно xbox 360. Что до истории, с ней я прекрасно знаком, но не могу назвать bioshock таким уж значимым ее этапом. Это была отличная игра, но современную игровую индустрию оно не создавала ни в каком виде.
                      0
                      Субъективная вещь. Все-таки кажется, что во времена NFS3 меня бы приятно удивила картинка современных игр.
                      P.S. скриншот ночного города напомнил трассу «Монте-Карло» из NFS: Porsche Unleashed
                      +3

                      Напомнило реализацию в человеке-пауке: https://habr.com/post/424827. Но в форзе, хоть и сделано практически то же самое, результат выглядит на порядок симпатичнее и проработаннее.
                      Имхо, в будущем такой эффект будет использоваться во всех играх, где есть окна. Для окон вдали, а таких окон на сцене большинство, этот способ изумительно подходит. Для окон вблизи при стремлении к реализму можно рисовать честный объёмный интерьер.

                        0

                        Да, там в интерьерах нормой считались двери ведущие в стену.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое