{ "author_name": "Глеб Диденко", "author_type": "self", "tags": ["\u0430\u0440\u0442","\u043e\u043f\u044b\u0442"], "comments": 1, "likes": 32, "favorites": 10, "is_advertisement": false, "section_name": "gamedev", "id": "6216", "is_wide": "" }
Глеб Диденко
3 955
Gamedev

Да будет свет: как работает художник по освещению в 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-отредактировано вручную, «подтягивается» автоматически. Мы смотрим на результат и с этого момента начинаем делать новые итерации арта.

Окружение вне помещений и внутри

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

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

Пытаясь понять свои возможности, мы смотрим на время дня и погоду: солнечные дни позволяют использовать сумеречные лучи, ливень — плотный туман и яркие отражения, а ночь — огонь. Некоторые области работают плохо, и в итоге мы слегка «читерим» с огнями, тенями облаков и частицами.

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

Global Illumination (GI)

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

Кинооператоры могут пользоваться естественным освещением, и они концентрируются на стиле, настроении и режиссуре; так и GI помогает нам с естественной отправной точкой, что позволяет сосредоточиться на искусстве. Иногда возникают красивые каустические эффекты. Но верно и обратное — могут появиться артефакты, которые преувеличивают желаемый результат — тогда приходится использовать черные карты отражений, блокаторы (black bounce cards) или bounce reduction, чтобы всё выглядело натурально.

Свет и геймплей

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

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

Тёмные зоны

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

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

В фильмах затемняются оттенки, мы делаем то же самое, если получается — имитируем это с помощью виньетирования (vignetting) или чего-то вроде этого. Не все экраны телевизоров показывают полный спектр цветов, и иногда тестерам приходится делать мониторы ярче — мы принимаем это во внимание.

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

Разрушаемое окружение

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

При конструировании интерьеров мы можем попросить художников по окружению добавить объекты или проработать детали в зонах внимания игрока около источников света.

Для экстерьеров мы отталкиваемся от солнечного света и работаем с лучами и туманом. Иногда добавляем частицы около света вроде пыли и завитков ветра, чтобы выделить мелкие детали.

Частота кадров

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

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

О лучшем способе осветить сцену

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

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

Преувеличить его значение невозможно. Если ваш ключевой источник света готов, то закончено примерно 80% работы. Останется только добавлять то, что нужно и когда нужно, размещая заполняющие источники и отражения лучей так, чтобы подчеркнуть ключевой. Идеальный набор света — это несколько источников, которые ощущаются, как десятки.

Зачастую в сцене используется слишком много источников и теряется направление. В таких случаях я рекомендую удалять весь свет и начинать снова с ключевого источника

Совет

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

#арт #опыт

Популярные материалы
Показать еще
{ "is_needs_advanced_access": false }

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

Популярные

По порядку

0

Прямой эфир

Узнавайте первым важные новости

Подписаться
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "create", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-549065259", "adfox_url": "//ads.adfox.ru/228129/getCode?p1=bxeub&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid21=&puid22=&puid31=&puid32=&fmt=1&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } } ]