DMC Sampler человеческим языком.

dmc sampler

Всем визуализаторам, рано или поздно, приходится иметь дело с настройками рендер-движка, в котором они работают. Первое, что каждый визуализатор хочет узнать, это как настроить максимально красивый рендер, считающийся минимальное количество времени. Как ни странно, после первых проб настроек, все приходят к выводу, что «бесплатный сыр» бывает лишь в мышеловке и «красота требует жертв» :D Выражаясь конкретно, это значит, что получить красивое и чистое изображение возможно лишь при достаточно высоких настройках рендерера. К счастью, в работе с V-Ray существуют компромиссы. Ведь качество рендера определяется не по какой-то абсолютной шкале, а исключительно субъективно, «на глаз». Здесь играет роль и ситуативность: где-то шум будет паразитным, а в какой-то ситуации и на каком-то материале он будет смотреться кинематографично и очень даже уместно.

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

Несложно предположить, что в современной и гибкой программе, такой как V-Ray, локально этого делать не требуется! Для этих целей в V-Ray рендерере имеются специальные инструменты, позволяющие осуществлять глобальный контроль качества визуализации. В частности, с их помощью можно осуществлять глобальный контроль точности и скорости просчета всех размытых эффектов сцены — тех, которые требуют самого большого вычислительного ресурса, регулируя алгоритмы адаптивности, главной особенности V-Ray рендерера. Размытые эффекты – это различные очень важные для фотореалистичности выдаваемого изображения эффекты, начиная от размытых отражений и заканчивая мягкими тенями источников света. Алгоритм адаптивности просчета этих эффектов называется DMC Sampler. Именно о нем и о его настройке пойдет речь в этом уроке.

Особенности DMC Sampler

Только некоторые пытаются раскусить тайну работы DMC Sampler. И неспроста. Многих 3d визуализаторов, особенно новичков, просто гипнотизирует сама аббревиатура DMC, вызывая ассоциации с чем-то чрезвычайно сложным и непостижимым.

Да, действительно, DMC Sampler это далеко не всем понятный, но на самом деле очень важный инструмент в арсенале любого опытного 3d визуализатора, как с практической, так и с теоретической точки зрения. Несмотря на его кажущуюся сложность при поверхностном ознакомлении, он достаточно логичен, и уж тем более, мистики в нем никогда не было.

Большинство вычислений, производимых V-Ray, основываются на специальном алгоритме Monte Carlo, который применяется в науке для симуляции математических и физических систем. Суть общего алгоритма Monte Carlo в том, что он осуществляет повторяющиеся случайные выборки для определения финального результата. Если быть точнее, V-Ray использует модифицированный алгоритм – т.н. Deterministic Monte Carlo sampling или сокращенно DMC Sampler. Он, в отличие от классического Monte Carlo, создает не случайный, а детерминированныйопределенный характер выборок, что позволяет получать результаты, не изменяющиеся от рендера к рендеру. На практике, DMC позволит загрузить сцену, произвести рендеринг, сгенерировав изображение, а потом закрыть ее, открыть снова во второй раз, запустив рендер, получить то же самое изображение, не отличающееся от полученного в первый раз.

В DMC Sampler воплощена главная особенность V-Ray, его адаптивность – способность приспосабливаться к условиям конкретной сцены. Она основана на принципе определения маловажных для финального изображения зон и снижения точности их просчета.

Костяк адаптивности V-Ray

В просчете размытых эффектов DMC Sampler-ом участвуют несколько ключевых факторов, это:

  • исходное количество сэмплов (выборок), установленное в каком-либо вышеупомянутом размытом эффекте
  • важность данного эффекта в конкретной зоне изображения
  • степень адаптивности алгоритма
  • допустимый порог разницы между сэмплами
Читайте также:  Vray Toon или как сделать мультяшно.

Основываясь на этих основных и паре дополнительных факторах, DMC Sampler решает, сколько сэмплов достаточно для просчета какого-либо конкретного эффекта.

Из этого следует, что установленное нами в каком-либо эффекте количество сэмплов параметром Subdivs, совершенно не означает, что именно столько сэмплов будет использовано в просчете. Для простоты понимания, можно представить исходно установленное в эффекте количество сэмплов, лишь как «заказ» количества сэмплов. Если мы настроили какой-то материал, например VRayMtl и накрутили ему 25 Subdivs для Reflection glossiness, то мы заказали у V-Ray 252, а это 625 сэмплов для просчёта данного эффекта. Во время рендеринга, это число может уменьшиться. Почему и как это происходит – читайте далее.

При рендеринге, в действие вступает алгоритм, учитывающий различные условия. Он самостоятельно оценивает степень важности данной зоны изображения. Если этот алгоритм сочтет какую-либо зону рендера маловажной, то он автоматически уменьшает установленное количество сэмплов для ее просчета. В учет берется цвет материала, сила применения эффекта, освещенность объекта, удаленность от источника света. Это и есть костяк адаптивности V-Ray и DMC Sampler в частности. Несмотря на то, что это, по сути, независимый алгоритм, настройки DMC Sampler позволяют его легко обуздать.

Контроль DMC Sampler

Органы управления DMC сэмплером находятся в одноименном свитке V-Ray:: DMC Sampler  вкладки Settings окна Render Scene (F10).

Adaptive amount – первый параметр, контролирующий работу адаптивного алгоритма, определяющий степень применения техники адаптивного сэмплирования. Он является ключевым в определении начального максимума сэмплов, достаточных для просчета эффектов. В нашем примере, Adaptive amount это степень «доверия» самостоятельному алгоритму адаптивности. Другими словами, выставленное здесь значение определяет, насколько мы доверяемся автоматическому определению маловажных зон и, соответственно, автоматическому снижению количества сэмплов. Значением 1 (единица), мы указываем сэмплеру, что мы полностью доверяем ему в определении маловажных зон и что он имеет право снизить количество заказанных нами сэмплов настолько, насколько считает нужным. Значение 0 (ноль) указывает рендереру, что мы совсем не доверяем ему в определении зон изображения, на которых можно сэкономить вычислительный ресурс, поэтому нулевое значение приравнивается полному отсутствию адаптивности. Промежуточные значения позволяют выбрать золотую середину, при которых сохраняется достаточная адаптивность, позволяющая существенно сэкономить вычислительный ресурс, и в то же время она позволяет избавиться от неизбежных неточностей, присущих практически любой автоматике. В оптимальных настройках V-Ray, исходное значение Adaptive amount, равное 0.85 следует оставлять неизменным.

Давайте продолжим следовать нашему примеру, когда мы установили Reflection glossiness в 625 сэмплов. Пусть, основываясь на важности зоны, в которой находится данный эффект, и на степени нашего доверия алгоритму адаптивности, DMC sampler счел заказанные нами 625 сэмплов излишними при данных условиях, потому снизил их максимум. На данном этапе для просчета нашего размытого эффекта остался максимум в 500 сэмплов.

Noise threshold – второй ключевой фактор, контролирующий поведение рендер-движка. Этот параметр указывает, когда задействовать т.н. Early termination (досрочное завершение). Другими словами, Noise threshold  решает, когда прекратить поочередный просчет сэмплов. Если предыдущий параметр Adaptive amount заранее определяет максимальное количество сэмплов, требуемое для удовлетворительного просчета нашего эффекта, то Noise threshold во время просчета, с каждым новым сэмплом решает, когда их уже достаточно. Важно отметить, что Noise threshold работает по факту – он проверяет динамику изменения результата с каждым новым сэмплом. Если, например, 145-й сэмпл из определенного ранее максимума в 500, не внес достаточного изменения в общую картину нашего эффекта на данном участке изображения, то DMC Sampler полагает, что дальнейшее «уточнение» неоправданно и прекращает просчет, несмотря на заданный максимум в 500 сэмплов. Таким образом, происходит еще одна экономия вычислительного времени.

Читайте также:  Как отрендерить большое изображение.

Noise threshold указывается в относительных единицах. Чем больше значение Noise threshold, тем более сильная разница будет рассчитываться как основание для досрочного завершения просчета и, следовательно, меньше сэмплов будет использовано для просчета размытых эффектов. Высокое значение Noise threshold проявится как шум на рендере, независимо от важности его зон. И наоборот, маленькое значение Noise threshold разрешит DMC сэмплеру запускать досрочное завершение лишь тогда, когда вновь полученное «уточнение» очень незначительно. Установленное по умолчанию значение Noise threshold, равное 0.01, является значением, рекомендованным к использованию в оптимальных настройках V-Ray.

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

Adaptive amount и Noise threshold наряду с изначальным установленным параметром Subdivs в каком-либо эффекте позволяют осуществлять контроль над адаптивностью, а, следовательно – скоростью и качеством рендеринга. Помимо описанных параметров, DMC Sampler дополнительно содержит еще несколько настроек, позволяющих еще больше уточнять контроль над своей работой.

Дополнительные параметры DMC Sampler

Ряд следующих параметров свитка V-Ray:: DMC Sampler не являются столь важными в повседневной практике, однако, в некоторых ситуациях, они могут оказывать существенное влияние на настройку качества и скорости визуализации.

Min samples – параметр, устанавливающий минимальное количество сэмплов для любого из размытых эффектов сцены. Этот параметр сообщает рендереру, что независимо от условий, он не имеет право выделить количество сэмплов ниже указанного, на просчет любого из размытых эффектов. Не важно, во сколько семплов адаптивный движок DMC Sampler оценил какой-либо эффект; так же не играет роли и достигнутый Noise threshold – эффект будет просчитан с минимумом сэмплов, указанным в этом параметре. Для оптимальных настроек V-Ray, значения Min samples в 8 сэмплов достаточно, чтобы подстраховаться в случае, если DMC Sampler преувеличит со стремлением сэкономить.

Global subdivs multiplier – параметр, глобально влияющий на количество Subdivs в сцене. Этот параметр буквально является глобальным Subdivs множителем. Если выставить значение Global subdivs multiplier равное 2, то локально установленные 25 Subdivs Reflection glossiness для нашего материала превратятся в 25×2 то есть 50 Subdivs.

Это самый простой и понятный параметр свитка V-Ray:: DMC Sampler, однако он вносит некую путаницу, т.к. несмотря на его глобальное название, не все Subdivs ему подчиняются.

Global subdivs multiplier является множителем для следующих размытых эффектов:

  • Glossy reflections/refractions
  • Irradiance map
  • Brute-force
  • Area lights
  • Area shadows
  • DOF
  • Motion blur

Однако, в виду наличия независимых алгоритмов адаптивности или ее принципиальной невозможности, Global subdivs multiplier не влияет на параметры Subdivs, в таких алгоритмах как:

  • Antialiasing
  • Light Cache
  • Photon map
  • Caustics

Разумеется, в универсальных настройках V-Ray, множитель Global subdivs multiplier должен равняться 1 (единице).

Time independent – параметр, полезный при рендеринге анимации. Суть его в том, что он активирует строгую, независимую от положения камеры, детерминированность сэмплирования,  что позволяет сохранять постоянство шума от кадра к кадру. Это избавляет анимацию от эффектов мерцания. Данная настройка практически не влияет на производительность рендерера.  В универсальных настройках V-Ray, параметр Time independent следует держать активированным.

Читайте также:  Архитектурная визуализация с использованием HDRI и Vray

Последняя настройка свитка V-Ray:: DMC Sampler – это выпадающий список Path sampler, в котором V-Ray предлагает выбрать метод генерации сэмплов. В списке всего представлено три метода; это Legacy, Latin super cube и Schlick sampling. Данные методы имеют свои математические особенности в способе осуществления выборок сэмплов, в которые не стоит вникать без особой необходимости. По умолчанию установлен самый лучший метод Schlick sampling, именно его и нужно использовать в универсальных настройках V-Ray.

Практический контроль скорости и качества V-Ray рендеринга

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

Тут все очень просто. Установленных по умолчанию значений вполне достаточно для фотореалистичного рендеринга. В этом случае качество и реалистичность генерируемых изображений скорее определяется локальными настройками сцены. Такими, как настройки освещения, материалов и просто композицией. Необходимость повышать настройки DMC Sampler, снижая его адаптивность, возникает крайне редко. Иногда бывает удобно повысить Global subdivs multiplier, так как это проще, чем  накручивать subdivs каждому источнику света или материалу сцены. Особенно, если сцена большая и их довольно много.

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

Думаем, Вы уже догадались, что для тестового рендера достаточно повысить значения адаптивности Adaptive amount, порог досрочного прекращения сэмплирования Noise threshold и понизить минимальное количество сэмплов Min samples вместе с общим множителем Global subdivs multiplier.

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

Заключение

Это и все премудрости управления скоростью-качеством рендеринга в V-Ray ;)

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

Друзья, искренне надеемся, что внимательно прочитав этот урок, Вы стали значительно ближе к пониманию сути адаптивности V-Ray. Также надеемся, что теперь многим стал ясен важный аспект глобальной настройки качества и скорости. Понимание назначения ключевых настроек свитка V-Ray:: DMC Sampler позволит даже начинающему визуализатору осуществлять точный контроль над скоростью рендеринга.

Этот урок дал Вам знания, которые помогают сэкономить время. В следующем уроке мы расскажем, как сэкономить свое терпение и деньги, обойдя настройками V-Ray проблему нехватки оперативной памяти. Конечно же, речь пойдет о настройках свитка V-Ray:: System, рейкастинге и акселерационной структуре данных.

Всем одновременно и быстрых, и красивых рендеров!

До встречи в следующем уроке, следите за обновлениями, и, конечно же, поддерживайте нас, приобретая понравившиеся Вам прекрасные премиум 3d модели :) Вы можете это сделать!

Свои вопросы и предложения по поводу данного урока смело пишите в комментариях, мы откликнемся и поможем Вам.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Уроки по компьютерной графике
Комментарии: 1
  1. Расстроенный Медвед

    ссылка не пашет

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: