Несколько слов о том, как работают скайбоксы, снег, дождь и ветер
Погодные явления не только добавляют играм реалистичности, но и дополняют геймплей. Без них любые ААА-проекты смотрелись бы совсем иначе. Благодаря ветру, дождю, грозам и банальной радуге, игровой мир преображается — меняется атмосфера и само восприятие происходящего игроком.
Многослойные скайбоксы: анимации, рельеф и интересные решения
Скайбоксы — вот, с чего все началось. Это буквально самый простой способ, как окружить игровую локацию фоном без затрат со стороны производительности. Разработчики просто помещают мир в куб, каждая грань которого — рисунок неба, гор или еще чего. Уверены, вы десятки раз видели подобное в старых играх. В Half-Life, например.
По мнению художника Брайана Адамса, скайбокс может влиять на сюжет, атмосферу и эмоции тех или иных сцен. Все это делается с помощью правильного подбора времени суток, цветового тона и анимации.
К примеру, в No Man’s Sky по скайбокусу пролетают космические объекты: звездолеты и спутники. Казалось бы, маленькая незначительная деталь. А все равно создается ощущение, как будто мир живет вокруг игрока.
Еще больше объема скайбоксу придает рельеф. Те самые горы на горизонте, до которых вы никогда не сможете дойти. Подобные хребты являются частью трехмерного куба и находятся между рисунком неба и самой локацией.
В уже упомянутой серии Half-Life это заметно лучше всего. В первой части горы за границами карты — плоская картинка, которая движется отдельно от скайбокса. В Half-Life: Source это уже полноценные объемные хребты, которые также находятся между локацией и небом. Ну а монструозная цитадель из второй части игры — 3D объект, который приближается к игроку по мере прохождения.
Забавно, что скайбокс — не всегда куб. В некоторых играх это сфера, как в WoW. Разработчики из Blizzard вообще используют интересный подход к созданию неба — matte painting. Они берут за основу реальные фотографии и просто дорабатывают их.
«Амбициозный концепт вроде древнего города в джунглях или горящего космического корабля в небе может занять у 3D-художников тысячи рабочих часов; однако того же результата можно добиться с помощью matte painting на обычном холсте за пару недель»
Филипп Жэнг — художник Blizzard
Еще одна интересная технология — использование HDR-картинок для реалистичного неба. Именно так поступили разработчики из Playground Games при создании Forza Horizon. HDRI позволяет рассчитывать освещение прямо из самой картинки из-за большего диапазона значений, чем у обычных текстур.
Для создания реалистичного неба достаточно просто сделать множество фотографий, которые после совместят в одну большую картинку.
Облака: система Nubis и шум Перлина-Ворли
Очень важную роль в любом скайбоксе играют облака. Раньше разработчики поступали просто — размещали плоские картинки прямо на «небе» и двигали их, вращая текстуру. Сейчас же все проекты стремятся к объемному и красивому небу.
Большой вклад в индустрию сделала студия Guerilla Games во время разработки Horizon Zero Dawn. Для создания реалистичных объемных облаков они использовали систему Nubis, которую внедрили в свой движок Decima.
Технология построена на нескольких этапах:
- Система определяет места, где будет генерировать облака. Их размер и вид.
- Затем определяется плотность облаков и их форма.
- После этого система настраивает свет, его рассеивание и поглощение.
- С помощью специального шейдера готовые облака отображаются в игровом мире.
Кстати, для создания формы облаков часто используется шум Перлина-Ворли. Это уже готовый математический алгоритм для создания дыма, облаков, тумана и огня, который можно найти здесь. Некоторые разработчики с его помощью генерируют не только погодные эффекты, но и полноценные миры.
Все об осадках: снег и дождь
Самый распространенный способ создания осадков — система частиц, которая зависит от разных параметров: направления, скорости, размера или же вообще цвета. В таких системах одна частица — это капля дождя или снежинка. Конечно, такой способ очень сильно бьет по производительности, поэтому его можно оптимизировать, закрепив к игровой камере.
Капли и брызги в Remember Me
Существуют и более производительные решения. К примеру, изобразить все осадки в качестве текстур. Тогда количество капель не будет оказывать влияние на игру. Более подробно о таком подходе рассказал Себастьен Лагард — один из сотрудников Dontnod. Для наглядного объяснения он взял принцип «текстурного дождя» из игры Remember Me.
Для имитации эффекта дождя разработчики разместили четыре слоя текстур. Все они накладываются на цилиндр и конусы, внутри которых располагается модель игрока. Во время дождя вся эта конструкция двигается, из-за чего и создается иллюзия.
Большего реализма придает наклон фигур, который имитирует ветреную погоду. Из-за этого кажется, будто капли падают под разным углом. Ну и для уникальности рисунка капель разработчики применили различные шумы — так паттерн не будет повторяться.
Конечно, дождь завязан не только на самих каплях, падающих с неба. Поэтому пришлось потрудиться над реалистичными всплесками воды в моменте, когда капля касается земли. Для этого из игрового неба выпускают вспомогательные невидимые лучи, а на месте их соприкосновения с землей создают частицы брызгов. Происходит это только в определенном радиусе, для оптимизации.
Стекающая вода, иллюзия отражения и брызги на камере
Еще один важный аспект для создания дождя — стекающая вода. Сложность корректного стекания в том, что нужно учитывать рельеф и уклон поверхности. Авторы Remember Me, к примеру, использовали сползающую текстуру с кубической картой, у которой выставлено низкое разрешение.
Вообще, кубическую карту используют для создания отражений. Это своего рода иллюзорное зеркало — куб, на гранях которого нарисовано отражение.
Атмосферы во время дождя добавляют капли на игровой камере. Интересно, что разработчики подходят крайне оригинально к созданию эффекта. Поэтому в сети можно найти множество самых разных решений.
«Важный элемент погружения в дождливой сцене — капли на объективе камеры, когда она направлена вверх. К реализации такого эффекта всегда подходят творчески»
Лори Мишель — разработчик Dontnod Entertainment
Самое простое решение — создать систему частиц перед лицом игрока и просто привязать к нему. Это не будет сильно нагружать игру, так как капель очень мало.
Снег и образование сугробов
Чтобы показать осадки на земле часто используют уже упомянутый выше шум Перлина. Как, к примеру, в игре Overland или в Days Gone. Таким шейдером можно постепенно покрыть поверхность как одним слоем, так и небольшими сугробами.
Другой интересный способ разместить снег на поверхности — использовать вектора, которые расположены перпендикулярно полигонам — нормали. В таком случае шейдер смотрит на разницу между нормалью и направлением снега и определяет, как именно должен появляться эффект на определенной плоскости.
Следы на снегу
Для воссоздания реалистичных следов от обуви или колес на снегу используют тесселяцию DirectX — специальный процесс, который дополняет полигональную сетку. Но не всем такой вариант подходит. Разработчики Batman: Arkham Origins здраво прикинули, сколько нагрузки для системы будет от сотен НПС и машин в густонаселенном городе, и нашли другое решение.
Вместо буквального продавливания снега они просто меняют его текстуру в местах воздействия. Звучит малость непонятно, но все проще, чем кажется.
- Сначала система определяет область для объектов — радиус вокруг игрока.
- В этом участке, на всей его площади (от тротуаров, до крыш небоскребов) создается специальная зона — усеченная призма — в которой и происходит деформация.
- Как только появляется предмет, который должен оставить след — зона изменяется согласно карте высот. (Вся карта изначально одного цвета — черного. Если появляется объект, который давит на снег, место окрашивается белым)
- С помощью шейдера и происходит деформация. На придавленные зоны накладывается специальный материал.
Такой нестандартный подход очень хорош в своей производительности. Но визуально смотрится не так хорошо, как с тесселяцией. Если вам интересно более подробно почитать о процессе, то разработчики из WB Games Montreal поделились своими комментариями в презентации на GDC2014.
Природные эффекты: туман и радуга
Раньше разработчики не особо «запаривались» с эффектом радуги — просто крепили ее на скайбокс или другой слой неба. Но в современных играх такая халтура никого больше не устраивает. Радуга в 2022 году — это полноценная технология, связанная с рассеянием света.
В RDR2 разработчикам вообще не нужно контролировать места, где должна появиться радуга. Все благодаря новой системе частиц, которая напрямую зависит от погоды в конкретный момент времени, а также от положения Луны и Солнца. Система сама формирует радугу, ее расположение и форму.
Интересно разработчики из Rockstar обошлись не только с радугой, но и с туманом. Если раньше в играх его создавали с помощью огромного количества полупрозрачных спрайтов, то сейчас он стал по-настоящему объемным. В Red Dead Redemption 2 туман появляется по тому же принципу, что и облака — с помощью шума.
Создание ветра: огромные явления и просто работа воздушных потоков
Очень многие ААА-игры уделяют внимание симуляции ветра. Интересно, что механика используется в совершенно разных аспектах: в The Legend of Zelda: Breath of the Wild по ветру можно передвигаться с помощью планера, а в Ghost of Tsushima он выступает в роли указателя.
Ветряные потоки и ураган в Just Cause 4
В Just Cause 4 ветер играет очень большую роль. Во время разработки Avalanche хотели наполнить весь игровой мир ветряными потоками, но столкнулись с проблемой оптимизации и производительности. Уж слишком много различных эффектов и подвижных объектов, которые нужно постоянно обрабатывать. Тогда они решили пойти по пути наименьшего сопротивления и избавиться от большинства потоков..
Теперь вся карта покрыта «лёгким ветерком», а что-то глобальное и разрушительное встречается лишь изредка. К примеру, огромный торнадо, который просто гуляет из стороны в сторону и взаимодействует с кучей объектов.
Этот монструозный ураган состоит из кучи цилиндров, которые закреплены на одной кривой оси в центре. Сама кривая двигается, создавая реалистичный эффект, а шейдеры на кольцах добавляют объемности и сглаженности всей конструкции.
Три вида потоков воздуха в God of War 2018
Совершенно другой подходу к вопросам ветра можно увидеть в God of War 2018 года. Там все ветряные потоки разбили на три категории: статические, динамические и противодействующие.
- Первые, как самые простые, банально существуют в любой сцене и зависят от времени и передвижений игрового персонажа. Для создания такого эффекта разработчики использовали уже известный нам шум.
- Вторые — динамические — уже интереснее. Они постоянно окружают игрока, словно жидкость, на симуляции которой и основаны. Когда игрок движется, потоки меняются вместе с ним.
- Противодействующие существуют, чтобы показывать, как ветер влияет на окружение. Интересно, что такие потоки всегда направлены против движения объектов. Но если динамический и статический вид совпадут с направления движения игрока, то противодействующий ветер будет отсутствовать.
В этом материале мы вкратце рассказали о том, как разработчики создают самые разные погодные явления. Если вам есть, чем дополнить статью — милости просим в комментарии. Будем рады узнать что-нибудь новое по теме!
Иван Гвоздь