Рендеринг: выборка (сэмплинг) лучей по значимости

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

  1. перспективы рендеринга;
  2. куда стремится глобальное освещение;
  3. GI на основе облака точек.
  4. реалистичные материалы.

1.2.2. Выборка по значимости (importance sampling) и множественная выборка по значимости (multiple importance sampling, MIS)

Двигаясь дальше в рассказе о трассировке лучей, вспомним один из описанных ранее ключевых моментов: «научиться лучше выбирать направление для наших быстрых умных лучей». Но что это означает?

Предположим, что очень много лучей нужно не везде, а только в некоторых частях сцены. Тогда идеально было бы увеличить выборку именно в этих местах, не тратя усилий попусту там, где нет такой необходимости. Это и есть искусство выборки по значимости (importance sampling, IS). И название говорит само за себя — сэмплинг только там, где это кому-то нужно.

Сейчас в индустрии наблюдается четыре уровня реализации IS (от простых к сложным):

  1. Ненаправленные brute force рендереры — без IS.
  2. Рендереры с IS, но только для окружающего освещения (environment lights) или светового купола (dome lights): сэмплинг окружения, как, к  примеру, в Modo.
  3. Рендереры, применяющие IS и для света, и для материалов с интеллектуальным балансом между ними. Это называется «множественная выборка по значимости», MIS — метод, который вполне можно назвать «последним словом техники» (пример рендерера — RenderMan).
  4. Рендереры с расширенным MIS: применяют IS и для других процессов вроде SSS (Arnold).

Концепцию MIS нельзя назвать чем-то новым. Впервые ее описал в своей диссертации Эрик Вич (Eric Veach) из Стэнфордского университета в декабре 1997 года. Год спустя последовал специальный доклад на SIGGRAPH. Более того: как сказал Маркос Фаярдо, основатель Arnold, он перечитывает эту работу каждый год или два, «и с момента публикации эту диссертацию — которая, кстати, отлично написана — прочитал буквально каждый исследователь». Глубокое понимание рендера в диссертации Вича еще более поразительно, если вспомнить дату публикации — 1997 год (ремарка: потом Вич ушел в Google разрабатывать алгоритмы для AdSense и заработал миллионы долларов, по словам Фаярдо, который несказанно счастлив, что герой не остался без награды).

Ключевая для современных рендереров технология MIS была реализована Кристофом Гери (Christophe Hery) во время его работы на ILM совместно с Саймоном Премоза (Simon Premoze), который сейчас работает на Double Negative. Премоза с тех пор провел курсы на SIGGRAPH, и MIS стал важной частью рендеринга с использованием трассировки лучей.

Реализация MIS от Кристофа Гери использована в Университете Монстров, заместив собой формулу Power 2 из диссертации Вича. Это, кстати, один из очень немногих случаев в последнее время, когда программное обеспечение Pixar немного отошло от стандартного RenderMan, доступного для публики. Вряд ли так было задумано, но похоже, что Pixar немного опередила график работы собственно команды RenderMan, но сейчас все вновь синхронизируется, несмотря на сложность адаптации к новому подходу. Подробней о физически правдоподобных шейдерах для Monsters University в статье fxguide 2013.  

Чтоб прочувствовать всю мощь метода MIS, обратимся к научной работе Вича, все так же актуальной и сегодня.

Ниже, на иллюстрациях из статьи, слева показан IS с помошью BRDF материала, справа — сэмплирование источников света. На обеих картинках по 5 одинаковых (за исключением IS настроек) источников света. Четыре из них видны в кадре, а пятый просто для того, чтоб мы могли видеть сцену. Четыре источника в кадре равны по количеству испускаемой энергии, то есть чем больше размер источника, тем он тусклее. На переднем плане — четыре панели с бликами от наших источников. Задняя  панель глянцевая, передние все более рассеивающие (шероховатые/матовые).

Сэмплинг BSDF и источника света

(а, слева) Сэмплинг BSDF. (b, справа) Сэмплинг источников света.

Посмотрите на рис. a: у блика от самого маленького источника очень мало сэмплов, особенно заметен шум на передней, самой шероховатой панели. Но такой же BSDF (Bidirectional Scattering Distribution Function - двунаправленная функция распределения рассеивания) [BSDF - это более широкое понятие, чем BRDF, поскольку BSDF включает в себя и BRDF (отражения от поверхности), и BTDF (поглощение поверхностью) - примечание автора блога] для большого источника дает вполне приличную картинку: источник большой, отражение большое [то есть сэмплов достаточно много — прим. автора перевода].

При сэмплинге же по свету, на рис. b, картина прямо противоположная: имеем отличное распределение для маленького, но горячего, то есть с высокой энергией [и с большим количеством сэмплов — прим. автора перевода] источника света, а блики от больших источников становятся очень шумными. Как видим, здорово было бы уметь сэмплировать по выбору: иногда BSDF, а иногда — источники света, в зависимости от шероховатости поверхности и размера источников света.

К счастью, именно это и делает MIS. Сейчас, с помощью современных рендереров, такой результат, как на иллюстрации, трудновато будет воспроизвести — MIS просто не позволит рендерить настолько плохо, особенно со времен последнего Рендермана или Арнольда. В принципе, если помучиться с ручными настройками, что-то подобное можно получить в VRay (не в том смысле, что V-Ray чем-то хуже — ни в коем случае; просто все рендереры стараются ни при каких условиях не производить таких шумных, откровенно «неправильных» картинок).

Амид Раждаби (Amid Rajabi) отрендерил для fxguide иллюстрацию с помощью V-Ray, манипулируя настройками сэмплинга свет/BRDF и V-Ray Adaptive DMC (Deterministic Monte Carlo).

VRay BRDF сэмплинг

(а) V-Ray сэмплинг BSDF.

VRay сэмплинг источника света

(b) V-Ray сэмплинг источников света.

Результат понятен, но есть одно примечание: из-за ограничений 8-битного изображения, все 4 источника выглядят одинаково яркими, независимо от размера, но если рендерить в цвет с плавающей точкой (32 бита / HDR/ EXR), то будет заметно, что интенсивность падает с ростом размера источника.

Вот пример различий с использованием IS для GPU рендерера Octane от компании Otoy.

Отрендерено в реальном времени с помощью OctaneRender standalone 1.20 на 1 GTX 680 + 1 GTX Titan, использован path traced sub-surface scattering. Модель головы отсканирована с помощью LightStage, содержит более 17 миллионов треугольников.

Эту голову, кстати, можно свободно скачать:

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

Читайте продолжение в статье про IBL освещение.




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


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

P.S. Нед Старк (это не фото, это 3D) из сериала "Игра Престолов" на заглавной картинке был сделан с помощью ZBrush, рендерился в 3ds Max, а волосы - плагином Hair Farm. Обязательно смотрите оригинал и как создавались текстуры.




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

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

Оставить комментарий

(обязательно)

не публикуется (обязательно)

Все комментарии проходят ручную проверку. При малейшем намёке на спам или негатив - удаляю.

Подписаться по e-mail на новые комментарии

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