В этом уроке мы попытаемся обьяснить и прояснить процесс оптимизации настроек V-Ray рендера для получения максимально возможного качества рендера при минимамальном времени рендера данной сцены.
Очень часто в теме настроек семплинга V-Ray возникает много непонятного, а также не ясно, какие настройки семплинга идеальны. Вы наверно часто видели, как художники адаптируют "Универсальные настройки V-Ray"(Universal V-Ray Settings), поднимая значение настроек максимального подразделения (Max Subdivs) семплера изображения (Image Sampler), в частности сглаживание (Anti-Aliasing, or AA) до очень высоких значений (вплоть до 50 и даже до 100), а потом просто понижая значение уровня шума до тех пор, пока рендер не станет достаточно чистым, думая, что это и есть самый быстрый и наилучший способ рендера в V-Ray. Но с небольшим пониманием принципа работы V-Ray вы можете достичь более высокого качества рендера при том, что рендер будет производиться быстрее - в некоторых случаях рендер может быть быстрее вплоть в 3-13 раз по сравнению с универсальными настройками.
Прежде всего мы поговорим о концепции работы рендера и семплера V-Ray. Затем мы откроем примерную сцену для четкой демонстрации насколько оптимизированный рендер может быть чище и быстрее. Затем мы научимся определять различные типы шума, которые могут присутствовать в сцене. И в завершение я предоставлю пошаговое руководство оптимизации любой сцены для рендера с идеальным балансом качества и скорости.
Если вы уже знакомы с концепцией работы V-Ray, можете сразу переходить к пошаговому руководству.
Когда начинается рендер, лучи испускаются из камеры в сцену для сбора информации о том, какая геометрия будет видима в финальном рендере. Эти испускаемые из камеры лучи называются Основными Лучами(Primary Rays), также иногда называются лучами камеры или зрительными лучами и контролируются семплером изображения V-Ray (также известного под названием Anti-Aliasing).
Когда основной луч (Primary Ray) пересекается в сцене с геометрией, из точки пересечения испускается дополнительный луч дальше в сцену для сбора информации об освещении, тенях, глобальном освещении(GI), отражениях, преломлениях, подповерхностном рассеивании (SSS) и тд. Эти дополнительные лучи также называются вторичными лучами (Secondary Rays) и контролируются в семплере "V-Ray's DMC Sampler".
Рис. 01
Упрощенная диаграмма рейтрейсинга:
Основные лучи испускаются из камеры в сцену, пересекаются с геометрией и испускают вторичные лучи для просчета сцены.
С этого момента мы будем использовать вместо слова "Лучи" слово "Образцы" - потому что цель луча в том, чтобы взять образец сцены для сбора информации о том, что в нем происходит. Лучи = Образцы.
Для того, чтобы точно вычислить что происходит в сцене, необходимо взять множество основных и вторичных образцов. Чем больше собрано образцов, тем больше информации о сцене может получить V-Ray и тем выше будет качество рендера, то есть в рендере будет меньше шума. Как мы видим, шум появляется из-за недостатка информации. Присутствие в сцене шума значит, что V-Ray не смог собрать достаточного количества информации о том, что происходит в сцене. Поэтому, чтобы уменьшить шум, в V-Ray надо передать больше информации, то есть взять больше образцов.
Количество основных образцов излучаемых в сцену в основном контролируются в настройках Min Subdivs, Max Subdivs и Color Threshold семплера изображения. Количество вторичных образцов, излучаемых в сцену контролируются настройками Subdivs каждого источника света, GI, материала в сцене и настройками Noise Threshold в семплере DMC Sampler. (Noise Threshold в Maya называется - Adaptive Threshold)
Перечислим важные термины:
Ray = Луч= |
Sample Образец |
Primary Samples = Основные образцы = |
Образцы контролируются чемплером изображения V-Ray's Image Sampler (Также называемого Anti-Aliasing или АА), их цель вычислить геометрию сцены, а также текстуры, глубину, размытие в движении. |
Secondary Samples = Вторичные образцы = |
Эти образцы контролируются семплером V-Ray's DMC Sampler, их цель вычислить освещение, GI, тени, отражения материалов, преломления материалов и подповерхностное рассеивание (SSS) |
Noise = Шум = |
Недостаток информации |
Subdivs = Подразделения = |
Квадратному корню актуального значения образца. Так Subdivs2 = Samples. Например: 8 Subdivs = 64 Samples. (82 = 64) |
В этом уроке мы научимся наилучшим способом использовать Основные и Вторичные образцы для получения наивысшего качества рендера (наименьшего количества шума) в рекордно короткие сроки рендера.
Частота дискредитации (SampleRate) элемента рендера -- это один из самых важных инструментов, который мы будем использовать для оптимизации рендеров. Это способ V-Ray четко показать нам, что семплер изображений (АА) делает с каждым данным пикселом. Делает он это при помощи присваивания определенного цвета каждому пикселу рендера исходя из того, сколько основных образцов(АА) берется с этого пиксела (его можно просмотреть в просмотре частоты дискредитации (SampleRate) элемента рендера).
Рис. 02
Частота дискредитации(SampleRate) элемента рендера (справа), отображает сколько основных образцов берется с каждого пиксела рендера(слева).
Итак в сцене, в которой семплер изображений (АА) установлен в 1min и 10max сабдивов(Subdivs)(другими словами 1min и 100max основных образцов):
В этом уроке мы будем работать с простой тестовой сценой состоящей из: плоскости с несколькими шарами на ней, различных простых материалов (включая дифуз, зеркальное отражение, зеркальное преломление и SSS), 2х Area лайтов и домлайта с HDRI ([i]Домлайт - это купольный источник освещения[/i].) . GI включено и установлено в Brute Force + Light Cache. Эту сцену можно скачать здесь.
Мы начнем с базового рендера со следующими настройками:Рис. 03
Базовый Рендер
1min & 8max Subdivs = Image Sampler (AA)
8 Subdivs = Lights, GI, и Materials каждый.
Теперь давайте посмотрим, что же происходит в этом базовом рендере. При помощи настроек рендера вы говорите V-Ray:
"Я разрешаю тебе использовать вплоть до 64(8 Subdivs) основных образцов(АА) для каждого пиксела для вычисления происходящего в этой сцене, а также для ослабления шума настолько хорошо насколько позволяет Диапазон шума (Noise Threshold)... Но для каждого основного образца, который ты возьмешь я разрешаю тебе взять 1 дополнительный образец для того, чтобы вычислить что происходит со светом, GI и материалами".
В этот момент вы можете спросить:
"Стой, только один дополнительный образец для света, GI и материалов? Ведь их должно быть 64(8 Subdivs) как мы и настроили?"
Хорошо, важно заметить, что хотя свет, GI и материалы установлены в 64(8 Subdivs) каждый - внутренний алгоритм V-Ray делит их на значение AA Max Samples вашей сцены. Таким образом вместо 64 образцов для каждого источника света и материала они делятся на AA Max из 64 образцов(8 Subdivs), и соответственно мы имеем только 1 дополнительный образец, который берется для каждого источника света, GI и материала. (64 вторичных образца/ 64 образца = 1 дополнительный образец).
Причиной тому, что V-Ray делает именно так является то, что его внутренние алгоритмы составлены так, чтобы стараться удержать свои два семплера в балансе. Об этом стоит рассуждать следующим образом - чем большее количество основных образцов берется из вашей сцены, тем пропорционально меньшее количество вторичных образцов необходимо для вычисления происходящего в сцене (позже мы увидим, что это не всегда желательно). На первых порах этот баланс между Image Sampler и DMC Sampler может удивлять, но из этого следует очень важный момент: Если вы увеличиваете значения в настройках семплера изображения(АА), V-Ray пытается компенсировать их внутренним сбросом настроек DMC Sampler. Позже, если вам будет интересно разобраться более существенно с внутренними формулами V-Rays вы можете обратится к DMC Calculator , который я разработал- но сейчас это не важно.
Вернемся к рендеру:
V-Ray завершает рендер настолько качественно, насколько может, но предупреждает вас (большим количеством красных пикселов в окне частоты дискредитации(SampleRate) элемента рендера):
"Я не смог вычислить что происходит во всей сцене по причине уровня качества, который вы установили (noise threshold)! - Много времени я потратил на использование всех 64х основных образцов при 1м вторичном образце для каждого источника освещения, GI и материала, который вы мне разрешили использовать, но мне все еще недостаточно информации об этих зонах".
Если мы посмотрим на рендер - мы заметим, что хотя детали геометрии (грани обьектов) четко определены и достаточно чисты, в изображении присутствуют также зоны с высоким уровнем шума, особенно заметные на отражениях и в тенях. Итак, мы имеем этот шумный базовый рендер, и мы имеем два способа уменьшить шум до нужного нам уровня (noise threshold):
Вариант #1 = |
Увеличить AA Max Subdivs - Разрешить V-Ray использовать больше основных образцов для обсчета сцены, но снова же только 1 вторичный образец для каждого источника освещения, GI и материала на каждый основной образец. |
Вариант #2 = |
Увеличить Lights / GI / Materials Subdivs - УказатьV-Ray использовать то же количество основных образцов, но соостветственно увеличить количество вторичных образцов на каждый основной образец для более четкого просчета сцены. |
Итак, давайте сначала сделаем то, что делают большинство людей, чтобы получить более качественный рендер - адаптируем, так называемые "Универсальные настройки V-Ray" и попробуем дать столько основных образцов(АА), сколько необходимо для того, чтобы убрать шум.
Рис. 04
Вариант #1 Render - Увеличено AA Max Subdivs
1min & 100max Subdivs = Image Sampler (AA)
8 Subdivs = Lights, GI, and Materials each.
0.005 = Noise Threshold.
Теперь давайте посмотрим что же происходит в рендере по Варианту #1. При помощи настроек мы говорим V-Ray:
"Я разрешаю тебе использовать вплоть до 10000(100 subdivs) основных образцов(АА) на каждый пиксел для выяснения происходящего в сцене и уменьшения шума до возможного для тебя уровня, который мы указали в уровне шума (Noise Threshold)... Но для каждого основного образца я разрешаю использовать только 1 дополнительный образец для каждого источника света, GI и материала".
Опять же, вспоминаем, что хотя в настройках указано 64 образца(8 Subdivs) для каждого источника света, GI и материала, внутренние алгоритмы V-Ray делят это значение на значение AA Max Samples для вашей сцены. Так, что вместо 64х образцов мы получаем разницу от деления их на максимум из 10000 образцов(100 Subdivs), и в результате имеем, что для каждого источника света, GI и материала берется только один дополнительный образец.(64 Secondary Samples / 10000 Primary Samples = 1 Secondary Sample).
V-Ray делает рендер настолько качественно, насколько может, и говорит нам (большим количеством пикселов синего цвета в окне частоты дискредитации (SampleRate) элемента рендера):
"Я смог вычислить что происходит в сцене до того уровня качества(noise threshold), который вы установили! - Фактически я смог это вычислить не используч все 10000 основных образцов, который вы мне разрешили при 1м дополнительном образце для каждого источника света, GI и материала на данный пиксел."
Если мы посмотрим на рендер по Варианту #1, мы увидим, что шума значительно меньше по сравнению с базовым рендером. Время рендера увеличилось на 11.49 минуты(в 9.8 раз) по сравнению с временем потраченным на базовый рендер, но это и ожидалось от высококачественного рендера, не так ли? Достигнув такого результата большинство людей решает, что все очень хорошо и называют рендер ЗАВЕРШЕННЫМ!
Но что будет, если мы попробуем сделать рендер по Варианту#2, который мы упоминали раньше? Вместо увеличения AA Max Subdivs, что будет если мы увеличим только Lights / GI / Materials Subdivs? Давайте посмотрим...
В этот раз мы сделаем кое-что другое - мы скажем V-Ray брать то же количество основных образцов, что и в базовом рендере, и позволим V-Ray брать больше дополнительных образцов для каждого основного образца для лучшего просчета сцены.
Рис. 05
Рендер по Варианту #2 - Увеличено Lights, GI, and Materials Subdivs
1min & 8max Subdivs = Image Sampler (AA)
80 Subdivs = Lights, GI, and Materials each.
0.01 = Noise Threshold.
И снова, давайте посмотрим, что происходит в рендере по Варианту#2. При помощи настроек мы говорим V-Ray:
"Я разрешаю тебе использовать вплоть до 64(8 Subdivs) основных образцов(АА) для каждого пиксела для вычисления происходящего в этой сцене, а также для ослабления шума настолько хорошо насколько позволяет Диапазон шума(Noise Threshold)... И для каждого основного образца, который ты возьмешь я разрешаю тебе взять вплоть до 100 дополнительных образцов для того чтобы вычислить что происходит с каждым источником света, GI и материалами".
Опять же, вспоминаем, что хотя в настройках указано 6400 образца(80 Subdivs) для каждого источника света, GI и материала, внутренние алгоритмы V-Ray делят это значение на значение AA Max Samples для вашей сцены. Так, что вместо 6400х дополнительных образцов мы в результате имеем, что для каждого источника света, GI и материала берется только 100 дополнительный образец.(6400 Secondary Samples / 64 Primary Samples = 100 Secondary Sample).
V-Ray делает рендер настолько качественно, насколько может, и говорит нам (в окне частоты дискредитации(SampleRate) элемента рендера):
"Я смог вычислить почти все происходящее в сцене вплоть до указанного вами уровня качества(noise threshold)! - Фактически, в большинстве случаев я смог все вычислить не используя все разрешенные 64 основных образца на каждый пиксел! И это из-за того, что у меня были дополнительные 100 дополнительных образцов для каждого источника света, GI и материала, которые в этот раз давали основному образцу так много информации!"
Если мы посмотрим на рендер по Варианту #2, мы заметим, что шума значительно меньше по сравнению с базовым рендером. Время рендера увеличилось на 4.38 минуты(в 4.5 раза дольше) по сравнению с базовым рендером, но это и ожидается от высококачественного рендера.
Но здесь мы имеем кое-что интересное...
Если сравнить рендер по Варианту #2 с рендером по Варианту #1 мы заметим, что рендер по Варианту #2 получился чище!
И посмотрите на это! - рендер по Варианту #2 прошел в 2.2 раза быстрее чем рендер по Варианту #1 ! - 5.58 минуты против 13.04 минут!
Рис. 06
Слева рендер по Варианту #1 и справа рендер по Варианту #2.
Внизу эти же рендеры, увеличенные до 400%, чтобы лучше рассмотреть шумы.
Почему так? Почему увеличение значений настроек DMC Sampler (Lights / GI / Materials Subdivs) вместо увеличения значений настроек Image Sampler (AA) в результате дало более чистый результат при более высокой скорости рендера сцены? Если мы в Варианте #1 уменьшим уровень шума, мы все равно будем иметь более шумный результат чем в Варианте #2! Ответ лежит в том, что мы в самом начале заметили в базовом рендере...
В базовом рендере, когда мы видели, что хотя грани обьектов были четкими и чистыми, шум в основном был сконцентрирован в зонах отражения и тени. Итак, если вы помните, чему мы научились раньше: Основноые образцы(АА) используются для вычисления геометрии, текстур, глубины и размытия в движении в сцене. Тогда как дополнительные образцы используются для вычисления источников освещения, GI, матералов и тд.
Итак в случае уменьшения шума в базовом рендере выбор между Вариантом #1 и #2 очевиден! Зачем использовать калькулятор вместо молотка? Семплер изображения(АА) уже сделал работу, для которой он предназначен - вычислил детали геометрии (грани обьектов) чисто и четко. Поэтому вместо сбора дополнительных основных образцов для уменьшения шума - лучше использовать дополнительные образцы в DMC Sampler (Lights / GI / Materials Subdivs), так как он может хорошо сделать работу, для которой он предназначен - чистка шума в зонах света, тени, GI, отражениях и преломлениях. Это и есть ответ!
И теперь мы начинаем понимать почему "Универсальные настройки V-Ray" в 1min и 100max в большинстве случаев неэфективны для рендера сцены - фактически они и не являются наилучшими! Универсальные настройки V-Ray сделаны для того, чтобы пользователям, которых не беспокоит оптимизация настроек рендера и понимание работы V-Ray было легко работать с V-Ray. Это просто автопилот V-Ray. Они позволяют контролировать качество рендера изменением только одного значения - уровня шума(noise threshold). Если в рендере слишком много шума, просто понизьте это значение и V-Ray продолжит собирать основные образцы(АА) со сцены, пока не достигнет значения уровня шума, что в свою очередь гарантирует хорошего качества рендер с минимальным пониманием принципа работы V-Ray. Но этот рендер никогда не будет настолько чистым и быстрым, чем тогда, когда вы потратите время на понимание его принципов работы и баланса который необходим для каждой сцены между семплером изображения и DMC Sampler.
И вдобавок - рендер по Варианту #2 все еще можно оптимизировать! Используя дополнительные трюки описанные в процедурах в конце этого урока, мы можем сократить время рендера с 5.58 минут до 4.53 минут, совсем чуть чуть подняв уровень шума! Финальный рендер просчитывается в 2.7 раза быстрее по сравнению с рендером по Варианту#1!
Рис. 07
Слева рендер по Варианту #1 , и справа еще более оптимизированный рендер по варианту #2 . Скорость в 2.7 раза выше!
Вот еще один пример оптимизации, на этот раз с более производственно ориентированной сценой...
Оптимизированный рендер (справа) просчитывается на 35% быстрее чем при универсальных настройках (слева) и имеет меньше шума и выше качество. Также заметьте, насколько аккуратнее стали отражения - заметно на полу напротив выхода в холл.
Рис. 08
Слева рендер на универсальных настройках и справа оптимизировнный рендер.
Рендер сцены Peter Guthrie
Ключем к хорошей оптимизации рендера является правильное определение аспектов сцены, дающих шум и применением правильного семплера с достаточным количеством образцов. Некоторые сцены будут требовать больше основных образцов, другие - больше дополнительных образцов. Вот основное руководство:
Условия в которых семплеру изображения(АА) понадобится больше основных образцов для устранения шума:
Шум, производимый DMC Sampler немного сложнее увидеть и сложнее понять что его причиняет. Но зато у нас есть некоторые инструменты, которые дают нам возможность его увидеть - V-Ray's Render Elements: Lighting, Global Illumination, Specular, Reflection, and Refraction. При просмотре в различных видах рендера мы можем быстро определить и проверить уровень шума производимый различными аспектами сцены.
Итак, теперь мы имеем четкое представление работы семплеров V-Ray и того как определить источники шума в нашей сцене и теперь мы можем следовать пошаговому руководству, которое поможет вам оптимизировать любую вашу сцену.
Основная идея этой процедуры заключается сначала в настройке семплера изображения (АА) до уровня, достаточного для четкого просчета геометрии, текстур, глубины и размытия в движении, а затем подстройкой аспектов DMC Sampler (Lights/Specular/Shadows, GI, Material Reflection/Refraction) по отдельности для устранения шума. Итак мы начинаем с настроек V-Ray по умолчанию и выводим наш рендер на самый базовый уровень для начала оптимизации:
Настройка семплера изображения (AA):
Настройка Lighting / Shadows / Speculars сцены:
Настройка Global Illumination (GI) сцены:
Настройка Отражений и Преломлений в сцене:
Теперь ваш рендер оптимизирован для идеального времени просчета исходя из качества (noise threshold), которое вы установили!
Если вы хотите уменьшить уровень шума, понизьте значение 'Color Threshold' в семплере изображения и увеличьте значения Lights / GI / Materials Subdivs до нужного уровня.
Рис. 10
GIF анимация показывает, как увеличение количества образцов в DMC Sampler уменьшает нагрузку на Image Sampler. Значения Image Sampler's Min & Max Subdivs не изменяются, тогда как значения Lights / GI / Materials Subdivs сцены поднимаются - в результате требуется меньше основных образцов (AA) , а качество рендера увеличивается.
В завершение - важно помнить, что каждая сцена индивидуальна и таким образом имеет свои требования к обоим семплерам V-Ray. Настройки, оптимизирующие одну сцену могут привести к сильным ухудшениям в рендере другой сцены - поэтому помните: Ваши настройки и возможность оптимизации могут быть разными в разных сценах. Немного тренировок, терпения, экспериментов дадут вам интуитивное понимание того, какие настройки нужны определенной сцене.
Надеюсь, этот урок помог вам разобраться с оптимизацией настроек рендера V-Ray. Если у вас возникнут вопросы или проблемы с пониманием определенных моментов, можете обращаться ко мне.
Благодарю тех, кто мне помогал:
Toni Bratinevic и John O'Connell за информацию, которой они поделились с обществом на эту тему.
John Rouse и Nicolas Nandi за их помощь в проверке процедур, приводимых в этом уроке.
Peter Guthrie за разрешение использовать и его сцены в качестве примеров.
Удачи в будущих проектах!
а вчера увидел на шелфе кнопку Vray quick setings...Maya или Max?