Как сделать в нужных пикселях

Как сделать в нужных пикселях

Как сделать в нужных пикселях

Эта статья написана для V-Ray 1.5. Если вы используете более новую версию, то можете обнаружить, что некоторые из описанных здесь опций больше не существуют, расположены в другом месте или называются иначе. Несмотря на это, информация ниже подана в стиле обучающего материала и может быть полезна если вы интересуетесь базовыми концепциями процесса рендеринга или же общей методологией настройки (продакшен) рендерера. Актуальные имена аналогичных опций и их расположение смотрите в онлайн-документации для вашего программного обеспечения на сайте разработчика.

Всем привет! Итак, мы продолжаем настройку глобального освещения в V-Ray. В предыдущем уроке об общих настройках и принципах Indirect Illumination мы рассмотрели, что такое глобальное освещение и зачем оно необходимо. В данном уроке мы рассмотрим принципы работы, параметры, а также аргументы за и против алгоритмов просчета вторичных GI отскоков Brute Force и Irradiance Map.

Содержание:

Этот урок ответит на следующие вопросы:

- Как работает Brute force GI engine?

- Куда делся Quasi-Monte Carlo GI engine?

- Как работает Irradiance Map алгоритм?

- Как выглядит трехмерная карта Irradiance?

- Каким образом IM определяет детализацию сцены?

- Что такое предпроходы IM?

- Почему не следует устанавливать одни и те же значения Min и Max rate?

- Как работает опция Detail enhancement в Irradiance Map?

- Для чего предназначена функция Multipass?

- Какое значение интерполяции дает сглаженную, но детализированную Irradiance Map?

- Почему возникают яркие световые пятна на визуализации и как от них избавляться?

best v-ray engine settings 2.2 by renderstuff

Беспристрастный Brute force GI

Brute force GI – базовый алгоритм, устанавливающий фиксированное количество вторичных лучей, отраженных от точки в сцене после попадания в нее первичного луча от источника света. Если Вы помните, ранее было рассмотрено, что луч от источника света попадает на поверхность объекта сцены и разбивается на множество дополнительных лучей, которые, в свою, очередь бомбардируют другие объекты сцены (вспомните пример с одуванчиком). Разумеется, что на чем большее количество отраженных диффузных лучей вторичного освещения будет разбит луч первичного света, тем больше деталей и меньше шума будет на финальном изображении.

Subdivs – параметр, банально определяющий количество вторичных лучей, на которое будет разбит каждый луч от первичного источника света, попавший на объект сцены. Числовое значение параметра Subdivs – это не буквально количество лучей, на которое будет разбит каждый луч от первичного источника света. Реальное число лучей будет равняться квадрату этого числа. То есть, если Subdivs равно 2, то это значит, что первичный луч будет разбит на четыре вторичных луча, если равно 4, то первичный луч будет разбит на шестнадцать вторичных и так далее.

Secondary bounces – величина, задающая, какое количество раз будут отражаться лучи дополнительных отскоков. Он активен, только если Brute force алгоритм установлен как алгоритм просчета Secondary bounces в выпадающем списке GI engine, так как именно в этом случае он будет просчитывать нужное количество переотражений. Если Brute force установлен как Primary GI engine, то Secondary bounces параметр будет неактивным.

Алгоритм Brute force не имеет адаптивности и попросту просчитывает GI для каждого пикселя финального изображения сцены, в не зависимости от ее сложности, цветов и детализации объектов. Тем самым он расходует одинаковое количество вычислительных ресурсов, как в заметных, так и в маловажных участках сцены. Совсем не странно почему он был назван грубой силой :) Также хочется отметить, что Brute force это прямой расчет по методу Quasi-Monte Carlo (QMC) и именно так он назывался в ранних версиях V-Ray, что иногда вызывало путаницу, когда 3d визуализаторы долго искали в новом интерфейсе V-Ray алгоритм Quasi-Monte Carlo GI.

Грубая сила этого алгоритма весьма иррациональна, ее использование приводит к чудовищным срокам расчета даже несложных сцен при адекватном уровне качества. Поэтому его не стоит номинально использовать в универсальных настройках V-Ray как рендер-движок ни первичных, ни вторичных отскоков. Его использование оправданно лишь в особых ситуациях, когда остальные алгоритмы, из-за своей адаптивности не могут справиться с просчетом мелких деталей в сцене, но об этом позже.

Адаптивный Irradiance map

Irradiance map – это адаптивный алгоритм просчета отскоков глобального освещения. Основная особенность его работы заключается в выявлении наиболее значимых детализированных зон визуализируемой сцены, вычислении в них GI и игнорировании менее важных зон, с последующим заполнением информации о GI в них путем интерполяции информации из уже просчитанных важных зон.

Для того, чтобы понять как именно работает и что из себя представляет алгоритм Irradiance map, давайте взглянем на его карту, которая, кстати, называется аналогично - Irradiance map.

Пред Вами та тестовая сцена, которая была использована в предыдущем уроке о GI, с той же геометрией и тем же первичным освещением, что и ранее. Для наглядности из материалов сцены удалены все текстуры, дабы не мешать обзору Irradiance map. Внимательно посмотрите на зоны наибольшего скопления белых точек. Это внутренние углы помещения, скругленные углы ChamferBox и места на близко расположенных друг к другу частях разных объектов, в частности на стороне сферы, обращенной к кубу, а также на зоне соприкосновения куба с лицевой стеной. Эти зоны имеют наибольшую важность в получении красивого детализированного вторичного освещения.

Именно совокупностью этих точек и является карта Irradiance map, которую мы и наблюдаем на изображении. Данные точки содержат информацию о цвете и яркости GI в этих зонах. Остальная часть изображения заполнена серым цветом. Серые зоны на Irradiance map это части сцены, где Irradiance map не содержит информацию о GI. Однако это полностью компенсируется интерполяцией между уже вычисленными точками Irradiance map. Другими словами, Irradiance map вычисляет наиболее важные зоны, просчитывая лишь их, после чего недостающую информацию о не просчитанных зонах попросту компенсирует интерполяцией, взяв данные о цвете и яркости из уже имеющихся.

Вполне очевидно, в чем заключается адаптивность Irradiance map. В отличие от Brute force (BF), Irradiance map (IM) не просчитывает каждый пиксель сцены. Он просчитывает лишь важные ее зоны, за счет чего происходит весьма существенная экономия вычислительных ресурсов.

Алгоритм Irradiance map строит трехмерную карту точек, содержащих информацию о GI точно на поверхности объектов сцены. В объеме карта Irradiance map этой сцены выглядит следующим образом:

Если посмотреть на показанные выше второй и третий скриншоты специальной утилиты Irradiance map viewer, то отчетливо видно не только факт трехмерности Irradiance map, но и ее зависимость от вида из камеры, через которую происходит визуализация сцены. В частности, сразу же бросается в глаза отсутствие точек GI на невидных в кадре камеры частях куба и на той части помещения, которая находится за ней.

В IM "прощупывание" важных мест сцены, в которых ведется просчет GI, реализовано очень элегантным образом. Оно использует концепцию субсэмплирования, рассмотренную ранее в первом уроке серии уроков оптимальных настроек V-Ray. Для начала, GI всей сцены просчитывается в минимальном разрешении, которое обычно меньше разрешения рендеринга, точно также не адаптивно, как и BF алгоритмом. После чего, из полученных данных выбираются наиболее важные, то есть вычисляются те самые зоны, где следует вести более точный просчет. И начинается просчет в следующем по величине разрешении, но лишь в требуемых зонах. Эта процедура поэтапно повторяется несколько раз, каждый раз увеличивая разрешение, и так, пока не достигнет максимально установленного разрешения просчета IM. Минимальное и максимальное разрешение просчета IM указывается в ее параметрах. Шаг просчетов отличается вдвое большим или вдвое меньшим значением разрешения, то есть в четыре раза по площади изображения в пикселях. Например, при разрешении рендеринга 800 на 450 пикселей, следующий шаг субсэмплирования это 400 на 225, следующий – 200 на 113 и так далее. Стоит отметить, что IM позволяет использовать как субсэмплирование, так и суперсэмплирование. То есть карта IM может быть просчитана как на меньших, чем разрешение рендеринга, так и на больших, в четное количество раз, разрешениях.

Каждая фаза просчета GI называется pass, т.е. проход. Фазы просчетов, с помощью которых происходит определение важных зон, называются Prepass, т.е. предпроход. Прогресс просчета предпроходов, их общее количество и то, какой предпроход вычисляется в данный момент можно наблюдать в системном окне Rendering, появляющемся после старта рендеринга.

Давайте посмотрим, как выглядит просчет IM на примере четырех предпроходов.

В этом примере максимальным разрешением просчета IM является разрешение 800 на 450, равное разрешению рендеринга самого финального изображения. Для определения важных зон, сначала используются три субсэмплированных предпрохода на меньших разрешениях: 100 на 56 в первом предпроходе, 200 на 113 во втором предпроходе, и 400 на 225 в третьем. Вместе с финальным четвертым предпроходом выходит всего четыре предпрохода IM.

Обратите внимание на первый предпроход. Можно заметить, что в нем не выделены никакие зоны, все изображение просчитано одинаково с одинаковой точностью, так же, как просчитывает алгоритм BF. Совершенно иную картину можно наблюдать уже на третьем и, особенно, на последнем четвертом предпроходе. Сразу же становится видно, как алгоритм IM выделил важные детали сцены, усыпав их сэмплами GI, и существенно проредил плоские не детализированные поверхности. Неважными оказались такие части, как плоскость стен, плоская грань куба и т.д. На них осталось лишь по несколько точек, которые позже будут просто интерполированы алгоритмом IM между собой, заполнив пустые зоны. Также сразу же можно заметить, что размер семплов относительно всего изображения на разных предпроходах – разный, т.к. чем больше разрешение просчета IM, тем меньше величина одного семпла, соответственно – больше деталей и точнее IM.

Несложно догадаться, что карта GI, просчитанная IM даже на полном финальном разрешении без предварительных предпроходов, а значит без вычисления важных зон, будет так же груба и не адаптивна, как и в случае просчета GI с помощью алгоритма BF. Время ее вычисления конечно же будет почти столь же долгим, как и в случае с BF.

На этом изображении показана IM карта, просчитанная одним предпроходом сразу же в финальном разрешении. Глядя на нее, кажется, что тут семплов нет вообще. Однако все как раз наоборот. Все, что сейчас видно на этом изображении, это и есть семплы, плотно-плотно усеявшие каждый пиксель финального разрешения. Так, карта IM не сосредоточенна в каких-то важных зонах, она полностью покрывает все объекты сцены, видимые из данной камеры. Получение столь плотной карты влечет за собой столь же долгие вычисления. В частности, все четыре предпрохода в первом случае были просчитаны за 5 минут, в то время как просчет одного лишь прохода во втором случае потребовало 50 минут вычислительного времени. Разница более чем очевидна. Не стоит заблуждаться, что во втором случае качество финального изображения будет существенно лучше, чем в первом, в виду более насыщенной IM. Дело в том, что на маловажных зонах сцены, представляющих из себя по большей части плоские одноцветные поверхности, цвет GI будет однородный и без деталей в обоих случаях. Однако в важных зонах сцены, по сути, что просчитанная с адаптивностью, что просчитанная без предпроходаов IM, одинаково детализированы. Именно поэтому нет никакого смысла тратить в десять раз больше вычислительных ресурсов на просчет однородных плоских поверхностей и получить по сути тот же результат. Думаем, теперь масштаб экономии времени при расчете IM, по отношению к времени расчета BF, вполне очевиден.

Когда карта важных точек, содержащих информацию о цвете GI, просчитана, происходит интерполяция недостающих точек GI. Затем, в каждой точке, как и в случае с BF, просчитывается фиксированное количество лучей вторичного освещения по полусфере, как это было описано в предыдущем уроке.

Основные настройки Irradiance Map

За то, какие зоны алгоритм IM будет считать важными, какое количество вторичных лучей будет принимать каждая точка IM, а также в каких разрешениях производить прощупывание важных деталей, отвечают параметры IM, расположенные в свитке V-Ray:: Irradiance map.

Current preset – это всего лишь быстрые наборы предустановленных значений для основных параметров IM. Выпадающий список с этими наборами находится в зоне Built-in presets. Назначение каждого из них легко можно понять по их названиям, они говорят сами за себя: Very low, Low, Medium, Medium animation, High, High animation, Very high. Однако наибольший интерес для нас представляет значение Custom. Как видно из его названия, это значение позволяет вручную настраивать параметры IM. Особенностью работы Current preset опции является то, что если выбрать одну из предустановок, а затем выбрать Custom, то в числовых полях IM останутся значения этой последней предустановки. По умолчанию в настройках IM стоит предустановка High, именно ее и стоит выбрать как начальную, а затем изменять основные параметры IM, выбрав Custom.

Далее идут настройки зоны Basic parameters  – основные параметры.

Min rate – значение, определяющее разрешение первого предпрохода, рассчитывающего GI.

Max rate – значение, определяющее финальное разрешение просчета GI или попросту разрешение последнего предпрохода.

Как мы уже знаем, алгоритм IM с помощью нескольких просчетов GI выбирает наиболее важные и детализированные зоны. Если Вы посмотрите на примеры выше, то в правом верхнем углу Вы найдете значение rate, определяющее разрешение данного предпрохода в просчете IM. Значение rate равное 0 означает, что просчет GI будет вестись в разрешении, равном разрешению финального рендера. Значение rate равное -1 означает, что расчет GI будет вестись во вдвое меньшем разрешении, чем разрешение финального изображения. Значение rate равное -2 означает, что расчет GI будет идти во вдвое меньшем разрешении, чем разрешение при -1, а значит вчетверо меньше финального изображения. По аналогии, значение rate, равное 1, будет означать, что расчет GI будет вестись во вдвое большем разрешении, чем разрешение финального изображения и т.д.

Абсолютно аналогичную концепцию субсэмплирования и суперсэмплирования использует алгоритм антиалиасинга V-Ray Adaptive subdivision, подробно рассмотренный в первом уроке об универсальных настройках V-Ray.

Алгоритм Irradiance Map это очень гибкий и технологичный инструмент. Несмотря на кажущуюся логичность просчета последнего прохода GI на финальном разрешении, то есть при Max rate равном 0, на практике нет совершенно никакой необходимости этого делать в виду небольшой разницы в качестве, и огромной разницы в вычислительных затратах.

Следующие примеры наглядно демонстрируют это:

На первом изображении, где IM окончательно просчитана на разрешении самого рендера – немного более четкая и плотная тень под сферой, чем на втором, а также более точная и резкая тень внизу куба, особенно это видно в его левом нижнем углу. Это происходит потому, что в первом случае IM имеет много мелких деталей, а во втором они интерполируются из IM меньшего разрешения. Однако, время просчета IM в первом случае (max rate: 0) более, чем в 5 раз больше, чем в случае, когда последний предпроход рассчитан в 8 раз меньшем разрешении (max rate: -3). Пять минут и три секунды против пятидесяти семи секунд. На большем разрешении и на более сложной сцене, разница во времени просчета IM будет еще значительнее. В то же время, на больших разрешениях, таких как 2500 - 3500 пикселей на сторону, в которых и должен вестись финальный рендеринг, эта разница будет менее заметна вследствие абсолютного увеличения разрешений просчета. Кроме того, эта мелкая размытость и бледность деталей за несколько минут элементарно устраняется в графическом 2d редакторе. На практике, значений Min rate -5 и Max rate -3 вполне достаточно для полноценного фотореалистичного рендеринга и именно эти значения следует устанавливать в стартовые универсальные настройки V-Ray.

Параметр HSph. subdivs (в более развернутом варианте: HemiSphere Subdivisions, т.е. субделения полусферы) – количество лучей GI, которые будут отражены от точки на поверхности объекта. Это параметр, определяющий количество диффузных лучей вторичного освещения принимаемых каждой точкой IM, как говорилось ранее – в виде полусферы. То есть это полный аналог параметра Subdivs алгоритма BF. В подавляющем большинстве случаев значения  HSph. Subdivs, равное 80 будет вполне достаточно и именно его следует установить для универсальных настроек V-Ray.

Interp. Samples – параметр, определяющий качество интерполяции в IM. Вспомните примеры с IM сэмплами, где сэмплы были обозначены светлыми точками, а пропущенные в результате адаптивности зоны были серые. Interp. samples определяет качество интерполяции не важных серых пропущенных зон из информации, имеющейся в важных светлых зонах. Чем выше значение параметра Interp. samples, тем выше интерполяция, вследствие чего GI более размытое, в то время, как при низких значениях Interp. samples GI карта менее "замыленная", однако и более шумная с большим количеством артефактов. Установленного по умолчанию значения в 20 семплов вполне достаточно и это значение не стоит менять.

Как мы уже знаем, IM с помощью предпроходов прощупывает сцену с целью выявления ее важных деталей. IM делает это на основании информации предыдущих предпроходов, руководствуясь тремя основными критичными в плане деталей свойствами. Это цвет, разница нормалей и взаимное расположение объектов. В IM эти параметры представлены параметрами Clr thresh, Nrm thresh и Dist thresh соответственно.

Clr thresh - определяет порог чувствительности алгоритма IM к цветам сцены. Чем выше этот порог, тем меньшие цветовые изменения на объектах сцены будут учтены, как важные зоны и тем легче и быстрее будет проходить расчет IM. Снижение порога чувствительности сделает алгоритм IM более чувствительным к цветовым изменениям в сцене и позволит создавать более детализированную IM, а значит – и более качественные изображения. Значение параметра Clr thresh равное 0.3 вполне остаточно для создания приемлемой IM и в универсальных настройках следует использовать именно его.

Nrm thresh - определяет порог чувствительности алгоритма IM к геометрии сцены, в частности к интенсивности изменения нормалей объектов в ней. Чем ниже этот порог, тем больше геометрических деталей на объектах сцены будут учтены как важные зоны, соответственно качественнее будет финальное изображение. Значение параметра Nrm thresh равное 0.1 вполне хватает для создания нормальной IM и в универсальных настройках V-ray следует использовать именно его.

Dist thresh - определяет порог чувствительности алгоритма IM к взаимному расположению поверхностей в сцене. Чем выше этот порог, тем дальше находящиеся друг от друга поверхности объектов будут учтены как важные зоны, соответственно и качественнее будет финальное изображение. Взглянув на показанный пример, можно с легкостью понять отличие параметра Dist thresh от параметра Nrm thresh. Если от Nrm thresh в этой сцене будет зависеть плотность IM в углах помещения, то Dist thresh будет определять детализацию IM в зоне близкого расположения сферы и куба. Следует учесть, что при уменьшении порога Dist thresh, будут учитываться меньшие дистанции между поверхностями объектов, тем самым уменьшая плотность семплов на IM, а значит и качество финального изображения. В отличие от Clr и Nrm thresh, где уменьшение порога наоборот улучшает его. Значение параметра Dist thresh равное 0.1 вполне достаточно для создания хорошей IM и в универсальных настройках V-ray следует использовать именно его.

Последний параметр, находящийся в зоне Basic parameters, это неактивный Interp. frames. Он отвечает за то, какое количество карт IM, просчитанных для разных кадров анимации в режиме Animation (prepass), V-Ray будет использовать для просчета текущего кадра в режиме Animation (rendering). Именно в последнем случае этот параметр будет активным и доступен к изменению. Однако это очень специфические режимы работы IM, которые будут описаны в уроке, посвященном рендерингу разных типов анимации в V-Ray. По умолчанию, в универсальных стартовых настройках V-Ray его не стоит изменять.

В зоне Options свитка V-Ray.: Irradiance map можно включить опции, отвечающие за визуализацию IM во фрейм буфере. Это позволит наглядно наблюдать за фазами просчета предпроходов IM, показывать прямой свет совместно с GI на визуализации предпроходов, а также позволит наблюдать за расположением семплов на IM в сцене. За эти возможности отвечают функции Show calc phase, Show direct light и Show samples соответственно. Это тестовые функции, не влияющие на просчет IM, и в универсальных стартовых настройках V-Ray их не стоит активировать.

Улучшение деталей Irradiance map

Следующая зона параметров IM это зона Detail enhancement.

Как мы уже знаем, основной изюминкой IM является вычисление важных деталей сцены с помощью предпроходов на низких разрешениях. Опция Detail enhancement позволяет создать гибрид между адаптивным, но создающим несколько размытую карту семплов алгоритмом IM и грубым, но прецизионным в деталях BF.

Когда функция Detail enhancement активирована, IM, так же как и раньше, с помощью предпроходов вычисляет детализацию сцены. Однако, на последнем калькуляционном проходе, когда конечная информация о детализации сцены получена, в игру вступает Detail enhancement. Суть работы Detail enhancement в том, что основываясь на информации о детализации сцены, сэмплы GI наиболее важных зон просчитываются алгоритмом Brute Force на полном разрешении финальной визуализации, без субсэмплирования. Все остальные зоны, как и в штатном режиме работы IM, вычисляются с помощью интерполяции.

Алгоритм работы Detail enhancement по вычислению, какие буквально сэмплы в важных зонах будут просчитаны, по принципу работы похож на алгоритм Ambient occlusion (AO), но при этом, в отличие от AO, алгоритм Detail enhancement берет в расчет направление света.

Стоит отметить, что при активированной функции Detail enhancement, алгоритм IM используется лишь для определения детализации сцены, а непосредственный просчет важных деталей ложится на BF составляющую Detail enhancement. Зная это, при активной опции Detail enhancement можно понижать все настройки алгоритма IM, кроме Interp. samples. Interp. samples можно даже увеличить.

Активируется алгоритм путем установки галочки в чекбокс On. Тогда становятся активными его параметры Scale, Radius и Subdivs mult.

Scale – определяет единицы измерения параметра Radius.

Radius – величина радиуса полусферы, определяющей зону, в которой BF будет просчитывать семплы GI относительно исходной точки. Расположение исходных точек применения BF, как уже было сказано выше, определяется на стадии вычисления детализации сцены с помощью предпроходов.

Subdivs mult. - по сути, полный аналог Subdivs параметра алгоритма BF, определяющего количество диффузных лучей. Указывается в процентном отношении от установленного в HSph. subdivs значения.

Чтобы лучше понять, что такое радиус полусферы, и о какой полусфере точки идет речь, необходимо плотнее познакомиться с концепцией AO. Пояснение данной концепции выходит за рамки данного урока, однако она будет подробно рассмотрена в отдельном уроке, посвященном AO и в частности областям применения параметрической карты VRayDirt. В любом случае, Detail enhancement – это специфическая опция, сильно снижающая адаптивность и существенно увеличивающая время просчета GI. Именно поэтому ее не следует активировать без особой необходимости и тем более в универсальных настройках V-Ray рендерера.

Дополнительные опции Irradiance Map

Далее в настройках IM расположена зона дополнительных опций Advanced Options.

Interpolation type – выпадающий список, позволяющий выбрать метод интерполяции сэмплов IM, то есть алгоритм, который заполняет пропущенные зоны на IM, получая недостающие сэмплы из уже просчитанных. Всего в этом списке четыре метода, это Weighted average (good/robust), Least squares fit(good/smooth), Delone triangulation(good/exact) и Least squares with Voronoi weights. Технически они отличаются разными математическими принципами для вычисления результата. Совершенно нет никакой необходимости углубляться в принципы их работы. Для конечного пользователя достаточно взглянуть на подсказки, указанные в круглых скобочках для каждого из них, и сразу же станут ясны особенности каждого из них. Оптимальный метод интерполяции – установленный по умолчанию Least squares fit. Именно его стоит использовать в стартовых настройках V-Ray.

Sample lookup – выпадающий список, позволяющий выбрать метод, который определяет какие именно из просчитанных семплов IM будут участвовать в интерполяции пропущенных областей в соседних зонах. Всего четыре метода выбора семплов, это Quad-balanced (good), Nearest (draft), Overlapping (very good/fast) и Density-based (best). Это – также алгоритмы, имеющие свои математические особенности в методах выбора нужных семплов, в которые не стоит вникать без особой необходимости. Аналогично Interpolation type методам, подсказки в круглых скобочках рядом с их названиями отлично поясняют их особенности. По умолчанию установлен самый лучший метод Density-based (best), именно его и нужно использовать в универсальных настройках V-Ray.

Calc. pass interpolation samples – значение, определяющее число вычисленных сэмплов, которыми будет руководствоваться алгоритм IM при интерполяции во время последнего калькуляционного прохода. Номинально установленного значения в 10 сэмплов вполне достаточно для получения качественного результата. Его нужно использовать в универсальных настройках V-Ray.

Multipass – функция, которая позволяет при просчете текущего предпрохода IM использовать абсолютно все доступные сэмплы, просчитанные на текущий момент. То есть, и сэмплы от предыдущего предпрохода на более низком разрешении, и сэмплы, уже вычисленные в текущем предпроходе.

Irradiance map просчитывается, как и финальный рендер, во много потоков для полноценного использования потенциала современных вычислительных систем, которые зачастую многопоточны благодаря многопроцессорности и многоядерности. Изначально, при просчете IM многопоточной системой, каждая порция IM рассчитывается отдельным потоком, независимо друг от друга. Данные для текущего просчета берутся лишь из предыдущего предпрохода. Из-за этого получается, что каждая порция просчета IM, не имея информации об окружающих порциях выдает несогласованный с соседними результат. На просчитанной таким образом карте IM проявляется решетка границ этих порций.

Внимательно посмотрите на изображение. Можно заметить отчетливо видные линейные границы порций просчета IM каждым из потоков. Например, этот эффект очень заметен на сфере и на стене справа, на потолке над кубом.

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

Randomize samples – функция, позволяющая генерировать сэмплы IM в случайном порядке, делая IM более реалистичной. Номинально алгоритм IM выбирает семплы на объектах сцены с регулярной периодичностью, напоминающей сетку, даже если выше рассмотренная опция Multipass включена.  Это наглядно можно посмотреть на изображении ниже.

Чтобы устранить эту регулярность, явно выдающую компьютерное происхождение изображения, и мешающую фотореалистичности визуализаций, функцию Randomize samples в универсальных настройках V-Ray следует обязательно держать активированной.

Check sample visibility – функция, которая позволяет интерполировать сэмплы IM, лишь находящиеся в прямой видимости друг от друга. Очень часто, вследствие небольшой плотности IM, в при интерполяции недостающих сэмплов, алгоритм IM берет соседние семплы, которые попадают в зону выборки сэмплов для данной точки, даже несмотря на то, что они могут находиться вне зоны прямой видимости относительно друг друга в сцене. Например, у нас есть книжный шкаф с тонкой деревянной полочкой, плотно прилегающей к задней стенке шкафа. На полочке сверху стоит светильник и освещает ее верхнюю часть. Под полочку прямые лучи света светильника никаким образом не попадают. Тем не менее, внизу под полочкой на задней стенке запросто могут появиться светлые пятна, несмотря на то, что их там просто не может быть. Это происходит, потому что алгоритм IM при интерполяции недостающих сэмплов в зоне под полочкой, берет расположенные рядом сэмплы с ее верхней части без учета геометрии полочки. Чтобы этого не происходило, алгоритму IM при интерполяции необходимо указать, что нужно проверять, какие сэмплы находятся в зоне прямой взаимной видимости, а какие – нет. Разумеется, такая проверка потребует дополнительных вычислительных ресурсов.

Предлагаем Вам посмотреть пример из V-Ray Help, превосходно иллюстрирующий работу данной функции.

Это очень полезная функция, однако, в большинстве сцен, описанные выше артефакты отсутствуют, и нет совершенно никакой необходимости всегда осуществлять проверку видимости сэмплов, напрасно расходуя вычислительные ресурсы. В универсальных стартовых настройках V-Ray функцию Check sample visibility следует отключать.

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

Последнее, что стоит отметить, это то, что алгоритм Irradiance map может быть использован только лишь для просчета первого диффузного отскока, то есть лишь в качестве Primary bounces GI engine. Из работы алгоритма IM вполне ясно, что при расчете лавины лучей GI, полученной после первого отскока, методы предпрохода IM совершенно неуместны. В любом случае, при выборе Secondary diffuse bounces GI движка, в свитке V-Ray.: Indirect Illumination (GI), возможность выбора IM как движка Secondary bounces отсутствует, что полностью исключает его использование для этих отскоков.

В этом уроке мы основательно познакомились с важными аспектами настройки двух алгоритмов рендеринга GI, а именно Brute Force и Irradiance Map. В частности, мы подробнейшим образом разобрали все мелочи, аспекты и твики адаптивного рендер-движка Irradiance Map, а также наглядно смогли все увидеть на многочисленных примерах.

Друзья, искренне надеемся, что внимательно прочитав этот урок, Вы стали значительно ближе к пониманию сути работы Brute Force и Irradiance Map. Также надеемся, что Вас перестали пугать множество настроек IM и вводить в заблуждения их специфические названия. Понимание этой важнейшей информации, любому пользователю V-Ray позволит с легкостью настраивать и получать отличные карты GI для фотореалистичных 3d визуализаций.

В следующем уроке мы познакомимся с алгоритмам просчета GI отскоков Photon mapping и Light Cache. Детально рассмотрим принцип их работы и каждую функцию Light cache в частности, узнаем об оптимальных значениях его настроек.

Всем легких настроек и красивых 3d визуализаций!


Источник: http://ru.renderstuff.com/irradiance-map-vray-1-5-urok-177/


Как сделать в нужных пикселях

Как сделать в нужных пикселях

Как сделать в нужных пикселях

Как сделать в нужных пикселях

Как сделать в нужных пикселях

Как сделать в нужных пикселях

Как сделать в нужных пикселях

Как сделать в нужных пикселях

Как сделать в нужных пикселях

Как сделать в нужных пикселях