что такое динамическое освещение в играх

Что такое динамическое освещение в играх

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

Качество освещения (Lightning Quality)

То, насколько правдоподобно симулируется освещение в игре. Если это единственный подобный параметр в игре, то именно в эту настройку заложили уйму других, будь-то и объемный свет, и рассеивание лучей, и отражения, а иногда даже глобальное затенение. Освещение — это, пожалуй, вообще едва ли не самое основное из всего, что влияет на красоту картинки: оно делает ее объемной, натуралистичной, правдоподобной. Но и ресурсов все это дело «кушает» тоже немало. Именно поэтому, например, Nvidia так расхваливает свои новые RTX-видеокарты — они изначально разработаны под Ray Tracing — метод рендеринга, предполагающий правдоподобную симуляцию каждого луча.

Влияние на производительность

Зависит от движка, но почти во всех современных играх — очень сильное. Симулировать свет — это очень непросто, так что врубайте «ультра» только если у вас действительно мощная видеокарта.

что такое динамическое освещение в играх

Качество эффектов (Effects Quality)

Влияние на производительность

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

…Качество шейдеров (Shader Quality)

Шейдеры — это специальные программы для вашей видеокарты, исполняемые ее процессором. Грубо говоря, это такие «инструкции» от игры вашей GPU, по которым та понимает, как именно нужно отрисовывать тот или иной эффект. Чаще всего шейдеры используются для улучшения освещения, затенения, создания эффектов преломления лучей в воде (помните, как взрывала мозг та самая «шейдерная водичка из Half-Life 2: Lost Coast?), отражений, рассеиваний и так далее. Так что да, эта опция работает в тандеме с другими параметрами: качеством освещения и качеством теней. Существует три вида шейдеров: вершинные, геометрические и пиксельные, но игры, где можно отрегулировать качество каждого из них отдельно, встречаются невероятно редко.

Соответственно, чем выше качество шейдеров, тем лучше описанные выше эффекты, красивее тени и свет, реалистичнее геометрия — и тем сильнее нагрузка на видеокарту. Именно на видеокарту — потому что шейдеры считаются только GPU.

Влияние на производительность

Чаще всего — высокое. Например, в GTA V это один из самых «тяжелых» параметров в игре — снизив качество шейдеров с «Ультра» на средниее значение, вы получите прирост больше, чем в 15 FPS. Но бывает и так, что снижение этого параметра почти ничего не дает, как, например, в Mass Effect Anromeda.

Источник

Динамические свет и тени в моей 2d игре

Часть первая: Динамическое освещение

На его создание меня вдохновил пост на реддите, где aionskull использовал карты нормалей в Unity для динамического освещения своих спрайтов. А пользователь с ником gpillow запостил в комментах что он сделал что-то похожее в Love2D. Вот тут 8-мб гифка с результатами. За неё спасибо jusksmit’у.

Итак, что такое динамическое освещение? Это техника в 3D графике, где источник света освещает объекты на сцене. Динамическое потому, что обновляется в реальном времени при движении источника. Довольно стандартная штука в 3D мире и легко применимая к 2D, если, конечно, вы можете использовать преимущества шейдеров.

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

что такое динамическое освещение в играх

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

Ок, всё очень здорово, но как получить вектора нормали в 2d игре? Здесь, вообще-то, нет никаких объемных объектов… Однако, здесь нам могут помочь дополнительные текстуры (те самые карты нормалей), в которых будет записана необходимая информация. Я создал 2 таких карты для двух домов в видео повыше и использовал их чтобы посчитать освещение, вот пример:

что такое динамическое освещение в играх

RGB значения не могут быть отрицательными, так что мы подвинем все значения на 0.5: [x:0.5, y:1, z:0.5]. Ну и ещё RGB обычно представляется в числе от 0 до 255, так что мы домножим на 255 и получим [x:128, y:255, z:128], или, другими словами, вектор «на юг» будет вот этим светло-зеленым на карте нормалей.

Теперь, когда у нас есть нормали, мы можем позволить графической карте сделать её магию.
Я использую ImpactJS, у него неплохая совместимость с WebGL2D. (Он платный, я рекомендую pixi.js или любая другая графическая библиотека с webgl рендерером. Если знаете ещё аналоги — пишите в комменты! прим. перев.) Используя WebGL2D мы можем легко добавить пиксельный шейдер для освещения:

Пара заметок: У нас получается попиксельное освещение, которое немного отличается от вершинного освещения (обычного в 3d). Выбора особого нет, так как вершины в 2d бессмысленны (их всего 4 штуки для отображения плоскости на сцене). Но, вообще-то, это не проблема, попиксельное освещение гораздо более точное. Также следует отметить, что шейдер рендерит только освещение, без основного спрайта. Придется признать, я немного жульничаю, ведь на самом деле я не освещаю свой спрайт, а, скорее, затеняю его и в lightColor я передаю темно-серый цвет. Настоящее освещение пикселей, а именно повышение яркости, выглядит хуже, пиксели кажутся «вытертыми». У этой проблемы есть решения, но сейчас это непринципиально.

что такое динамическое освещение в играх

Часть вторая: рисование теней.

Отбрасывание теней в 3D — хорошо изученная проблема с известными решениями, типа рейтрейсинга или shadow-mapping’а. Однако, я затруднился найти какое-нибудь приемлимое готовое решение для 2d, пришлось делать самому, думаю получилось нормально, хотя и у него есть пара недостатков.

Вкратце, будем рисовать линию от пикселя на сцене к солнцу и проверять, есть ли какое-нибудь препятствие. Если есть — то пиксель в тени, если нет — на солнце, так что, впринципе, ничего сложного.

Шейдер принимает xyAngle и zAngle, которые отвечают за то, где находится солнце. Так как оно очень далеко, то лучи света будут параллельны, и, соответственно, эти два угла будут одинаковы для всех пикселей. Также, шейдер будет принимать карту высот мира. Она будет показывать высоту всех объектов, зданий, деревьев и т.д. Если пиксель принадлежит зданию, то значение пикселя будет примерно 10, и означать, что высота здания в данной точке — 10 пикселей.

Итак, шейдер начнет в пикселе, который надо осветить и, используя вектор xyAngle, будет продвигаться по направлению к солнцу мелкими шажками. На каждом из них мы будем проверять, если в данном пикселе карты высот что-нибудь.
что такое динамическое освещение в играх
Как только мы найдем препятствие, мы определим его высоту, и насколько высоким оно должно быть в данной точке чтобы преградить солнце (используя zAngle).
что такое динамическое освещение в играх
Если значение в карте высот будет больше, то всё, пиксель в тени. Если нет — мы продолжим искать. Но рано или поздно мы сдадимся и объявим, что пиксель освещен солнцем. В примере я захардкодил 100 шагов, пока что работает отлично.

Вот код шейдера в упрощенной/псевдо форме:

В uTexStep записана длина шага для проверки пикселей. Обычно достаточно 1/heightMap.width или 1/heightMap.height, ибо в OpenGL координаты текстур имеют значения от 0 до 1, так что 1/разрешение как раз даст нам размер одного пикселя.

Заключение

Источник

Большое исследование про свет в играх. Мы переписывали текст три раза, чтобы вы все поняли

На примере The Last of Us.

Освещение в играх так же важно, как сюжет и геймплей. Художники отвечают за передачу правильного настроения геймеру – а вот тут уже нужно знать, как правильно расставить свечки и солнце, чтобы они соответствовали происходящему. Настраивая атмосферу, постобработку и рендеринг, художники по освещению склеивают в одно целое все – материалы, объекты, персонажей и окружение.

Технический прорыв начался с Uncharted и The Last of Us

Вышедшая в 2013 году The Last of Us технически почти идеальна – по крайней мере, на момент выхода она считалась одним из самых красивых эксклюзивов PlayStation. Ее создание стало челленджем для художников по освещению – в постапокалиптическом мире почти нет электричества и искусственных источников света, поэтому им требовалось воссоздать пугающую атмосферу безжизненной локации, используя только естественное освещение. Почти все в игре освещено отскакивающим светом (bounce light). Это ненаправленное освещение, которое отражается от поверхностей, меняет направление и создает мягкие тени в окружении. Таким светом легко подчеркнуть красоту мелких, почти незаметных деталей при моделинге и работе с тенями.

что такое динамическое освещение в играх

Ключевой элемент геймплея с отскакивающим светом – фонарик. И он в руках у игрока. Но давайте сперва разберемся, как вообще работает свет в играх. В The Last of Us используют два основных типа освещения – запеченное и динамическое.

Запеченное статичное освещение передается лайтмапами и вершинным освещением. Уже стало сложно? Ничего страшного, мы все объясним. «Запекание» (bake) лайтмапа – это буквально запеченный неподвижный свет. На готовую текстуру накладывают освещение, и полученный освещенный кусок натягивается на любую поверхность. По сути, запекание лайтмапа – это свет, нарисованный заранее. Так экономятся ресурсы.

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

Еще одна техника рендеринга – вершинное освещение (vertex lighting), и оно может использоваться вместе с лайтмапами. В нем освещение просчитывается отдельно для каждой вершины – так называют точки в пространстве – после чего полученные значения подгоняются под среднее значение на цвета внутри полигона. Этот способ иногда выгоднее по ресурсам, чем использование световых карт. И его используют, когда нужно сделать много мелких объектов, потому что он требует меньше видеопамяти для вычислений.

что такое динамическое освещение в играх

Что понимать под мелким объектом? Совет от Габи Бентанкура – сравнить объект с героем. Все, что выше главного героя выиграет в качестве от использования лайтмапов, а все, что ниже – от запекания вершин. Так устроен человеческий глаз – мы часто оцениваем размер, сравнивая со своим персонажем.

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

Освещение в The Last of Us – это комбинация запеченного освещения, вершинного освещения и динамического. Но так работают примерно все игры. Что насчет фишек? Вот три основных.

1. Доминирующая направленность (dominant directionality) – метод, который Naughty Dog использует для запекания направления света в помещениях, куда не доходит солнечный свет. В нем хранится информация о направлении отражений, цветах, интенсивности и значении. Так получается более реалистичный результат.

что такое динамическое освещение в играх

Так выглядит финальный результат работы с доминирующей направленностью – он включает в себя размытие, лайтмапы, нормал мапы (карт, которые имитируют освещение неровностей и вмятин – их используют, чтобы добавить детали без дополнительных полигонов) и отражение от поверхностей. Проще говоря, доминирующая направленность – это один из видов запекания с закосом под реализм, в котором учитываются правильные направления отражений и интенсивность света.

что такое динамическое освещение в играх

2. Окружающие тени (ambient shadows) просчитаны отдельно для персонажей и динамичных объектов. Примеры – вместо тысячи слов.

что такое динамическое освещение в играх

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

что такое динамическое освещение в играх

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

что такое динамическое освещение в играх

3. Фонарик! Фонарик находится в руках у игрока, поэтому сделать его обычным запеканием попросту невозможно – его позиция, направление и яркость меняются с каждым фреймом.

Графический инженер Naughty Dog Кэ Сюй изобрел новую технологию рендеринга для фонарика на основе алгоритма отражающей карты теней (или reflective shadow map). Этот метод поддерживает непрямое освещение для динамических источников света с учетом геометрии сцены. Непрямое освещение технически ресурсоемкое дело, и его дорого симулировать – каждый объект становится потенциальным отражателем света.

Разница заметна в совсем темных помещениях – с включенным отскакивающим светом мы видим, что находится слева, а без него вся игра превращается в Outlast с темным коридором.

что такое динамическое освещение в играх

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

что такое динамическое освещение в играх

Некоторые из этих наработок устарели – но их идеи пригодились в The Last of Us 2

Naughty Dog уделяют конвейеру постобработки большое внимание, делая упор на кинематографичность итоговой картинки. На PlayStation 3 не хватало мощностей для сглаживания, так что The Last of Us и Uncharted использовали относительно грубое решение, в котором размытие сводилось к минимуму. Пиксели, особо заметные на контрастных краях, стали проблемой.

С технической точки зрения в The Last of Us 2 используются те же наработки, что и в предыдущих играх, но в этом случае поражает другое – образцовое исполнение всех мелких деталей и тщательное продумывание более ранних концепций.

что такое динамическое освещение в играх

Во второй части Last of Us Naughty Dog развернула усовершенствованную реализацию временного сглаживания с чистыми краями и минимальным размытием. Это тот же подход, что использовался в Uncharted: Lost Legacy – и он позволяет выводить чистые нативные 1080p. Это критично важно для PS4 Pro с поддержкой 4K – консоль выводит 1440p, которые масштабируются для 4K дисплеев.

В движке TLoU 2 используется отложенный рендер. Это одна из технологий рендера, при которой процесс вычисления разбивается на небольшие части, от простых к сложным, а потом снова соединяется. Движок второй части пережил изменения по сравнению с первой, хотя впервые система отложенного рендера возникла в Uncharted, и теперь студия использует ее. Это позволяет Naughty Dog добавить несколько динамических источников света, дальность их лучей и высокую точность при взаимодействии света с материалами. Они играют большую роль в атмосферных моментах, создавая контраст.

Ниже – пример сцены из Uncharted 4, в которой много разных источников света: сверху, из окон и небольшие светильники.

что такое динамическое освещение в играх

Обычно отложенный рендер используют в сценах с большим количеством источников света для оптимизации ресурсов. Есть видео, в котором наглядно показано, сколько источников света может уместиться на сцене, если использовать метод отложенного рендера – более 26 тысяч светлячков!

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

что такое динамическое освещение в играх

В сочетании с конвейером постобработки, в котором игра получает все кинематографические эффекты, включая размытие движения на пиксель (per-pixel motion blur), зернистость пленки и глубину резкости боке (размытости вне фокуса). Размытие движения – один из главных элементов игр студии со времен Uncharted 2, и в The Last of Us 2 реализация, пожалуй, лучшая. В сочетании с моушн-матчингом это обеспечивает еще большую плавность анимации персонажей.

Настолько убедительный живой мир получился в том числе из-за более тонких взаимодействий: отражение на воде, дующий ветер, отбрасываемые тени, разбиваемое стекло – и многое другое. В этом The Last of Us 2 прекрасна.

Источник

Как освещение влияет на геймдизайн и игровой опыт

что такое динамическое освещение в играх

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

Введение

Освещение нужно не только для того, чтобы игрок смог разглядеть сцену (хотя это очень важно). Свет влияет на эмоции. Многие приемы освещения в театре, кино и архитектуре используются для усиления эмоциональной составляющей. Почему бы эти принципы не позаимствовать геймдизайнерам? Связь между картинкой и эмоциональным откликом дает еще один мощный инструмент, который помогает работать с персонажем, нарративом, звуком, игровыми механиками и так далее. При этом взаимодействие света с поверхностью позволяет влиять на яркость, цвет, контрастность, тени и прочие эффекты. Все это выливается в базу, который должен освоить каждый дизайнер.

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

что такое динамическое освещение в играх
«Лебединое озеро», Александр Экман

I — Природа света

«Пространство, свет и порядок. Вот те вещи, в которых люди нуждаются так же сильно, как они нуждаются в куске хлеба или ночлеге», — Ле Корбюзье.

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

1 — Что видит глаз человека

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

Основные свойства видимого света — это направление, интенсивность, частота и поляризация. Его скорость в вакууме составляет 300 000 000 м/с, и это одна из фундаментальных физических постоянных.

что такое динамическое освещение в играх
Видимый электромагнитный спектр

2 — Направление распространения

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

что такое динамическое освещение в играхчто такое динамическое освещение в играх
Направление распространения света

3 — Базовые характеристики

Световой поток. Количество света, излучаемого источником света.
Единица измерения: лм (люмен).

что такое динамическое освещение в играх

Сила света. Количество света, переносимого в определенном направлении.
Единица измерения: кд (кандела).

что такое динамическое освещение в играх

Освещенность. Количество светового потока, падающего на поверхность.
Освещенность = световой поток (лм) / площадь (м2).

Единица измерения: лк (люкс).

что такое динамическое освещение в играх

Яркость. Это единственная базовая характеристика света, которую воспринимает человеческий глаз. С одной стороны, она учитывает яркость источника света, с другой — поверхность, а значит, она сильно зависит от степени отражения (от цвета и поверхности).
Единица измерения: кд/м2.

что такое динамическое освещение в играх

4 — Цветовая температура

Цветовая температура измеряется в Кельвинах и отображает цвет конкретного источника света. Британский физик Уильям Кельвин нагрел кусок угля. Он раскалился, переливаясь разными цветами, которые соответствовали разным температурам. Сначала уголь засветился темно-красным, но по мере нагревания цвет изменился на ярко-желтый. При максимальной температуре излучаемый свет стал голубо-белым.

что такое динамическое освещение в играхчто такое динамическое освещение в играх
Естественный свет, 24 часа, Саймон Лэйки

II — Приемы дизайна света

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

1 — Светотень и тенебризм

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

что такое динамическое освещение в играх
Жорж де Латур «Кающаяся Мария Магдалина», 1638-1643 гг.

a — Высокая контрастность

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

что такое динамическое освещение в играх

b — Контур и ритм света

Из-за высокой разницы тонов, в некоторых областях по краям фигуры возникают контуры. Даже в темных частях картины художнику нравилось использовать разные тона, чтобы подчеркнуть границы объекта. Свет не сконцентрирован в одной области, он скользит вниз: от лица к ногам.

что такое динамическое освещение в играх

c — Источник света

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

что такое динамическое освещение в играх

d — Светотень как композиция из геометрических фигур

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

что такое динамическое освещение в играх

2 — Основные кинематографические техники освещения

2.1 — Освещение с трех точек

Один из самых популярных и удачных способов подсветки любого объекта — это освещение с трех точек, классическая голливудская схема. Это техника позволяет передать объем предмета.

Рисующий свет (Key Lighting, то есть основной источник света)
Как правило это самый мощный свет в каждой сцене. Он может исходить откуда угодно, его источник может быть сбоку или за объектом (Джереми Бирн «Цифровое освещение и рендеринг»).

что такое динамическое освещение в играх

Заполняющий свет (Fill Lighting, то есть свет для управления контрастами)
Из названия очевидно, что его используют, чтобы «заполнить» и убрать темные области, которые создает рисующий свет. Заполняющий свет заметно менее интенсивный и расположен под углом к основному источнику света.

что такое динамическое освещение в играх

Фоновый свет (Backlighting, то есть разделитель фона)
Его используют для передачи объема сцены. Он отделяет объект от фона. Как и заполняющий свет, фоновый менее интенсивный и покрывает большую площадь объекта.

что такое динамическое освещение в играх

2.2 — Снизу

Из-за движения Солнца мы привыкли видеть людей освещенными с любого угла, но только не снизу. Такой способ выглядит очень необычно.

что такое динамическое освещение в играх
«Франкенштейн», Джеймс Уэйл, 1931 год

2.3 — Сзади

Объект располагается между источником света и зрителем. Из-за этого вокруг объекта возникает свечение, а остальные его части остаются в тени.

что такое динамическое освещение в играх
«Инопланетянин», Стивен Спилберг, 1982 год

2.4 — Сбоку

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

что такое динамическое освещение в играх
«Бегущий по лезвию», Ридли Скотт, 1982 год

2.5 — Практическое освещение

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

что такое динамическое освещение в играх
«Барри Линдон», Стэнли Кубрик, 1975 год

2.6 — Отраженный свет

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

что такое динамическое освещение в играх
«Темный рыцарь: Возрождение легенды», Кристофер Нолан, 2012 год

2.7 — Жесткий и мягкий свет

Главная разница между жестким и мягким светом — это размер источника света по отношению к объекту. Солнце — самый большой источник света в Солнечной системе. Однако оно удалено от нас на 90 млн километров, а значит, является маленьким источником света. Оно создает жесткие тени и, соответственно, жесткий свет. Если появляются облака, все небо становится огромным источником света, и тени различить сложнее. А значит, возникает мягкий свет.

что такое динамическое освещение в играх
3D-примеры с LEGO, Жуан Прада, 2017 год

2.8 — High и low key

High key освещение используется для создания очень ярких сцен. Оно часто близко к передержанной экспозиции. Все источники света приблизительно равны по мощности.
В отличие от high key освещения, при low key сцена сильно затемнена, и в ней может быть мощный источник света. Главная роль отводится теням, а не свету, чтобы передать ощущение саспенса или драматичности.

что такое динамическое освещение в играх
«THX 1138», Джордж Лукас, 1971 год

2.9 — Мотивированное освещение (Motivated Lighting)

Такое освещение имитирует естественный свет — солнечный, лунный, уличные огни и так далее. Оно используется для усиления практического освещения. Специальные техники помогают сделать мотивированное освещение естественным, например, фильтры (гобо) для создания эффекта зашторенных окон.

что такое динамическое освещение в играх
«Драйв», Николас Виндинг Рефн, 2011 год

2.10 — Наружный свет

Это может быть солнечный, лунный свет или уличные огни, которые видны в сцене.

что такое динамическое освещение в играх
«Очень странные дела. 3 сезон», братья Даффер, 2019 год

III — Основы рендеринга

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

1 — Предварительно просчитанное освещение (Precomputed lighting)

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

Предварительно просчитанное статическое глобальное освещение можно использовать в большинстве движков, включая Unreal Engine и Unity. Движок «запекает» такое освещение в специальную текстуру, так называемую «карту освещения» (лайтмап, lightmap). Эти лайтмапы хранятся вместе с другими мап-файлами, и движок обращается к ним при рендеринге сцены.

что такое динамическое освещение в играх
Одна и та же сцена: без освещения (слева), только с прямым освещением (посередине) и с непрямым глобальным освещением (справа). Иллюстрации с Unity Learn

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

что такое динамическое освещение в играх
Алгоритм применения карты теней. Иллюстрация с OpenGl-tutorial

2 — Рендеринг в режиме реального времени

Одна из классических моделей освещения для реал-тайма называется моделью Ламберта (в честь швейцарского математика Иоганна Генриха Ламберта). При рендеринге в реальном времени GPU обычно отправляет объекты по одному. Данный метод использует отображение объекта (его положение, угол поворота и масштаб), чтобы определить, какую из его поверхностей необходимо отрисовать.

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

что такое динамическое освещение в играх
Шейдинг Ламберта на примере сферы. Иллюстрация из материалов Петра Дьячихина

Большинство современных движков (Unity, Unreal Engine, Frostbite и другие) используют физически корректный рендеринг (Physically Based Rendering, PBR) и шейдинг (статья Лукаса Орсварна). PBR-шейдинг предлагает более интуитивные и удобные способы и параметры для описания поверхности. В Unreal Engine у PBR-материалов есть следующие параметры:

Однако есть еще один подход к рендерингу — трассировка лучей. Ранее эту технологию не рассматривали из-за проблем с производительностью и оптимизацией. Ее использовали только в кино- и телеиндустрии. Но выход видеокарт нового поколения позволил впервые использовать данный подход в видеоиграх.

Трассировка лучей — это технология отрисовки, создающая более реалистичные световые эффекты. Она повторяет принципы распространения света в реальной среде. Лучи, выпущенные источником света, ведут себя так же, как фотоны. Они отражаются от поверхностей в произвольном направлении. При этом, попадая в камеру, отраженные или прямые лучи передают визуальную информацию о поверхности, от которой они отразились (например, сообщают ее цвет). Множество проектов с E3 2019 будут поддерживать эту технологию.

3 — Виды источников света

3.1 — Точечный источник (Point light)

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

что такое динамическое освещение в играх
Документация Unreal Engine

3.2 — Прожекторный источник (Spot light)

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

что такое динамическое освещение в играх
Документация Unreal Engine

3.3 — Источник света, имеющий площадь (Area light)

Излучает прямые световые лучи из определенного контура (например, прямоугольника или круга). Такой свет сильно нагружает процессор, потому что компьютер просчитывает все точки, излучающие свет.

что такое динамическое освещение в играх
Документация Unity

3.4 — Источник направленного света (Directional light)

Имитирует Солнце или другой отдаленный источник света. Все лучи движутся в одном направлении и их можно считать параллельными.

что такое динамическое освещение в играх
Документация Unity

3.5 — Излучающий источник (Emissive light)

Излучающий источник света или излучающие материалы (Emissive Materials в UE4) легко и эффективно создают иллюзию того, что материал излучает свет. Возникает эффект размытости света — его видно, если посмотреть на очень яркий объект.

что такое динамическое освещение в играх
Документация Unreal Engine

3.6 — Рассеянный свет (Ambient Light)

Сцена из Doom 3 освещается лампами на стенах, движок создает тени. Если поверхность находится в тени, он окрашивает ее в черный. В реальной жизни частицы света (фотоны) могут отражаться от поверхностей. В более продвинутых системах рендеринга свет запекается в текстуры или просчитывается в реальном времени (глобальное освещение). Более старые игровые движки — например, ID Tech 3 (Doom) — затрачивали слишком много ресурсов, чтобы просчитать непрямое освещение. Чтобы решить проблему с недостатком непрямого освещения, использовался рассеянный свет. И все поверхности были хотя бы немного освещены.

что такое динамическое освещение в играх
Движок Doom 3 (движок IdTech 4)

3.7 — Глобальное освещение (Global illumination)

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

что такое динамическое освещение в играх
Документация Unreal Engine

IV — Дизайн света в видеоиграх

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

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

Правильная атмосфера эмоционально вовлекает игрока. Дизайнеры должны заботиться об этом, создавая визуальную целостность.

Мэги Сэйф Эль-Наср провела несколько экспериментов — она предложила пользователям, которые не знакомы с FPS-шутерами, сыграть в Unreal Tournament. Из-за слабого дизайна освещения игроки слишком поздно замечали врагов и быстро умирали. Расстраивались и в большинстве случаев забрасывали игру.

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

что такое динамическое освещение в играх
Элементы дизайна в левел-арте, Джереми Прайс

1 — Руководство

Uncharted 4
В книге «100 главных принципов дизайна» (100 Things Every Designer Needs to Know About People) Сьюзан Уэйншенк изучает значение центрального и периферического зрения.

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

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

что такое динамическое освещение в играх

Until Dawn
Освещение в ней используется для направления игрока. Креативный директор студии Уилл Байлс сказал: «Самым сложным для нас было создать атмосферу страха, не уводя все в темноту. К сожалению, когда картинка становится слишком темной, игровой движок пытается сделать ее ярче, и наоборот. Нам пришлось изобретать новые техники, чтобы справиться с этой проблемой».

Как видно на иллюстрации ниже, теплый свет выделяется на синем фоне, привлекая внимание игрока.

что такое динамическое освещение в играх

2 — Освещение/Кадрирование

Resident Evil 2 Remake

Свет в RE2 Remake может менять кадр. Когда вы идете по темным коридорам полицейского участка Ракун-Сити, основным источником света служит фонарик игрока. Такое освещение — мощная механика. Измененная перспектива приковывает взгляд игрока к освещенному участку и отрезает все остальное из-за сильного контраста.

что такое динамическое освещение в играх

Склеп Великанов (Tomb of the Giants) — одна из очень темных локаций игры с кучей опасных обрывов. Ее можно пройти, если следить за светящимися камнями и двигаться осторожно, чтобы не упасть. Также стоит остерегаться белых ярких глаз, потому что это — враг.

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

что такое динамическое освещение в играх

3 — Повествование

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

что такое динамическое освещение в играх

В «Чужом» свет используется, чтобы направлять игрока и создавать ощущение страха. Пользователь находится в постоянном напряжении — где-то там в темноте прячется ксеноморф.

что такое динамическое освещение в играх

4 — Маскировка

Splinter Cell: Blacklist

Свет в ней не только направляет пользователя, но и используется как игровая механика.

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

что такое динамическое освещение в играх

В Mark of the Ninja свет и тьма полностью противопоставлены друг другу. Лид-дизайнер игры Нельс Андерсен сказал: «То, как выглядит персонаж, показывает, видимы вы или нет. Если вы скрыты, вы одеты в черное, лишь некоторые детали выделены красным, на свету — вы раскрашены полностью» (статья Mark of the Ninja’s five stealth design rules).

что такое динамическое освещение в играх

5 — Борьба/Защита

Также для устранения противников, можно использовать сигнальные ракеты и светошумовые гранаты.

что такое динамическое освещение в играх

A Plague Tale: Innocence

В проекте от Asobo Studio можно использовать крыс против людей. Например, если разбить фонарь противника, то тот моментально погрузится во тьму, которая не сдерживает полчища крыс.

что такое динамическое освещение в играх

6 — Оповещение/Обратная связь

Deus Ex: Mankind Divided

В Deus Ex камеры наблюдения следят за тем, что происходит в их поле зрения, которое ограничено конусом света. Свет зеленый, когда они нейтральны. Обнаружив врага, камера меняет свет на желтый, пищит и следит за целью либо несколько секунд, либо пока враг не сбежит из ее поля зрения. Через несколько секунд свет становится красным, и камера издает сигнал тревоги. Таким образом, с помощью света реализовано взаимодействие с игроком.

что такое динамическое освещение в играх

Метроидвания от Team Cherry меняет освещение чаще, чем замечает игрок.

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

что такое динамическое освещение в играх

7 — Разделение

Assassin’s Creed Odyssey

Цикл смены дня и ночи занимает центральное место в «Одиссее». Ночью патрулей становится меньше, и игрок с большей вероятностью останется незамеченным.

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

Смена дня и ночи здесь — особая система, и правила игры кардинально меняются в зависимости от времени суток.

что такое динамическое освещение в играх

Симулятор выживания Don’t Starve не жалеет новичков ночью — здесь прогулки в темноте фатальны. Через пять секунд игрока атакуют, и он получает урон. Для выживания источник света необходим.

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

что такое динамическое освещение в играх

V — Заключение

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *