0 Пользователей и 1 Гость просматривают эту тему.
В этом уроке мы попытаемся обьяснить и прояснить процесс оптимизации настроек 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. При просмотре в различных видах рендера мы можем быстро определить и проверить уровень шума производимый различными аспектами сцены.
Рис. 09
Если смотреть в режиме рендера отражений, мы увидим, что шумы возникают только из-за отражений материалов.
Итак, теперь мы имеем четкое представление работы семплеров 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...