Давно у нас не было вестей по этой рубрике, так как автор защищал научную работу. Зато сейчас появилась возможность продолжить. А повод-то какой — в центре нашего внимания сегодня свет и работа с ним.
Свет в искусстве и жизни
В реальном мире свет играет очень большую роль. Даже если не брать в расчет то, что мы дышим кислородом, который растения вырабатывают в сложном цикле фотосинтеза, ключевые процессы которого протекают под действием солнечного света. Кое-кто из ученых даже считает, что солнечный свет — один из ключевых факторов эволюции жизни на Земле. Что ж, спорить с этим сложно: примитивные светочувствительные «глазки» появились у первых микроорганизмов почти сразу после органов химического чувства.
Можно сказать, что зрение — второй брат после нюха. Ну а слух с полноценным осязанием и температурной рецепцией присоединились значительно позже. По крайней мере, в развитом и распространенном в таксонах виде. Более того, зрение, основанное на свете, до сих пор играет очень большую роль у социальных животных, в том числе человека, и является ключевым в ориентировочной реакции. Вспомните, когда последний раз оценивали внешний вид собеседника и его позу или оборачивались на громкий шум, ища глазами его источник. А это тоже световое зрение. |
Земной свет не только жизненно важен, но и очень красив. За это стоит сказать спасибо нашей атмосфере, богатой азотом и кислородом: плотный воздух рассеивает солнечный свет, создавая мягкие размытые тени, световые градиенты и отсветы от озонового щита. Рассеивание света может быть неочевидным, но формирующим специфическую картину света и тени, при котором вы редко увидите резкие четкие лучи света и очерченные тени (хотя в полдень такое возможно).
Кстати, из-за этого фотографии астрономических объектов и других планет выглядят нереалистично: отсутствие атмосферы на Луне и астероидах не создает выраженных бликов и не позволяет тени «размазываться», из-за чего порой бывает трудно понять направление света и тем более высоту и форму некоторых объектов. Кстати, во время знаменитого полета миссии на Луну тени были одним из аргументов за «фейковость». Правда, конспирологи не смогли договориться, как правильнее — чтобы на видео они были более четкими или менее.
Фото Лунной поверхности, кратер Клавий. Это выпуклости или впуклости?
На Марсе атмосфера есть, хотя и не такая плотная, как на Земле. Тени там резче земных, а состав атмосферы не позволяет небу быть голубым всегда. Вкупе с чуть менее ярким солнечным светом, марсианские пейзажи кажутся непривычными и словно вышедшими из сна. На Венере наоборот, атмосфера слишком плотная. Солнце едва пробивается через ядовитые облака, а доходя до поверхности, почти не отбрасывает тень: тяжелый воздух сильно рассеивает свет, смазывая переходы между темными и светлыми участками. |
Вы можете пройти всю Rain World без звука. Да, вы не услышите приближение врага, атмосферное гудение огромного биокомпьютера-итератора, гипнотические сверчания Небесного архипелага и плескание воды в затонувшем корпусе Смотрящей на Луну. Но на сам геймплей в целом это не влияет. Честно говоря, я прошла большую часть Rain world и Dark Souls 3 без звука из-за проблем со звуковой картой. А все потому, что самое важное в играх передается через экран — визуально. Интерфейс игры, точки взаимодействия, анимации боссов для выявления момента атаки — это все визуальная информация.
Bleak Faith: Forsaken по заветам соулслайков не ведет вас за ручку, давая лишь туманные намеки. И не говорит, что, в отличие от других соулслайков, в ней можно плавать. Вы лишь можете увидеть свет прожекторов и левиафанов в воде на дне резервуара. Почти все сюжетные места здесь подсвечены красными огнями. Но придется запастись воздухом и висеть у фонарей подольше…
Но некоторые игры идут дальше, уходя от нагромождения UI-шек на экране и направляя игрока не только мини-картами и компасами, но и диегетическими штуками: горящие факела, более яркий проем двери, волшебное растение и т. д. Частично это было рассмотрено в статье про локации здесь и здесь. Однако свет в играх и 3D-графике вообще играет очень большую роль.
Диегетический — значит органически вписанный и незаметный, не выбивающийся из погружения. Остаток жизненных сил главного героя Callisto Protocol — лорно оправданный индикатор на шее. Кстати, и Протокол, и его предтеча Dead Space, и Dark Souls, и Rain World используют диегетическое ориентирование в большинстве случаев: предпочтительный и более безопасный путь обозначается более яркими и мигающими подсветками, а рисунки на стенах предупреждают об опасности.
Теория света
Конечно, невозможно уместить в одном посте то, что художники изучают несколько лет. Однако общие положения теории света перед работой в 3D все равно знать полезно.
Chiaroscuro или светотень — это градиент освещенности, который создает сочетание бликов и затенений. Чем сложнее поверхность и форма, тем комплекснее светотень. Светотень может подчеркнуть как достоинства объекта, так и недостатки. Она же может придать драматичности картинке в целом или лишить оной. |
ㅤㅤКартинка без тени и картинка с тенью
Грамотно расположенная тень добавляет объема и живости картинке даже без полутонов. Однако, чтобы объем читался правильно и не резал глаз, все тени должны лежать по направлению лучей света. Для этого художник должен определить наиболее оптимальное положение и силу источника света и провести от него виртуальные лучи, пересекающие объект и поверхность, на которой он расположен — направляющие для блика и тени. Начинающие художники буквально могут рисовать эти линии на черновом наброске.
Бывает так, что источник света находится за пределами холста или вовсе не в плоскости картины. В таком случае у вас должно быть очень хорошее пространственное воображение и «насмотренность»:
Стилей в искусстве великое множество. Если попытаться изобразить их все в таких же иконках, то нам понадобится около 50 листов формата А4.
Проработка света в картине сильно зависит от стиля и целей рисунка. Импрессионисты буквально делали свет орудием выразительности — картины их целиком состоят из игры света и цвета. Концепт-арт же концентрируется на проработке деталей и образа, используя светотень лишь для того, чтобы подчеркнуть объем или направление складок одежды.
Да будет свет!
Долгое время создать более-менее физически достоверный свет или хотя бы похожий на него было практически невозможно. Источники света жрали невероятное количество ресурсов, тени отрисовывались криво, а о рефлексах можно было только мечтать. И это на оборудовании больших компаний!
Домашний ПК и даже консоль с трудом справлялись с примитивными светоманипуляциями. Поэтому в играх, например, вместо отрисовки настоящего света рисовали блики и тени прямо на текстурах, а источники света были лишь имитацией без функционала. Позднее появилась возможность «включать» локальные точечные источники света или point light. Они уже «умели» отбрасывать примитивную динамическую тень, но имели ограниченный радиус действия. В принципе, его можно было увеличить, подняв «мощность» источника света, но это могло убить домашний компьютер в больших локациях с противниками.
Эффекты от взрывов и заклинаний и вовсе были спрайтами или плоскатиками с текстурой повышенной яркости — никаких отсветов они не давали. Впрочем, видеочипы за последние 15 лет сильно шагнули вперед, позволяя даже в домашних условиях имитировать вполне приемлемую светотень, а в некоторых движках даже делать его фотореалистичным. Популярные движки визуализации, способные на такое, это Cycles для Blender 3D, Corona и Vray для продуктов Autodesk, движок Keyshot, IRay для DAZ Studio 3D и внутренний движок Unreal Engine.
Сайклз, Вирей и Айрей также «умеют» обсчитывать отраженный свет:
Рендер на движке Eevee и Cycles. Иви — быстрый движок (этот рендер занимает секунды), но со стеклом и реалистичным светом он работает плохо. Сайклз долгий движок — отрисовка этих кристалликов занимает около 5-8 минут на тех же настройках (без учета настроек отскоков).
Однако чем реалистичнее свет вам нужен, тем требовательнее работа. Для более-менее реалистичного рендера вам нужна приличная видеокарта. Желательно с проклятыми ядрами CUDA, которые нынче требуются для каждой первой графической программы, просто потому что на них это организовать проще, чем организовывать распределение нагрузки.
Одновременно с попытками изобрести свет разработчики изобретали и способы его имитации. Об этом мы частично говорили в блоках про текстуры. Да, я говорю о спекулярах, контролирующих блеск и блик модели, нормалях, имитирующих объем, симулируя тени, и лайтмапы/окклюжены, которые определяют рисунок светотени. Однако хорошие normalmap и ambient occlusion требуют создания хай-поли модели с высокой детализацией и проекцию ее на менее проработанную с последующим запеканием.
С одной стороны, модели с запеченными с хайполины картами выглядит неплохо даже со слабой работой света в движке. С другой — это требует дополнительной работы, человекочасов в области дизайна, или дополнительных вложений бюджета для художника-подрядчика со стороны. И то, и другое увеличивает время и затраты на разработку. Поэтому многие разработчики, решившиеся на работу с 3D-движками, а особенно из инди-сегмента, ограничиваются созданием нормалмапов и использованием распространяемых пакетов моделей и внутридвижковые методы работы со светом. Что я имею в виду?
В последнее время все чаще игроки жалуются на проблемы с оптимизацией игр. Причем заметьте, чем сложнее в игре свет, тем чаще возникают проблемы. Пресловутый Cyberpunk 2077, который не попинал только ленивый, многим в своей атмосфере обязан именно световой картине. Какой же киберпанк без покатушек по ночному городу в окружении отсветов неоновых ламп и голографических панелей? Сцену с автокольцом даже используют для теста видеокарт и процессоров — количество действующих элементов и источников света там настолько велико, что оборудование послабее отказывает. Почему это происходит?
Есть такая вещь, как траектория света. В жизни она тоже есть: свет как волна/частица преодолевает расстояние в пространстве, распространяясь практически по прямой (с незначительным искажением в среде и под действием гравитации). В некоторых случаях ее даже можно проследить — когда солнце пробивается сквозь тяжелые облака (т. н. Godrays), проникает через шторы в пыльную комнату и т. д. Именно поэтому существует тень: на пути света возникает препятствие, поглощающее и отражающее часть света. Отраженный от поверхности свет формирует отсветы на других предметах и картину мира на сетчатке глаза и матрице камеры. |
Забавный факт:сражение с боссом Бейл Ужасный в Elden Ring: Shadow of the Erdtree заставило мою видеокарту ненадолго умереть. Впрочем, ситуация с Мидрой была не намного лучше, хотя и лучше: Мидра сидит в закрытом зале, в котором не нужно рендерить скайдом и горы. Дело в том, что в Елдарике эффекты помимо спрайтов содержат в себе источники света, которые честно отражаются на окружающих моделях, включая гг. А во второй стадии древний дракон начинает одновременно палить огнем, призывать молнии, летать на призрачных крыльях и призывать апокалиптическую бурю на голову игрока. Прибавьте к этому эффекты магии от самого игрока и его фантомных помощников и вы получите смэрт. Так что вместо подарка на НГ придется задуматься о смене видеокарты на более производительную. Заодно решить проблему с тем, что обнова вин11 заставила отваливаться все драйвера амд. И рендер прокачается. |
Забавно, но этот рендер почти без света просчитывался дольше, чем нормально освещенный.
Впрочем, отсутствие света тоже негативно сказывается на рендеринге. Если света в сцене недостаточно, движок может тормозить, пытаясь обсчитать хоть какие-то контуры и объекты, особенно со сглаживанием теней. Другая проблема — пересвет. Но об этом позже. Сначала, поговорим об источниках света.
Типы источников света
Поскольку свет переизобретался несколько раз за историю визуализации и требовал специфического подхода к оптимизации, многие современные движки имеют возможность работать сразу с несколькими их типами.
Emission — эффект свечения объекта. Может быть задан как напрямую, так и текстурой emission map.
Emission. Самый примитивный и одновременно хитрый способ работы со светом — заставить светиться объект. Можно засветить либо объект целиком (через настройку отображения в шейдерах), либо применить карту emission map. Карта свечения (emission map) накладывается поверх цветовой карты (diffuse) и определяет цвет, силу и регион свечения. Так можно сделать светящимися отдельные чешуйки на боку рыбы или дракона без необходимости располагать дополнительные объекты и поинты.
Помимо сохранения светимости в темноте, такая карта может стать источником света в некоторых движках:
Змей без эмиссии, с эмиссией при неравномерном свете и без света.
Point light. Самый простой настоящий свет — световая точка. Как следует из названия, это бесконечно малый точечный объект. Траектория света начинается в одних и тех же координатах, что позволяет работать с ней даже на малых масштабах и в интерьерной визуализации. Однако ради экономии ресурсов радиус распространения лучей ограничен: конкретное значение радиуса и рассеивания («плотности» света) отличаются в разных программах. В некоторых можно регулировать это специальным ползунком.
Из точечного света «эволюционировала» сфера света, которая порой все также называется point light. Отличается от обычного поинта он тем, что диаметр источника света можно регулировать. Это создает более мягкий свет, позволяет увеличить освещенность и более точно контролировать световую картину.
ㅤㅤㅤㅤСветовая точка (Point light)
Area и Projector. Light Area или световая область — как правило, прямоугольная или круглая, геометрическая плоскость, излучающая свет. Такая область может имитировать сплошной свет от люминесцентных ламп или светодиодных панелей. Область света нужна для освещения больших интерьерных областей и видовых рендеров, а свет от неее более рассеянный. В некоторых случаях область может быть двусторонней. Однако она также имеет ограничение по длине луча.
ㅤㅤㅤㅤСветовая область — Light Area
Light Projector или spotlight во многом похож на Area. Однако имеет ряд преимуществ: настройку ширины столба света и его рассеивания в зависимости от ширины сечения и расстояния до объекта, настройку имитации «отсветов зеркала» и другие. Такой источник нужен в основном дизайнерам для фотореалистичных и студийных рендеров.
ㅤㅤㅤㅤSpotlight и его область действия
Sun. Глобальный свет или источник-Солнце — яркий мощный источник света, как правило, расположенный на большом расстоянии от центра сцены. В отличие от локального света, Солнце не имеет ограничения по предельной длине луча, образует контрастные тени, а его рассеивание сильно зависит от настроек «среды», сильнее, чем у предыдущих источников. Такой свет часто используют для видовых и сюжетных рендеров, в больших сценах (например, в городах) и для контроля смены освещения в течение цикла дня и ночи.
HDRI. HDRI или карта окружения — хитрый способ решить проблему и со светом, и с окружением сцены. HDRI по сути своей — панорамная текстура высокого разрешения, в которую зачастую зашита информация о свете и яркости. По принципу действия простые HDRI напоминают emission map, но с гораздо большим предельным расстоянием и гораздо большим контрастом светимости между самым ярким и самым темным участком.
Продвинутые HDRI-карты содержат имитацию источника света (как правило, Солнце), силой и положением которого можно управлять. Некоторые HDRI интегрируются в движок с возможностью управления силой и положением источника света и даже с имитацией времени суток и времени года в соответствии с широтой и долготой на Земле. Рассеянный свет HDRI-карт используют для видовых концептуальных рендеров и для пейзажных художественных рендеров. А еще «ашдиэрки» влияют на рисунок отражения металлических и полированных поверхностей. В окне предпросмотра на металле и зеркалах, как правило, отражаются именно ашдиэрки.
HDRI карта на рендере заменяет источник света
Для облегчения работы в графическом движке (хотя названия пришли из традиционной художки) отслеживаемые лучи разделяются на три потока:
- Primarily rays — основные лучи или лучи основного источника света, которые попадают непосредственно в кадр. Тень, ими отбрасываемая, также именуется primarily shadow, она наиболее густая.
- Secondary rays — побочные лучи, лучи от прочих источников света. В рендере интерьера это могут быть настольные лампы. Тени от них не такие густые, а сам дополнительный свет смягчает тени основного света.
- Refraction rays — лучи отражения. В зависимости от отражательной способности материалов в сцене, между близко стоящими объектами происходит отражение света и цвета. Они действительны на коротких расстояниях и важны при изображении зеркальных и полированных поверхностей: стекла, металла, зеркал и т. п.
- Shadow rays — вспомогательный инструмент. Это не свет в полном понимании, а отслеживание лучей света в обратном направлении: от объекта, на который они падают, до камеры или источника света. Это часть так называемого рейтрейсинга и пастрейсинга, необходимых для корректной работы алгоритмов.
Организация света в 3D-движках визуализации
Перейдем к тяжелой артиллерии. Как именно распространяется свет и как он работает в 3D-движках?
Есть разные способы отрисовки света в 3D-движках разной степени физичности. Однако самый распространенный и действенный выглядит так:
- обсчет геометрии модели (полигонов)
- проведение виртуальных линий к центру каждого полигона от камеры (или к вершине)
- проведение виртуальных линий от источника света к центру каждого полигона
- учет угла падения света
- учет цвета и металлического блеска, искажения нормалей
- учет отраженного света
- учет всего поступающего на «матрицу камеры» света
- вывод рендера поэтапно
- наложение пост-эффектов
- сглаживание шумов
Подождите, скажете вы. Почему линии идут сначала от камеры, а потом от источника, когда по логике вещей наоборот? А это самая мощная техника обсчета света под названием Path Tracing.
Обычно рендеры работали по технологии растеризации: камера считывала только лучи, попадающие непосредственно от источника света на объект и отражающиеся в камеру. Это создает рисунок бликов в соответствии с окружающим светом, материалом поверхности и объемом, но для фотореализма этого часто недостаточно. |
Демонстрационная картинка с сайта NVIDIA
Ray tracing работает по принципу обратного прослеживания: путь света прослеживается от камеры до объекта и источника света. Этот способ использовали художники в обучении теории света еще в 16 веке для правильного отражения бликов и теней, а в 70-х годах прошлого века его обличили в математических формулах и теоретических расчетах. Через пару десятков лет Ray tracing начал потихоньку вживаться в кино для улучшения картинки (спасибо за это математикам студии Lucasfilm). Еще через десяток лет рейтресинг стал практически стандартом для компьютерной графики в кинематографе.
Есть только одна сложность: рейтресинг вычисляется уравнением. Да, не самым сложным (хотя для кого как), но его просто применить только в том случае, если предмет в кадре относительно плоский на плоском фоне. Скажем, у вас натюрморт с гипсовой пирамидой и кубом на фоне беленого картона. Компьютеру необходимо вычислить менее десятка лучей: 2 грани пирамидки, 2-3 грани куба (в зависимости от перспективы), стена, пол/стол. Итого всего 6-7 уравнений. Это ничто для современного железа, даже человек с этим может справиться. |
Знаете, какой мультик с трассировкой лучей был первым? Нет, не «История игрушек». «Приключения Флика» 1998 года — мультик про букашек, отсветы и просвечивания в котором заворожили зрителей. Чего стоит только глава саранчи в мрачном столбе света или финальный «бой» с применением чучела птицы из листьев. Как огонь и свет просвечивали сквозь эт листья!
Однако в современных рендерах и играх в сцене может быть миллион или даже миллиард треугольников. Задачка становится посложнее, не так ли? От этого фотореалистичные рендеры даже на мощных видеокартах рендерятся часами, а анимации для полнометражных мультиках приходится ждать неделями. Поэтому даже Голливуду для работы приходится использовать громадные арендные рендер-фермы: это как майнинговые фермы, но вместо эфемерной крипты видеокарты непрерывно рендерят покадровую анимацию. Впрочем, вопрос оптимизации мы поднимем позже.
Path tracing работает так: свет рендерится обратно: рассчитывается траектория от камеры до поверхности, а потом от объекта до другого объекта или до источника света. С первого взгляда, это похоже на рейтрейсинг, однако в его основе лежит гибридная технология: помимо отслеживания пути света, учитывается материал поверхности и рассеивание в пути. Интересно, что теоретически пастрейсинг был обоснован даже раньше, чем математическая формула для рейтрейсинга, однако долгое время вычислительной мощности компьютеров не хватало даже для рендера крошечной картинки 256 на 256 пикселей и подобную формулу использовали только в астрономических наблюдениях. Однако после 80-х годов дело пошло быстрее — компьютерная техника шагнула вперед.
Первый массовый полнометражный мульт с трассировкой пути — «Дом-монстр» 2006 года. Даже при относительно пластилиновой анатомии человечков, реалистичный свет, его отсветы на текстурах и рассеяние в дыму и тумане создают жуткую и приятную глазу картинку.
Однако как это можно запихнуть в персональный компьютер, если даже большим студиям требуются недели на рендеринг даже короткого мультика? Ответ прост: никак.
Самые мощные современные видеокарты все еще с трудом рендерят небольшие сцены с рейтрейсингом в реальном времени, а для игры важно именно реальное время — а как иначе играть? Пастрейсинг и вовсе почти невозможен.
Так что же, реклама видеокарт нагло врет? Вовсе нет. Рейтрейсинг они действительно выполняют, однако рассчитывают луч света не по полной формуле, а по упрощенной, и не от всех объектов и полигонов в сцене, а лишь от некоторых. Поэтому, а еще потому, какие объекты разработчики «подготовили» для рендера лучей, рейтрейсинг в некоторых играх выглядит значительно лучше, а где-то вовсе незаметен.
Кроме того, перед разработчиками стоит большая задача по той самой подготовке и оптимизации: не подготовят игру, не обеспечат специальными алгоритмами, графика будет хуже. Подготовят слишком много (Unreal Engine, например, позволяет накинуть на проект целиком модуль трассировки с автоматической оптимизацией, качество которой зависит только от прямых рук разрабов), и производительность будет падать до нуля.
То же самое относится и к трассировке пути: в играх она применяется ограниченно. Например, для объектов, маркированных как «вода», стеклянных частей антуража и одежды персонажа, близких планов глаз и лиц или катсцен/заставок.
Постановка света и рендер
Думаю, что вы помните, как несколько лет назад в интернете завирусился спор на тему цвета платья. Если вы пропустили, напомню. На одной из фотографий в чьем-то профиле было полосатое платье, одна часть которого пряталась в тени, а на другую падал яркий полуденный свет.
И прикол в следующем: одна часть платья казалась сине-черной, а другая желто-белой:
Это явление получило название платьегейта: Феномен синего или черного платья:
Одна фотография в случайном блоге вызвала активное бурление в интернете, которое в шутку прозвали «Платьегейт» (Dressgate, по аналогии с другими крупными скандалами и расследованиями в интернете). Из одно маленького обсуждения нарядов для праздника между друзьями выросли целые деревья рассуждений и споров.
Всему виной оказалась хроническая адаптация — одна из физиологических особенностей зрения, когда при разном освещении базовый цвет приобретает совсем другой вид:
Это интересный эффект, однако для людей, знакомых с теорией цвета и света хотя бы поверхностно (или просто призадумавшихся чуть дольше, чем пару секунд), он абсолютно понятен — оптическая иллюзия, основанная на цвето- и светосочетаниях, придумана не вчера и успешно использовалась еще древними греками.
В зависимости от целей, есть несколько типов рендера, по-разному отображающих свет в сцене. Кроме света, эти типы влияют и на другие параметры визуализации, но нам сейчас интересен именно свет:
Рендеры предпросмотра часто не имеют теней, отражения и карты нормалей не просчитываются, а текстуры цвета словно замыленные.
Предварительный рендер или рендер предпросмотра — это то, что вы видите в рабочем окне, когда моделируете и расставляете объекты в сцене. Как правило, текстуры в предпросмотре сглажены, нормали и альфа-каналы не отображаются, тени отключены, свет в такой сцене не просчитывается от источников, а словно размазан по всей сцене (для этого иногда используется дефолтная HDR-карта). Этот рендер нацелен на удобство работы, он оптимизирован и почти не нагружает визуализацией железо. |
Обзорный несюжетный рендер сцены
Видовой (обзорный) рендер — демонстрационный рендер, нацеленный на представление объекта или сцены. Как правило, делается на небольшом масштабе. Если цель видового редера — сцена или локация, в рендере должен быть виден как можно больший кусок сцены и ее характерные детали, а камера сконцентрирована на главной точке интереса (храм в джунглях, трон в зале, ворота в цитадель и т. д.). Свет распределен более-менее равномерно, без участков сильного затенения или пересвета. Идеально для этого подойдет свет HDR и множественные поинты рядом с точками интереса. Отражения и дополнительные эффекты почти не используются (за исключением случаев, когда они нужны в сцене — на поверхности воды, полированных поверхностях и т.п.). |
Обзорный рендер существа, как правило, делают для представления модели или на этапе разработки концепта
Если цель видового рендера — объект или существо, центр камеры должен быть наведен на голову/лицо существа или примерно на его центр масс (как правило, живот или чуть выше живота, для сохранения пропорций картины).
Видовой рендер объекта/существа подчиняется тем же правилам, что и концепт-арт с прототипом:
- Объект должен быть виден полностью, рассеянный общий свет с небольшим количеством теней для подчеркивания объема, при необходимости расставляются дополнительные точечные источники света (перед лицом/спереди сверху между камерой и объектом, сзади-сбоку более слабый источник для подсветки, зачастую другого цвета)
- Детали должны быть хорошо различимы, на модели присутствуют дополнительные карты по необходимости (нормалмапы, спекуляры, дисплейс-карты и т. п.)
- Высокая детализация сетки (хай-поли модель или активные спроецированные с хайполи дисплейсы)
- Размытие или deep of field почти не используется
- Избегайте пересвета и перезатенения и т. д.
Видовые рендеры часто делают с нескольких ракурсов. Для этого в сцене расставляют несколько камер, но рендерят обычно поочередно. Для персонажей делают минимум 2-3 рендера: в полный рост (спереди, сбоку, сзади, вполоборота, в позе и т. п.) и портретные рендеры.
Пара кликов — и вот у вас сцена из архивов фонда SCP. Или Спецбиотеха.
Постановочный (художественный) рендер — в отличие от предыдущего, цель постановочного рендера не представить общий вид объекта, а подчеркнуть его характер или передать историю. Здесь уже почти не используются HDR с рассеянным светом, источники света — поинты и прожекторы с концентрированным направленным светом. Тени и блики резкие, подчеркивающие поверхность и детализацию, отсветы и отражения. |
Для пейзажей используют HDR-карты и источник света-Солнце, активный deep of field, малый угол камеры и растянутый по горизонтали (например, для видов пустыни) или по вертикали (для городских высотных пейзажей) рендер. Зеркальные поверхности действительно зеркальные, множественные отскоки лучей и высокодетализированные текстуры придают картинке реалистичности. |
Оптимизация света
Как и в других ресурсоемких работах, в работе со светом существует оптимизация. Нужна она в первую очередь для экономии ресурсов компьютера и вашего времени.
Конечно же, на первом месте уже упомянутый пре-рендер с ограниченным светом.
На втором — рендер ограниченного пространства. Нет смысла рендерить всю сцену целиком, если у вас в фокусе лишь ее кусочек. Подобная технология используется в играх: на низкопроизводительных компьютерах при резком повороте камеры можно заметить, как «из воздуха» появляются кусты, деревья, трава и даже здания с персонажами.
Да, эта технология не нова — машинки и самолеты в приснопамятных GTA действительно материализовались из воздуха, так как компьютеры и движки того времени не имели возможности просчитывать траектории движения машин заранее. На третьем (но не по значению) — ограниченный просчет света. |
Слева — карта запеченного света, слева вверху — сцена внутри движка игры с активной текстурой запеченного света, слева внизу — та же сцена с того же ракурса, но без карты света. Игра Raid: Shadow Legends
Кроме того, в играх для слабых компьютеров и телефонов (и в старых играх), а также в кинематографическом рендере применяют запеченный свет или Ambient occlusion, сохраняющие тени и отсветы в отдельном текстурном файле. Но это работает хорошо только на статичных объектах: возможно, вы помните, как под сдвигаемыми шкафами в старых Resident Evil оставались темные круги и квадраты.
Проблемы света
Часть проблем и их решений мы уже рассмотрели выше. Однако заострить внимание на некоторых из них все же стоит.Сколько в сцене нужно света? Достаточно. Казалось бы, это просто. Однако в разных движках понятие «достаточно» разнится. Кроме того, у каждого 3D-художника есть свой «любимый масштаб»: кому-то нравится мельчить, сжимая базовую геометрию до 0,1 м, кому-то комфортно на масштабе 100 и ему нравится такое искажение камеры.
А это мы еще не касаемся больших сцен и сцен для импорта/экспорта в другие, в том числе, игровые движки! При изменении масштаба сцены целиком меняется и картина света, ведь увеличивается расстояние от источника света до цели камеры.
Для сравнения: вот демонстрационный рендер ангара. Первый — рендер на масштабе 20 на 40 м. Второй — увеличенный в 10 раз. Настройки текстурных карт, эмишн и источников света одинаковые, но на втором явно видно, что мощности света и длины лучей не хватает.
Чрезмерно затемненная сцена неинформативна и не имеет большого смысла. Некоторые движки даже «отказываются» рендерить сцену без источников света. Кроме того, недостаточно яркий свет не отрисовывает имитацию объема карт нормалей и адекватные тени от дисплейс-карт, что делает их практически бесполезными. То же можно сказать и о диффузных текстурах — недостаток света сделает раскраску модели неразличимой.
Артефакты переосвещенного тестового рендера — теней почти нет, сглаживание не справилось с засветами. Это рендер на Blender Cycles, на Iray картина будет похожей. Сайклз хоть и считается одним из самых «простых» движков, однако случайные артефакты и ошибки рендеринга возникают на нем очень часто.
Переосвещенная засвеченная сцена также помешает рендеру и восприятию. Бывают случаи, когда при переизбытке света процессор или драйвер прекращают работу с ошибкой. Избыток света делает диффузные карты цвета бледными или почти белыми, поверхности становятся неразличимыми, а тени теряются.
12 отскоков лучей против 4 отскоков лучей. Рендер ускорился почти в 4 раза, но для стекляшек нужно больше.
Отскоки лучей тоже нужны далеко не всегда. Камерный рендер ювелирного изделия, безусловно, нуждается в нескольких или даже нескольких десятках отсветов и преломлений. Художественному рендеру достаточно будет от 2 до 4 отскоков. Пейзажному и концептуальному рендеру они не очень нужны, более того, будут нагружать железо ненужными обсчетами. Впрочем, в снежных сценах вам придется добавить хотя бы пару отскоков для корректного отображения отсветов от замерзшей воды.
Настройки отсветов/отскоков лучей в Blender Cycles
Цвет света также очень важен. Выбранная палитра образует световой и цветовой рисунок, который сильно влияет на атмосферу и восприятие финального рендера.
Если речь идет о концептуальном видовом рендере объекта, то, как правило, используют один теплый и один холодный источник света. Теплый располагают с «лицевой» стороны модели как основной свет, а холодный — позади или сбоку для подчеркивания объема и цвета.
Более теплые тона подсознательно воспринимаются как признак уюта и безопасности, так устроена человеческая физиология, поэтому для интерьерных сцен преимущественно используют теплый желтоватый или оранжевый свет. Для «уличных» дневных рендеров используют бледно-желтый и белый свет, имитирующий свет Солнца, темно-оранжевый и красноватый для зорь и бледно-голубой для ночных рендеров.
Теплые и яркие цвета обычно ассоциируются с безопасностью (бета-версия игры Draconia)
Холодный свет зачастую ассоциируется с тревогой, опасностью и настороженностью. Голубой свет — отстраненный, его часто можно увидеть в хоррорах вместе с желто-зеленым и больничном серо-голубым. Не зря же призрачное бледное пламя часто изображают такого цвета в противовес «родному» желто-оранжевому. |
Два примера «агрессивных» холодного и теплого цветов: кроваво-красный или красно-оранжевый с густыми тенями и желто-зеленый с бледным туманом создают ощущение дискомфорта (Century: Age of Ashes)
Как решить проблемы со светом? Порой даже следуя всем умным и не очень умным советам, добиться желаемого, а главное, красивого результата очень сложно. Важнейшее ваше оружие — насмотренность. Это чувственный (в смысле — полученный с помощью органов чувств) опыт, который вы получаете порой неосознанно, просто наблюдая за окружающей реальностью. Однако если вы хотите стать полноценным художником (не важно, 2D или 3D, рядовым артистом, генералистом, концептуалистом или просто лепщиком), вам придется учиться смотреть.
Остановитесь как-нибудь на работе, на улице или в музее. Посмотрите внимательно на какой-нибудь объект: статую, балкон, да хоть на офисную мышку. Посмотрите на самый яркий блик и на самую темную зону. Проследите взглядом линию от блика до источника света. Посчитайте, сколько отсветов на нем и от каких объектов вокруг они отражаются. Обратите внимание на поверхность объекта, попробуйте понять, какие особенности поверхности и материала влияют на характер света. Сдвиньте немного голову, проследив за тем, как изменяются отражения и блики.
Это достаточно простое упражнение, однако повторяя его хотя бы раз в несколько дней с разными объектами, вы разовьете эту насмотренность намного быстрее. Со временем вы научитесь мысленно «отключать» из наблюдаемой поверхности отсветы и побочные тени (разумеется, не уничтожать их силой мысли, а игнорировать их при восприятии). Даже если вы хотите связать свою жизнь исключительно с аниме, такая насмотренность вам пригодится. |
Всего хорошего и не болейте!
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS
anastasiamrr
Красивое и полезное. Спасибо! Очень рада возвращению "Анатомии игры"
phanerostroi_evidence Автор
Спасибо за комментарий