Да будет свет: как работает художник по освещению в Naughty Dog
Принципы и приёмы, использованные при создании Uncharted 4.
Художник по освещению студии Naughty Dog Гейб Бетанкур (Gabe Betancourt) поделился опытом с порталом 80.lv. Он трудится в игровой индустрии уже 15 лет и до Uncharted приложил руку к серии Call of Duty и Tomb Raider Underworld.
DTF публикует перевод статьи.
Выставляя свет, мы приводим цвета и настроение сцены в соответствие с развитием истории и геймплея, используя солнце, небо, тени и экспозицию. Меняем уровень атмосферного освещения, эффектов постобработки и иллюминации источника рендера так, чтобы всё это комплексно работало в режиме реального времени. Пытаясь правильно передать ощущения от дня или ночи, мы смешиваем элементы, используем туман, сумеречные лучи, пыль, свечения, отражения, подсветку, тени, огни, вспышки и другие искусственные источники света, а также карты освещения (lightmaps), gobo и LUT-ы.
Художники корректируют направление источников света: оно должны гармонировать с материалами, персонажами и окружением. Так мы создаём ощущение глубины и масштаба сцены и выделяем детали. В зависимости от того, что требует арт-отдел, мы делаем акцент на стилизацию или фотореалистичность. Художников по освещению в геймдеве зачастую можно приравнять к главному оператору (DoP) в киноиндустрии.
Мы очень тесно сотрудничаем с другими командами, ответственными за материалы, окружение и персонажей; с концепт-художниками, инженерами, создателями эффектов и арт-директором, чтобы быть уверенными в том, что настроение сцены соответствует истории и геймплею.
Порой материал или дизайн могут работать против идеального освещения — тогда мы просим сместить объекты, изменить тон текстур, палитру, перенести стены зданий или создать провалы в крышах.
Мы делимся творческими советами по полировке некоторых сложных деталей. Большая часть художников освещения приходят из смежных специализаций — иллюстрации, графического дизайна, моделирования окружения или фотографии, и привносят аспекты этих профессий в свою работу.
Да, работа ведётся почти со всеми отделами, но не одновременно. Пока у нас есть заданное настроение, направление сцены (полученное из концепт-артов или описания), мы работаем автономно, только консультируемся с другими отделами на разных стадиях, чтобы все двигались в одном направлении.
Если же мы отклонимся от курса — любой отдел может нам об этом сказать. Правда, из-за длительной совместной работы, чаще всего всё идёт правильно, а иногда даже круче, чем мы ожидаем.
Обычно мы включаемся в работу в середине препродакшна, когда дизайнеры уже набросали геймплей с мешами-блокерами и определилось направление истории.
Мы начинаем делать наброски света, неба, огней, тумана и оцениваем, как они вместе выглядят. Если результат подходит, «продаёт» видение сцены и вовлекает, то продолжаем. После тестирования отделом качества, мы выделяем и правим слишком тёмные или слишком светлые для геймплея места.
В процесс мы включаемся довольно рано, но в полную силу начинаем работать только в середине и конце проекта, уже после того, как большинство отделов завершили свою часть дела.
Изредка мы начинаем работать уже с мешами-блокерами, но чаще всего получаем 3D-наброски окружения с отдельными детализированными участками. Некоторые художники считают, что с мешами-блокерами работать невозможно, поскольку они слишком просты и недоработаны.
В какой-то степени они правы, но с опытом я стал понимать, что расставлять ключевые источники света на ранней стадии разработки куда полезнее для геймплея. Вы сразу видите, на каких участках могут возникнуть проблемы, где будут переходы света — к тому же, это помогает вдохновить команду. Другие отделы лучше понимают, что детализировать или какие цвета использовать в сочетании со светом.
Очень важно сразу придавать мешам правильные оттенки. Если цвета основных параллелепипедов приближены к цвету итогового окружения (тёмно-зелёный, приглушённо-коричневый, ярко-жёлтый, прохладный серый), а не просто обозначены красным/зелёным/синим и, к тому же, правильно расставлены акценты, другим отделам будет куда проще правильно распределить цветовую схему.
Обычно я работаю в Maya и отдельных инструментах, многие из которых разработаны в компании.
Он должен провоцировать. Создаёт ли свет ощущение присутствия, вызывает ли он мечты, страх, радость, гнев, благоговение, умиротворённость или грусть в момент, когда игрок заходит в помещение?
Во многом это попытка «запечатлеть» чувства, внутренние ощущения. Чтобы сделать это правильно, нужно следить, как реагируют на окружение другие люди. Это один из самых сложных вызовов.
Второй по сложности — избегать плоских форм. Свет создаёт глубину. Правильно освещённая зона заставляет сфокусироваться на направлении (то, что мы называем «направленностью»), но также передаёт объём форм, разделяет силуэты объектов по планам: переднему, среднему и заднему.
С технической точки зрения, мы разбираемся с картами света, UV-артефактами, UV-разделением пространства, ограничениями памяти и слишком светлыми или тёмными для геймплея зонами. Если во время «запекания» появляются артефакты и незапланированные пятна — ищем причину.
Некоторые источники света могут отображаться правильно или неправильно, вне зависимости от того, использовали ли мы правильные исходные текстуры (это касается, например, неба). Чтобы добиться наибольшего драматизма, мы стараемся использовать максимальные значения для освещения, но отказываемся от этого подхода, если он противоречит геймплею.
Иногда мы преувеличиваем значения, чтобы провести игрока по области или сделать врага заметнее во время боя. Элементы на переднем плане не всегда хорошо сочетаются с фоном — в таком случае, мы ищем обходные пути решения проблемы.
Величайшее испытание — и главное преимущество — это наш движок, поддерживающий динамические изменения. Он хорош тем, что можно быстро корректировать освещение, не зависеть от «запекания» и сравнивать разные варианты вида сцены по мере работы.
Минус в том, что команда из более чем 200 человек работает над одним и тем же. Сегодня всё выглядит прекрасно, а следующим утром — чудовищно, и в чём причина — неизвестно. Начинается расследование и выясняется, что один сотрудник попросил другого об услуге, не зная о том, что это затронет работу третьего. Так что коммуникация очень важна.
Порой мы меняем заданное направление работы из-за исправлений от других сотрудников. Это палка о двух концах — ты должен сотрудничать с остальными участниками команды, чтобы достичь отличного результата, но тебе также приходится выходить из зоны комфорта и видеть всю картину разработки.
Карты освещения используют качественные преимущества предварительного рендеринга — трассировку путей (path tracing), трассировку лучей (raytracing) и глобальное освещение — для детальной отрисовки отражений лучей, теней и окклюзии. Без предварительного рендеринга игра если и запустится, то будет тормозить до неиграбельности. Либо всё будет работать хорошо в крупномасштабном окружении, а на коротких дистанциях не дотянет до нужного качества.
Трассировка лучей сильно нагружает компьютер. «Запекание» позволяет перенаправлять мощности CPU и GPU на обсчёт вершин полигонов, ИИ, физику, частицы и так далее. Но технологии развиваются и глобальное освещение в реальном времени используют всё чаще, как и динамически обновляемые карты освещения.
Нельзя сказать, что все проекты выигрывают от карт освещения. Некоторые игры с открытым миром или основанные на «хабах» работают гораздо лучше без них, потому что у них слишком огромные локации. Карты идеально подходят для кинематографичного качества и приключенческих проектов.
Как правило, сначала нужно оценить, что полезно для карты освещения. «Запекание» в вершины полигонов порой показывает хороший результат и экономит пространство. Есть простой метод, который я люблю использовать — сравнение размеров геометрии и героя. Для всего, что больше персонажа, лучше использовать карты освещения, а для того, что меньше, подходит вершинное «запекание» (vertex baking).
Это работает, поскольку мы часто судим о масштабе по размеру персонажа и наше восприятие деталей подстраивается, компенсируя объекты, нависающие над героем. Исключения — круглые или длинные участки вроде колонн или дверных проёмов. Книжные полки, вероятно, будут выглядеть лучше с картой освещения, но если они расположены на уровне колена, это может быть неважно.
Дальше мы пытаемся убедиться в чистоте UV-слоёв (UV layouts). Жизненно необходимо выжать максимум из объёма текстур, которые могут быстро заполнить память.
Затем мы оцениваем, оправдывает ли разрешение карты освещения занимаемое ей пространство экрана. Стоит ли она используемого масштаба? Слишком плотные сжимаем, слишком маленькие — увеличиваем. Гора на заднем плане прорабатывается менее детально, чем пещера на переднем, поскольку игрок никогда до неё не доберётся.
Затем, всё, что не было UV-отредактировано вручную, «подтягивается» автоматически. Мы смотрим на результат и с этого момента начинаем делать новые итерации арта.