Джои Ленц из Naughty Dog подробно рассказал нам об освещении в UE4: о значениях, источниках, световой температуре, освещении в PBR, ресурсах, по которым можно изучать освещение, а также обо многом другом. На официальном сайте Джои polyplant.co есть множество полезных советов о работе с освещением.
Про PBR
PBR (physically-based rendering, основанный на физике рендеринг) благодаря использованию замеренных данных реального мира предоставляет удобные средства для создания материалов/освещения с предсказуемыми, неизменными результатами при разных условиях освещения. Для студий разработки игр это означает, что их художники могут тратить меньше времени на итерации создания контента и его переработку для создания «корректного» внешнего вида в разных уровнях. В свою очередь, это экономит студиям деньги. На освоение PBR художникам, привыкшим к старым методологиям, потребуется какое-то время. Иногда сложнее всего им избавиться от привычки добавления в albedo-текстуры информации об освещении/затенении. Однако как только они освоятся с этим рабочим процессом, то быстро понимают, что им гораздо проще управлять, чем традиционными средствами рендеринга текстур.
Вот мой последний личный PBR-проект, над которым я работал совместно с Филом Лю: Железный трон из «Игры престолов». Фил моделировал/текстурировал всю эту сцену в Substance Designer, а я отвечал за освещение/постобработку в Marmoset Toolbag 3. Подробнее узнать об этом проекте можно на моём сайте с портфолио.
Я твёрдо уверен, что PBR нужно воспринимать как руководство, а не как единственно верное решение для любых обстоятельств и любой игры. Это одна из частей палитры инструментов художника, и он не может быть заменой креативности. В конце концов, мы должны рассказать визуально историю, то есть иногда приходится идти на художественные вольности и вызывать у аудитории и игроков определённый эмоциональный отклик.
Освещение сцен с помощью PBR
Использование рабочего процесса с PBR создаёт постоянный и предсказуемый стандарт для работы над освещением и материалами. Например, если ограничивать albedo-текстуры рекомендуемым интервалом яркости, то они не будут казаться слишком тёмными или освещёнными по сравнению с другими элементами окружения. В этой части процесса основную роль играет отражённое освещение. Если базовые цвета слишком тёмные, то текстуры могут поглощать больше энергии света, чем отражать, делая таким образом пространство более плоским. С другой стороны, слишком яркие значения albedo могут отражать слишком много непрямого освещения, создавая слишком яркие области. Та же самая концепция справедлива и для уровней насыщенности. Например, если текстуры объекта слишком насыщены, он может запечься с результатами освещения, которые окажутся меньше нужных и чересчур насыщены. В то время как ограничение значений определёнными интервалами позволяет достичь фотореалистичных результатов, оно также сохраняет общую сбалансированность сцены, объекты соответствуют друг другу и ощущаются находящимися в одной вселенной. Однако если вы хотите придать специфический внешний вид или создать точку фокуса, то иногда для достижения нужного эффекта лучше всего пренебречь руководствами по работе с PBR.
Ниже показан пример интервалов яркости albedo для UE4, взятый из раздела PBR Guide на моём веб-сайте.
Сверху вниз: древесный уголь, свежевыпавший снег, металлическая поверхность.
Ниже показан ещё один пример, но уже для процентных значений насыщенности albedo в UE4, взятый из раздела PBR Guide на моём веб-сайте.
Сверху вниз: лакированная древесина, тёмная почва, зелёная растительность, золото, песок, грубая древесина
Цветовая температура
Многие художники при работе с цветом привыкли использовать значения RGB, но при использовании кельвинов цветовая температура требует совсем другого подхода. Этот процесс используется в основном для описания цветов естественных источников освещения. Одним из примеров может служить солнце, которое в зависимости от времени суток имеет разную цветовую температуру. Оно теплее на восходе/закате и более нейтрально в полдень. Поэтому если художникам нужны физически точные значения цветов освещения, то для этого удобно использовать цветовую температуру. Кроме того, некоторые лампы искусственного света намеренно используют цветовую температуру, и это полезно знать, если вы хотите имитировать определённые значения в своей сцене.
Ниже показан пример значений цветовой температуры.
Значения света
Применение физических единиц измерения и значений освещения позволяет быстр ополучить фотореалистичные результаты. Однако даже при использовании стандартов PBR я люблю после него добавлять проход художественной обработки. В частности, в UE4 я использую значения PBR как фундамент, но иногда на их основе создаю что-то новое для улучшения внешнего вида и эстетики своих проектов. Например, для яркости солнца я использую значения в люксах, для неба/испускающих свет текстур — кд/м², а для источников искусственного освещения люмены/канделы. Иногда я даже исследую значения реального мира, чтобы применять их в освещении UE4, но затем могу регулировать их яркости/цвета, если это улучшает визуальный эффект. Или я могу строго следовать значениям реального мира, а затем изменяю внешний вид, только когда приступаю к цветокоррекции (или непосредственно в UE4, или в каком-нибудь стороннем приложении, например Nuke, Photoshop или Davinci Resolve) и настройке постоэффектов. Существует бесчисленное множество способов обработки и всё зависит от ваших предпочтений.
Для цветокоррекции сцены можно использовать таблицы поиска (Lookup tables, LUT). Существуют и другие способы цветокоррекции: цветовые круги/кривые, при рендеринге дающие более точные результаты.
Источники освещения
Некоторые художники полагаются только на параметры солнца/неба, но освещение можно сделать гораздо более богатым. В сцене на открытом воздухе я использую солнце и небо в качестве основы (это тоже очень может зависеть от времени суток, погоды и т.д.). Допустим, при работе над играми определённого типа это может быть единственным, что нам доступно, из-за технических ограничений производительности. Если таких ограничений нет, то лично я фанат использования заполняющего/вспомогательного освещения, позволяющего создавать точки фокуса, зоны интереса, выстраивать слои элементов с заднего до переднего плана, увеличивать видимость/отражения в локальных пространствах, направлять игрока в нужную сторону, создавать необходимое настроение/атмосферу, градиенты/цветовые контрасты для выражения формы, и так далее. На этом всё не заканчивается: освещение также можно использовать для cookies (в UE4 они называются «light functions»), пятнистого/отражённого освещения, визуальных эффектов и многого другого. Хоть некоторые из этих методов не основаны на физике, они предназначены для улучшения внешнего вида и игрового процесса.
Вот параметры освещения light functions движка UE4:
С другой стороны, внутреннее освещение может потребовать немного иного подхода. Я фанат использования портальных источников освещения в окнах и других проёмах, ведущих из интерьеров во внешний мир. Это обеспечивает улучшенную направленность небесного освещения для заполнения внутреннего пространства по сравнению, например, с применением прожекторного/прямоугольного источника освещения. Не говоря уже о том, что портальные источники освещения могут обеспечить повышение качества запекания и снизить визуальный шум в картах освещения (в UE4 с этим могут помочь и Lightmass Importance Volumes). Более того, я могу даже добавить дополнительные заполняющие/вспомогательные источники освещения с более мягким затуханием, чтобы дополнительное освещение ещё глубже проникло в окружение интерьера. Эти источники освещения могут иметь бОльшую насыщенность и, возможно, цветовой сдвиг, симулирующий изменение цветовой температуры на основании расстояний затухания по сравнению с источниками портального освещения. Это, как мне кажется создаёт лучшую форму и обогащает пространство.
Вот портальное освещение UE4, доступ к которому можно получить в разделе Modes:
За пределами экрана расположено окно, позволяющее свету попадать в комнату. Единственное различие между двумя изображениями в том, что в одном я использую рядом с окном портальный источник освещения, а в другом источников нет.
Искусственное освещение для кнопок и других элементов
Во множестве мелких деталей, например, на кнопках, используются сияющие текстуры, называемые картами испускания (emissive map). Их можно использовать на этапе запекания для испускания света в сцене. В этой технике здорово то, что испускаемый свет основан на текстуре и расположение этих пикселей относительно координатам пространства мира. Это обеспечивает более точные результаты по сравнению с использованием, например, точечного/прожекторного/прямоугольного источника освещения для симуляции излучаемого кнопкой света. Для лучшего контроля над яркостью испускаемого освещения я настраиваю силу текстуры испускания (emissive texture). В UE4 это легко можно реализовать через Material Editor (умножив текстуру испускания на значение) или настроив параметр Emissive Boast статичных мешей (которым назначены испускающие свет материалы). В текстурах испускания можно использовать значения в кд/м².
Вот пример испускающего свет материала из UE4 и различные способы, которыми можно настроить силу испускания:
Отключение/включение способности статичного меша испускать статичное освещение:
При работе с более абстрактными источниками освещения, например, с волшебными порталами или научно-фантастическими элементами, можно применять различные методологии. Иногда достаточно просто визуальной проверки. Однако вы ограничитесь ею, а эти источники освещения/эффекты используются на нескольких уровнях, то таком случае необходимый уровень целостности поддерживать будет трудно. Поэтому я предпочитаю другую технику: сравнивать значения этих эффектов освещения со значениями, задаваемыми PBR. Даже если в них не используются заданные значения реального мира, их по крайней мере можно использовать для уравновешивания и сравнения с убедительными мирами, в которых они гармонично существуют. Если задать базовые стандарты, даже для более фантастических элементов освещения, то можно сэкономить время на их переработку, а также на создание остальной графики.
Советы для новичков
Сегодня в Интернете есть множество ресурсов для изучения освещения. Я в первую очередь рекомендую не ограничиваться только UE4. Изучайте как можно больше разных сред. Учитесь кинематографии, сценическому освещению, изучайте игры, классические картины, фотографии, устройство подсветки в парках развлечений, общайтесь с профессиональными художниками по освещению, рассматривайте концепт-арт, комиксы, природу, и так далее. (По моему мнению, лучшим учителем для художника является природа). Сначала изучите основы художественного мастерства, потому что хоть и важно разбираться в работе инструментов, сами по себе они не создадут красивой картинки, и к тому же постоянно меняются.
Качественные материалы по освещению можно найти в туториалах Gnomon Workshop Джереми Викери. А у Тилманна Милде на YouTube есть отличная серия Lighting Academy по освещению UE4. Наконец, если вам нужны руководства по PBR-материалам/освещению в UE4, то на моём сайте есть целый раздел, посвящённый только этим темам. Я стремлюсь постоянно обновлять его, начните изучение по ссылке.
Об авторе
Меня зовут Джои Ленц (Joey Lenz). Сейчас я работаю ведущим художником по освещению уровней в Naughty Dog и в данный момент участвую в создании The Last of Us Part II.
Я очень чётко помню, что вдохновляло меня в детстве. Когда мне было примерно пять лет, родители купили на Рождество SNES. В комплекте с ней поставлялась Super Mario World. Боже, с каким удовольствием я разворачивал этот картридж! Момент «эврики» настал, когда на первом уровне я подпрыгнул и ударил ящик со знаком вопроса. Из него выскочил Йоши, и это меня совершенно потрясло. Я был заворожён работой интерактивной механики, несмотря на то, что тогда ничего в этом не понимал. Так во мне возник интерес не только к играм, но и к их внутренней работе, а Йоши изменил мою жизнь.
Моя карьера в цифровом искусстве началась с графического дизайна и визуальных эффектов. Я участвовал в мелких одноразовых проектах и в создании независимых фильмов, но настоящая карьера в игровой индустрии началась с моего лучшего друга Фила Лю. В то время он учился дизайну игр и предложил мне попробовать изучить Unreal Engine 3. Почти сразу же я влюбился в графику реального времени движка и был очарован уровнем его интерактивности. Я нашёл в играх идеальное сочетание факторов: можно было взять визуальное качество кинематографа и оптимизировать его для использования в цифровой среде реального времени. С тех пор мне удалось поработать над различными игровыми сериями, такими как Call of Duty, Halo, Forza Motorsport, и т.д.
Интервью проведено Кириллом Токаревым
Автор: PatientZero