Наша новая игра 8 сентября в раннем доступе на steam



За кулисами современного глобального освещения

Это вторая часть большой статьи о рендеринге: чем рендерить.

1.1. Глобальное освещение (GI)

В области нефотореалистичного рендера, особенно в Японии, была проделана большая работа, но умами владеет рендер фотореалистичный. То есть — глобальное освещение, рассеяние, цветные рефлексы (color bleeding), пробники света с места съёмок, а также шейдеры и источники света, все более и более близкие к реальному миру.

Наиболее распространенные методы расчета глобального освещения — это распределенная трассировка лучей (distribution ray tracing), трассировка пути (path tracing) и точечное глобальное освещение (point-based GI). У каждого метода есть свои преимущества и ограничения, как в смысле технической реализации, так и в смысле сложности настройки с точки зрения художника по свету или технического директора.

Первым полнометражным фильмом, в котором было использовано глобальное освещение, был Шрек 2 (как упомянуто в недавней статье Multiresolution Radiosity Caching for Efficient Preview and Final Quality Global Illumination in Movies 2012 Per H. Christensen и др.) В PDI/DreamWorks было просчитано и сохранено в виде двумерных текстур прямое освещение, затем с использованием распределенной трассировки лучей было просчитано глобальное освещение для одного отскока (single-bounce GI).

Мультик Университет Монстров, рендерер RenderMan Пиксар

 «Университет монстров», отрендерено в RenderMan от Pixar.

Как указано в статье, использование 2D текстур требовало, чтоб разные поверхности в сцене были параметризованы (описывались формулами). «Это похоже на метод карт освещенности (Irradiance Map/Atlas, сокращенно - ирмапы), но там используются трехмерные текстуры («brick maps»), поэтому поверхности не нужно параметризовать. Оба метода используют два прохода: один для вычисления прямого освещения и его записи (в виде 2D или 3D текстурных карт), и еще один — для финального рендеринга.» Карты освещенности запекаются, а не просчитываются в каждом кадре, подчеркивает Сэм Эсседиен из Clarisse iFX. «Мерцание (flicker) низкочастотного шума при использовании ирмап — это самое неприятное.» Поэтому, лучше рендерить ирмапу за один проход для всей анимации и сохранить её. Так получается в целом более быстрый и более стабильный по времени рендеринг.

Трассировка пути (path tracing) - это разновидность трассировки лучей (ray tracing) и является физически корректным «честным» (unbiased - правильно произносить АнбАяст, но в нашей речи укоренилось произношение анбиас) методом просчёта глобального освещения brute-force (правильно читать брут-фос, но обычно говорят брутфорс). Brute-force впервые использовался в фильме Monster House от Sony Pictures Animation, где в качестве рендерера использовался  Arnold.

Преимущества трассировки пути (path tracing) в том, что для нее не требуются такие сложные шейдеры, как для приближенных (biased - бАяст) методов или для подхода с «облаком точек». Также обеспечивается быстрая обратная связь при интерактивной настройке освещения.

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

  • использовать другое изящное решение, вроде «brick maps» плюс, скажем, построчный (scanline) рендер либо частичную трассировку лучей;
  • написать действительно хитроумный код, который бы рендерил очень быстро, какие-нибудь «быстрые умные лучи»;
  • направлять большинство лучей туда, где они нужны больше всего, то есть научиться лучше выбирать направление для наших быстрых умных лучей.

В основе трассировки лучей лежит идея выборки, в которой случайные лучи (samples) генерируются в соответствии с функцией распределения вероятности. Но для получения глобального освещения надо думать также и о том, что есть еще лучи, зависящие от материалов (шейдер/BRDF и т. д.), нужно делать выборку и по ним, ведь предметы тоже работают источниками света и вносят свой вклад в освещение. Из опыта фотостудий мы знаем о настройке света с помощью отражателей (или софтбоксов), которые используются для красивого освещения каждого объекта сцены отраженным светом. Самый большой пример такого способа — световой купол (light dome), или то, что мы знаем как «освещение на основе изображения» (image based lighting - IBL). В этом случае на купол или сферу натянуто изображение, как правило HDR. Любая часть купола (или сферы) освещает каждый объект внутри него, поэтому, повторим, тщательность выборки для такого огромного источника света очень важна. В конце концов, мы же пытаемся воспроизвести реальное освещение во всей его сложности, когда каждая часть влияет на каждую.

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

Обязаны ли мы использовать трассировку, физические источники света и физические материалы? Вовсе нет!

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

*Более того, чтобы достичь желаемого вида, совсем не обязательно всё делать честно, более того - это даже противопоказано. Если где-то можно сжульничать и упростить сцену - так и нужно делать. Если где-то можно не симулировать одежду, а анимировать её костями или морфами - так и делайте. Если где-то волосы можно нарисовать на текстуре, вместо использования реальных волос - так и делайте. [ * примечание автора блога]

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

Бросок кобры 2, рендеринг V-Ray в ILM

G.I. Joe: Бросок кобры-2. Отрендерено в V-Ray на ILM.

Требования к памяти — один из самых больших недостатков рейтрейсинга. Но вот исторический факт: 25 лет назад Renderman победил ограничения, накладываемые объемом оперативной памяти, получив возможность рендерить что угодно с какой угодно сложностью. И сегодня он, все так же, содержит рендерер REYES scan line и ray hider (отсекатель лучей). RenderMan замечателен не только успешной историей, но и всеобщим признанием его научных основ с возможностью написать собственный рендерер на его основе. Этот подход хорош сегодня, и будет так же хорош в дальнейшем.

Ниже мы немного остановимся на истории, но сегодня, когда есть Arnold, V-Ray, Maxwell, более новые программы вроде облачного Lagoa и GPU-ориентированного Octane, RenderMan является продуктом, который старается получать изображения трассировкой лучей еще аккуратней и еще быстрей в еще более конкурентной среде.

Maxwell Render с подповерхностным рассеиванием SSS

Maxwell рендер с подповерхностным рассеиванием SSS.

Насколько конкурентной? Со времени первого выпуска Art of Rendering (Искусство визуализации) прошло всего 18 месяцев, а ситуация изменилась разительно. Появились новые рендереры, и даже целые новые подходы. Мы увидели впечатляющие усовершенствования, смерть одних рендереров, рождение других, и совсем не похоже, чтоб процесс собирался останавливаться. Рендеринг — когда-то предсказуемое, понемногу эволюционирующее пространство — стал больше похож на панораму за окном сверхскоростного экспресса. Только для этой статьи мы взяли 20 интервью и будем рассказывать о 14 основных платформах, сосредоточившись на производственных рендерерах для кино и анимации, при этом совершенно не касаясь движков для игровых рендереров, GPU рендереров и мобильных предложений. Сатья Art of Rendering получила немало лестных отзывов, но многие выражали и недовольство. Перефразируя цитату из первой части:

«рендеринг теперь — это что-то вроде религии»



Подпишитесь на обновление блога (вот 3 причины для этого).
Введите ваш e-mail:


Читайте продолжение в статье Облако точек для глобального освещения (GI).

Спасибо Андрею Пшеничному за перевод!

Продолжение будет.




Вам понравилась статья? Хотите отблагодарить автора? Расскажите о ней друзьям.
Или подпишитесь на обновление блога по E-Mail.

Введите ваш e-mail (используется только для отправления обновлений блога):

Извините, в данный момент комметарии закрыты.

© 2008 - 2018 3dyuriki.com
Для связи со мной 3dyuriki@gmail.com