Как освещается Манхэттен: процедурные отражения и источники света в Marvel's Spider-Man

Модульный город, построенный на основе облаков точек.

Старший технический художник Insomniac Games Иксрей Гальперин (Xray Halperin) выступил с докладом на GDC 2019, в котором рассказал, как команда использовала процедурные инструменты для создания глобального освещения в Marvel's Spider-Man. Мы выбрали из лекции главное.

Задача Гальперина заключалась в поиске процессов, которые можно автоматизировать, чтобы облегчить работу художников. Одним из таких элементов разработки оказалась расстановка освещения по всему Манхэттену.

Как освещается Манхэттен: процедурные отражения и источники света в Marvel's Spider-Man

В докладе Гальперин рассказал про три важные составляющие своей работы:

  • расстановку освещения;
  • расстановку Light Probes;
  • генерацию сетки освещения.

Для реализации системы глобального освещения команда разделила карту мира на 726 тайлов, размер которых составляет 128х128 метров. Эти тайлы используются для оптимизации загрузки контента — когда Человек-паук попадает в тайл, соседние зоны подгружаются, а предыдущие выгружаются из памяти. Несмотря на удобство такой системы, она накладывает ограничения на дальность отражений в игре.

Как освещается Манхэттен: процедурные отражения и источники света в Marvel's Spider-Man

Чтобы генератор мог автоматически поместить объекты освещения в игровой мир, разработчики сформировали список правил. К примеру, у фонарных столбов прописано, как далеко они должны находиться от обочины и друг от друга.

Как освещается Манхэттен: процедурные отражения и источники света в Marvel's Spider-Man

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

Так разработчики анализируют уличное освещение. Красными прямоугольниками помечены зоны с недостатком света. Туда нужно добавить дополнительные фонари
Так разработчики анализируют уличное освещение. Красными прямоугольниками помечены зоны с недостатком света. Туда нужно добавить дополнительные фонари

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

Так Light Probes представлены в виде ассета
Так Light Probes представлены в виде ассета

Первый этап размещения Light Probes — разделение тайла на четыре зоны. Затем генератор выбирает оптимальное место для Light Probes — обычно оно находится на пересечении крупных дорог.

Четыре Light Probes на тайл
Четыре Light Probes на тайл
Light Probes могут разместиться и на пересечении небольших дорог
Light Probes могут разместиться и на пересечении небольших дорог

Разработчики создали систему, благодаря которой Light Probes могут создавать отражения для всего города. Близкие объекты отражаются в высоком разрешении, а далёкие — в низком.

В Light Probes содержится кубическая карта, каждая сторона которой имеет разрешение 512х512. Для текстур отражения используется технология mip-mapping, которая позволяет создать ещё пять уровней кубической карты — каждый представляет свою степень глянцевости.

Кубическая карта для Light Probes
Кубическая карта для Light Probes

Чтобы создать отражения для всего города, а не только для соседних тайлов, игра всегда хранит в памяти самый нижний уровень mip-текстуры, а также все здания виртуального Манхэттена — вместе эти элементы составляют нижний LOD этого мира. По словам Гальперина, весь «снимок» геометрии мира весит около 101 Мбайта, а нижний уровень mip-текстуры — около 90 Мбайт.

Но как вся геометрия острова умещается всего в 101 мегабайт? Разработчик рассказал, что всё дело в особом подходе к созданию окружения. Все здания состоят из множества модулей, которые размещаются поверх облака точек — именно эти точки ответственны за форму каждого строения.

Облако точек
Облако точек
Геометрия самих зданий
Геометрия самих зданий

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

Как освещается Манхэттен: процедурные отражения и источники света в Marvel's Spider-Man
Как освещается Манхэттен: процедурные отражения и источники света в Marvel's Spider-Man
Как освещается Манхэттен: процедурные отражения и источники света в Marvel's Spider-Man

Для каждого здания команда создаёт по два атласа текстур: в первом содержится RGB альбедо, во втором — отражения, глянцевость и излучение. Атласы каждого здания собраны из кусочков атласов соседних построек.

Атлас, который используется зданиями в нескольких соседних тайлах
Атлас, который используется зданиями в нескольких соседних тайлах

Геометрия игрового мира также используется для создания карты освещения, которая нужна для просчитывания рассеянного света в открытом мире. С помощью этой карты можно понять, как каждый тайл влияет на своё окружения.

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

Как освещается Манхэттен: процедурные отражения и источники света в Marvel's Spider-Man
Как освещается Манхэттен: процедурные отражения и источники света в Marvel's Spider-Man
134134
28 комментариев

Спасибо за перевод. Жаль, что QA-секции не переводишь, там много интересных вопросов бывает. Конкретно тут:
1. Был неплохой вопрос про теги и то, как они исключают объекты из алгоритма по созданию импостеров. К примеру, пустышки не для всей геометрии — некоторые части зданий (часто на крышах), не понижают в качестве. Это относятся к кондеям, бочкам с водой и прочим объектам.
2. Они не встроили Худини в свой движок, но используют его в хедлес моде, вызывая его через шел.
3. Рефлекшн мепы обновляются в среднем дважды в секунду.

27
Ответить

*говорит на девелоперском

32
Ответить

Как освещается МанхэттенВопреки преступлениям Человека-Паука!

25
Ответить

Согласен. Человек-Паук - угроза!

2
Ответить

Старший технический художник Insomniac Games Иксрей Гальперин (Xray Halperin)Как вы сына назовете, так она и поплывет

10
Ответить

Долго переводили что-то.

Ответить

так запись лекции опубликовали лишь несколько дней назад

4
Ответить