{"id":3883,"url":"\/distributions\/3883\/click?bit=1&hash=210a1d94d529957f1d27c0e400035f840d67e707d953e72623e29dd6f59d78f7","title":"\u0417\u0432\u043e\u043d\u0438\u0442\u044c \u0438\u0437 \u041a\u0430\u043b\u0438\u043d\u0438\u043d\u0433\u0440\u0430\u0434\u0430 \u0432 \u042f\u043a\u0443\u0442\u0438\u044e \u043f\u043e \u0432\u0438\u0434\u0435\u043e \u0431\u0435\u0437 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a","buttonText":"\u0410\u043b\u043b\u043e","imageUuid":"bc8e606b-9a50-5550-a16e-3fed09971ed5","isPaidAndBannersEnabled":false}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0
28 комментариев
Написать комментарий...
Andrey Apanasik

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

Ответить
Развернуть ветку
Производственный крюк

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

Ответить
Развернуть ветку
Judge Jameson
Как освещается Манхэттен

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

Ответить
Развернуть ветку
Yes, Your Grace

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

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

Как вы сына назовете, так она и поплывет

Ответить
Развернуть ветку
Chornolio .

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

Ответить
Развернуть ветку
Владимир Семыкин
Автор

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

Ответить
Развернуть ветку
SoulRiets

А причем здесь левел-дизайн? Разве отражения это не работа левел-артистов?

Ответить
Развернуть ветку
Максим Карпов

Неа

Ответить
Развернуть ветку
Bigguy Foryou
Гальперин

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

Кроме дейс гон, ведь обзорщик дейс гона наиграл три часа.

Ответить
Развернуть ветку
Самарский Артем

Но ведь он Гальперов

Ответить
Развернуть ветку
Bigguy Foryou

Ну да.
Был бы в Сони Гальперов, а не Гальперин, так ретёрналу бы натянули не до похвально, а до изумительно.

Ответить
Развернуть ветку
Самарский Артем

Ты на стопгейм не ходи тогда

Ответить
Развернуть ветку
принц снежных эльфов

Забавно что Гальперов у них главный сониеб

Ответить
Развернуть ветку
Ден Лещенко
Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Rendz

ПроцедурныЕ

Ответить
Развернуть ветку
Владимир Семыкин
Автор

спасибо, поправил

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Самарский Артем

По старинке лайтмапами

Ответить
Развернуть ветку
klopizh

неправильный ответ

Ответить
Развернуть ветку
Самарский Артем

Ну дай хотя бы полбалла за "по старинке"

Ответить
Развернуть ветку
klopizh
Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Самарский Артем

А это, фалк, неправильный ответ

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Taler Darden

Рентген Гальперин

Ответить
Развернуть ветку
Empty Node
в первом содержится RGB и альбедо,

Там просто RGB альбедо, без и.

Ответить
Развернуть ветку
Mike Kozlov

Спасибо за перевод.
Прикольные решения, однако!

Ответить
Развернуть ветку
Читать все 28 комментариев
null