Показать сообщение отдельно
Старый 30.04.2008, 23:30   #2
Okean18
VIP
 
Аватар для Okean18
 
Регистрация: 23.11.2007
Адрес: Советский Союз
Сообщений: 1,016
Сказал(а) спасибо: 1,552
Поблагодарили 1,750 раз(а) в 419 сообщениях
Вес репутации: 645
Okean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущее
По умолчанию

VRay - что это такое и как этим пользоваться: Часть 1

Введение

Среди современных рендер-программ для 3ds max VRay пользуется наибольшей популярностью. Нисколько не преувеличивая можно сказать, что VRay популярен настолько, насколько все остальные рендеры - mental ray, finalRender и brasil r/s вместе взятые. Этот факт тем более удивителен и замечателен, что алгоритм и ядро программы разрабатывались всего несколькими людьми.

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

Основные принципы

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

Первое, что научились считать - это освещенность объектов от источников света, находящихся в прямой видимости, когда объект и источник можно соединить прямой линией. Венцом этой модели расчетов стала модель освещения Фонга и модель затенения Фонга, которые позволили выполнять сглаживание цвета полигонов поверхности и вычислять зеркальные подсветки для нее. Эта модель освещения, а также ее модификации (Ламберт, Блинн, Торрент, Ward и другие) и сейчас являются основой для расчета прямой освещенности, правда, с некоторыми дополнениями. Одно из важнейших уточнений - учет пространственных размеров источника света, позволяет получать мягкие края у теней объектов. Другое дополнение относится к определению затухания интенсивности света с расстоянием. В частности, в физически корректных расчетах освещенности используется закон квадратичного затухания интенсивности распространяющегося луча света от расстояния.

Вторая компонента освещенности объектов определяется зеркальным (или близким к зеркальным) отражением от окружения и прозрачностью самого объекта. Для ее вычисления был разработан метод трассировки лучей - ray tracing method. Этот метод отслеживает траектории лучей света, начиная от камеры, до первой поверхности пересечения и затем - в зависимости от прозрачности или отражающих свойств поверхности, определяется направление дальнейшего распространения луча. Метод трассировки лучей от камеры впервые позволил учесть в расчетах освещенности объекта его окружение и был более эффективен, чем отслеживание лучей от источников света, поскольку обрабатывал только достигающие камеру лучи. Одним из недостатков классического метода трассировки лучей является «жесткость» получаемого изображения - излишняя четкость контуров, теней, цветов. Поэтому в дальнейшем была разработана модификация, известная как distribution ray tracing (DRT). Суть DRT в том, что при каждом пересечении трассируемого луча с поверхностями вдоль его траектории, из каждой точки пересечения строится не один, а несколько лучей. Этот процесс несколько напоминает цепную реакцию. Такой подход позволил рассчитывать размытые отражения и преломления (известные также как fuzzy, blurry или glossy отражения и преломления), но за счет огромного увеличения объема расчетов. Модель DRT реализована в свойствах отражений и преломлений материалов VRay при помощи параметра Glossy. Из-за высокой стоимости расчетов DRT, медленность расчета glossy-материалов VRay стала «притчей во языцех».

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

Четвертая компонента освещенности занимается специальным случаем освещенности - рассчитывает световые эффекты, возникающие в результате фокусировки из-за преломлений или отражений лучей света в некоторой области поверхности. Эти эффекты получили название caustic-эффектов освещения, а прекрасным иллюстрирующим примером «из жизни» может служить линза, фокусирующая солнечный свет на поверхности объекта. Расчет caustic-эффектов освещения может быть выполнен методом фотонных карт, но при этом требуется локальная фотонная карта очень высокой плотности. Поэтому такие фотонные карты создаются отдельно при возникновении необходимости.

Подводя черту под вышесказанными, можно утверждать, что современный уровень развития вычислительных методов компьютерной графики позволяет рассчитывать освещенность произвольной точки трехмерной сцены как сумму четырех компонент: прямой освещенности, зеркальных преломлений и отражений, вторичных диффузных отражений и caustic-эффектов освещения.

Для совершенно точного расчета всего света, падающего на данную точку поверхности, требуется просуммировать лучи света, приходящие в нее со всех направлений. Это приводит к необходимости интегрирования освещенности по полусфере, окружающей точку, если она принадлежит непрозрачной поверхности, или - по сфере, если поверхность является еще и прозрачной. Для построения интегралов освещенности в компьютерной графике используются функции, описывающие все четыре компоненты освещения - функции источников света, функции свойств зеркального (идеального) отражения/преломления поверхности и функции диффузного отражения поверхности. Последние два вида функций часто объединяют в одну, получившую название BRDF - Bidirectional Reflectance/Refractance Distribution Function (двунаправленная функция распределения отражения/преломления). Однако точное аналитическое решение таких интегралов в большинстве случаев невозможно, поэтому для их нахождения используются различные численные методы.

Один из основных методов - метод Монте-Карло. В самом общем смысле метод Монте-Карло позволяет вычислить значение интеграла как сумму небольшого количества значений подынтегральных функций, выбранных случайным образом. Фактически, весь математический аппарат метода Монте-Карло представляет собой правила определения выбора таких значений, поскольку от этого зависит точность и скорость нахождения решений интегралов. Выбранные для расчета интеграла значения подынтегральных функций часто называют сэмплами (samples). В настоящее время метод Монте-Карло является стандартом "де-факто" для рендеров трехмерной компьютерной графики и используется очень широко - практически во всех ведущих пакетах. Тем не менее, этот метод обладает серьезным недостатком - медленной сходимостью решений. На практике это означает, что для увеличения качества расчета освещенности, например, в два раза потребуется вчетверо увеличить объем вычислений (количество сэмплов). Недостаток качества проявляется в рендере как "шум" - видимые на изображении световые пятна, зернистость и визуальные артефакты.

Метод фотонных карт разработан как альтернатива расчета вторичной диффузной освещенности методом Монте-Карло и заменяет расчет соответствующего интеграла. Такой подход имеет ряд преимуществ и недостатков. Главные преимущества фотонных карт - скорость и корректность расчетов. Недостатки связаны с большими требованиями к памяти и трудностями в обработке стыков, углов и границ поверхностей. На практике, по крайней мере сейчас используется комбинация метода Монте-Карло и фотонных карт.

Программное ядро VRay построено исключительно на методе Монте-Карло. VRay использует также и метод фотонных карт, но не как альтернативу методу Монте-Карло, (что имеет место, например, в mental ray), а как дополнение. Говоря более точно, для первого диффузного переотражения (луч света от источника падает на поверхность, отражается и попадает в точку, освещенность которой рассчитывается) в VRay используется метод Монте-Карло. Для всех диффузных переотражений, начиная со второго (луч света дважды или более отражается от других поверхностей, прежде чем достигает расчетной точки), может использоваться как метод Монте-Карло, так и метод фотонных карт. В терминологии VRay первое диффузное отражение обозначается как First diffuse bounces - первый отскок, все остальные переотражения - secondary bounces, или вторичный отскок. Такой подход довольно рационален, поскольку известно, что основную часть диффузной освещенности точки формирует именно второе отражение. Вклад остальных отражений невелик вследствие очень быстрого затухания интенсивности диффузных отражений с увеличением их количества. Таким образом, предложенное в VRay сочетание метода Монте-Карло и фотонных карт обеспечивает точность и более высокую скорость расчетов, по сравнению с конкурирующими рендер-программами.

Использование фотонных карт для расчетов переотражений гораздо более предпочтительно, поскольку позволяет быстрее получать более качественный результат. Однако, из-за того, что фотонные карты не могут работать с источниками света типа Skylight, HDRI и ограничены размером доступной памяти, при расчете освещенности открытых сцен и в некоторых других специальных случаях вместо фотонных карт часто используют все же метод Монте-Карло.

Управляющие Параметры VRay

VRay: QMC Sampler

Группа параметров, управляющих в VRay общими свойствами метода Монте-Карло, расположена на закладке QMC sampler и выглядит следующим образом:

Значения параметров этой закладки определяют сколько и какие именно сэмплы будут использованы при вычислениях любых величин, использующих метод Монте-Карло. Напомню, что практически любая величина, рассчитываемая VRay - все виды освещенности, преломления и отражения, translucency, caustic и т. д., используют этот метод. В конечном итоге, от этих настроек зависит, как скорость расчетов, так и их точность, а, следовательно, - соотношение время/качество рендера изображения.

Lock to pixels используется для устранения миганий пикселов в анимации. Если установлена галочка в chekbox напротив этого параметра, при расчете изображения используется жесткая привязка значений рассчитываемых величин к пикселам изображения с тем, чтобы эти значения были одинаковы для одних и тех же пикселов разных соседних кадров. Метод Монте-Карло имеет случайную природу, поэтому и вычисляемые раз за разом с его помощью одни и те же величины могут немного отличаться друг от друга при прочих равных условиях. Если рассчитывается статичное изображение, этот параметр можно смело выключать. Lock to pixels и увеличение сэмплов для расчета величин - два основных метода борьбы с миганиями (flickering) в анимациях, рассчитываемых при помощи VRay.

Adaptation by effect on final result (importance sampling) - техника, используемая для выбора сэмплов. При расчете интеграла освещенности методом Монте-Карло используются выбранные по некоторому случайному закону значения подынтегральных функций (сэмплы) в пределах области определения функций (полусфера над расчетной точкой для непрозрачной поверхности и сфера - для прозрачной). Интересно, что сэмплы могут иметь геометрическую интерпретацию как направления, вдоль которых вычисляются значения функций - другими словами, как испускаемые из точки лучи сэмплирования. Техника importance sampling для выбора сэмплов использует принцип важности или значимости величины конкретного сэмпла для конечного результата. Если сэмплирующий луч вдоль некоторого направления возвращает малое значение освещенности или даже ноль, дальнейшее сэплирование в этом и близких направлениях не ведется. Другой пример - для вычисления темного размытого преломления не требуется большого количества сэмплов. В любом случае, включение параметра importance sampling будет заставлять движок VRay искать и отбирать для расчетов наибольшие по значению (и поэтому - более важные для изображения) сэмплы и отбрасывать вычисление сэмплов с малыми значениями. Параметр Amount управляет тем, насколько интенсивно техника importance sampling будет использоваться при вычислениях. Нулевое значение Amount полностью отключает использование importance sampling, а при Amount = 1 каждый сэмпл будет проходить отбор. В большинстве случаев использование техники importance sampling очень благотворно сказывается на рендерах - приводит к существенному ускорению расчетов при сохранении достаточно высокого качества. Однако техника importance sampling в силу своей случайной природы может давать досадные осечки - как это ни парадоксально, иногда ее отключение может быть очень полезным, поскольку это позволяет уменьшить шум в расчетах. Таким образом, уменьшение Amount приводит к повышению качества рендера и увеличению времени расчетов. Тактика в отношении этого параметра может быть следующей - увеличивать Amount, если это не приводит к серьезному ухудшению качества изображения и уменьшать, если в рендере имеется неустранимый никакими другими средствами шум. По умолчанию Amount=1.

Adaptation by sample values (early termination) - позволяет VRay анализировать величины сэмплов и обрывать процесс сэмплирования, если эти значения приблизительно одинаковы. Другими словами, если значения сэмплов мало отличатся друг от друга, вместо дальнейшей трассировки новых сэмплов используются усредненные значения уже вычисленных сэмплов. Если сэмплы сильно отличаются по значению, берется большее их количество. Параметр Amount определяет степень применения этой техники - при Amount=0 техника вообще не используется, при Amount=1 early termination использует самое минимальное, какое только возможно, количество сэмплирующих лучей. Если требуется высокое качество расчетов, следует использовать Amount=0, но заплатить за это придется увеличением времени рендеринга. Тактика в отношении этого параметра аналогична тактике в отношении importance sampling, значение Amount по умолчанию - 0.85.

Min. samples - устанавливает минимально возможное количество сэмплов. То есть, количество сэмплов для расчета некоторой величины не может быть меньше значения этого параметра.

Noise threshold - судья, арбитр, единолично решающий, когда вычисленные значения достаточно хороши для изображения. Вычисляемое значение величины сравнивается поэтапно само с собой. Если разница больше значения Noise threshold, вычисляются дополнительные сэмплы, если разница меньше, вычисления завершаются. Очевидно, этот параметр имеет самое непосредственное влияние на качество (зашумленность) и скорость рендера. Его увеличение может сделать расчет очень быстрым и очень "шумным", уменьшение - наоборот.

Описанные выше параметры позволяют VRay динамически принимать решения о количестве сэмплов для расчета той или иной конкретной величины непосредственно в процессе расчетов. Если Amount для importance sampling и early termination имеют нулевые значения, мы получим рендер, максимально возможный для VRay по качеству. Время расчета тоже будет максимальным, а количество сэмплов будет приближаться к количеству subdivs, указываемых для GI в настройках источников света. Если Amount для importance sampling и early termination равны единице, рендер будет минимального (но это вовсе не означает - плохого) качества, время расчета тоже будет минимально возможным, а количество сэмплов будет приближаться к значению, указанному в Min. Samples. Это как бы два противоположных полюса, в пределах которых расположены все промежуточные настройки, затрачиваемое на расчет время и степень качества рендера.

Рис.02-08. Время расчета для обоих значений Amount = 0, Noise threshold=0.005.

Рис.02-09. Время расчета для обоих значений Amount =1, Noise threshold=0.005. Визуально изображение идентично предыдущему, но время расчета в 2.5 раза меньше.

Рис.02-10. Время расчета для обоих значений Amount =1, Noise threshold=0.1. Уменьшение Noise threshold еще больше ускорило расчет, но совершенно погубило качество изображения (шум в углах и на стыках стен и пола, "зернистость" тени).

Выставленные в VRay значения по умолчанию параметров Amount и Noise threshold являются довольно универсальными и пригодны в большинстве случаев, или - как стартовые значения для собственных экспериментов. Менять их следует только тогда, когда возникает настоятельная и глубоко осознанная необходимость. Не рекомендуется устанавливать в 0 значение Noise threshold - это может привести VRay к бесконечному циклу вычислений, или, что произойдет скорее всего, - к аварийному завершению работы программы.

QMC - квази Монте-Карло метод, используемый VRay, отличается от "классического" Монте-Карло как раз благодаря использованию early termination и importance sampling. Они позволяют выбирать сэмплы, что делает их "не чисто" случайными, как того требует стандартный метод М-К.

Вычисления GI (Global Illumination)

Для расчета первой компоненты - прямого освещения, VRay обладает отдельным алгоритмом, способным работать независимо. Убедиться в этом просто, достаточно отрендерить трехмерную сцену без GI (убрать галочку в checkbox "On" на закладке VRay: Indirect Illumination). В арсенале средств модуля расчета прямого освещения имеется возможность обработки пространственных источников, так что посчитать мягкие тени не составляет никаких проблем. Настройки расчета прямого освещения присутствуют в параметрах источников света и теней (затухание, тип источника, параметры теней и др.).

Рис.02-02. Расчет только прямого освещения. Все области вне прямой видимости источников света находятся в глубокой тени. Мягкие тени - результат работы с пространственными источниками света.

Отключить расчет прямого освещения вполне возможно, для этого нужно воспользоваться кнопкой Exclude в настройках источников света. Этот прием полезен для визуального анализа карт в "чистом виде" и влияния на них настроечных параметров. Например, исключение объектов из освещения никак не скажется на фотонной карте, поскольку она рассчитывается, если в свойствах источника установлено Generate diffuse, то есть - излучать фотоны. Расчет фотонной карты может быть отключен только там. Можно и выборочно включать/исключать объекты из фотонной карты, если в свойствах конкретных объектов убирать галочки в Receive GI и Generate GI (закладка VRay: System>Object settings).

Имеется в VRay и собственный алгоритм обратной трассировки лучей, который также является самостоятельной и независимой частью системы расчета. Часть настроек ray tracing расположена на закладках VRay: Global Switches и VRay: Image Sampler (Antialiasing), часть вынесена в параметры материалов типа VRayMtl.
__________________
Мебель оптом от производителя
________________________
Не зли других и сам не злись, Мы гости в этом бренном мире, А если что не так - смирись, Будь поумнее, улыбнись, Холодной думай головой, Ведь в этом мире все закономерно, Зло излученное тобой, К тебе вернется непременно...
Okean18 вне форума   Ответить с цитированием Вверх