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

Вернуться   Форум профессиональных мебельщиков PROMEBELclub > Программы для мебельщиков > Программы для создания трёхмерной графики и анимации > 3d Studio MAX

Меню

Маркет


беспроводные выключатели для мебели
3d Studio MAX Хотя 3d Studio MAX и не является мебельной программой, многие мебельные дизайнеры используют ее для создания качественной визуализации проекта.

Ответ
 
Опции темы Опции просмотра
Старый 30.04.2008, 23:14   #1
Модуль визуализации 3ds max - VRay
 
Аватар для Okean18
Okean18
VIP
Регистрация: 23.11.2007
Адрес: Советский Союз
Сообщений: 1,016

Сказал(а) спасибо: 1,552
Поблагодарили 1,749 раз(а) в 419 сообщениях
Версия для печати Отправить по электронной почте
Okean18 Okean18 вне форума 30.04.2008, 23:14
Рейтинг: ()

Трехмерное моделирование уже давно используется в качестве наглядного способа представления архитектурных дизайн-проектов, а синтезированные изображения объектов позволяют заменить дорогостоящие процедуры их производства.

Умение создать качественную трехмерную модель - важный навык, но специалисты недаром говорят: "Хорошая модель это только половина успеха, вторая половина зависит от света и материалов". Грамотное освещение и визуализация - вот что делает работу профессиональной.
__________________
Мебель оптом от производителя
________________________
Не зли других и сам не злись, Мы гости в этом бренном мире, А если что не так - смирись, Будь поумнее, улыбнись, Холодной думай головой, Ведь в этом мире все закономерно, Зло излученное тобой, К тебе вернется непременно...
Просмотров: 93640
Ответить с цитированием Вверх
Пользователь сказал cпасибо:
zulu (15.08.2016)
Старый 30.04.2008, 23:30   #2
Okean18
VIP
 
Аватар для Okean18
 
Регистрация: 23.11.2007
Адрес: Советский Союз
Сообщений: 1,016
Сказал(а) спасибо: 1,552
Поблагодарили 1,749 раз(а) в 419 сообщениях
Вес репутации: 643
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 вне форума   Ответить с цитированием Вверх
Старый 30.04.2008, 23:32   #3
Okean18
VIP
 
Аватар для Okean18
 
Регистрация: 23.11.2007
Адрес: Советский Союз
Сообщений: 1,016
Сказал(а) спасибо: 1,552
Поблагодарили 1,749 раз(а) в 419 сообщениях
Вес репутации: 643
Okean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущее
По умолчанию

Продолжение
.................................................. .....................
Расчет третьей компоненты освещения - отраженного диффузного освещения является одним из важнейших алгоритмов VRay и тоже достаточно независим от расчета других компонентов освещенности. Основные настройки расчета GI расположены на закладках VRay: Indirect Illumination, дополнительные - разбросаны фактически по всем закладкам VRay. Мы рассмотрим большинство из них - в свое время. Расчет GI можно произвольно включать и отключать при помощи check box "On" на закладке VRay: Indirect Illumination.

Настройки расчета четвертой компоненты - caustic-эффектов освещения, расположены в VRay: Caustic и VRay: System (Object settings и Light settings).

Таким образом, VRay обладает четкой модульной структурой, позволяющей отключать или включать расчет той или иной компоненты освещенности независимо от остальных, что удобно для их настройки. Дальше подробно мы будем рассматривать только расчет непрямого диффузного освещения (GI).

Основные настройки расчета GI.

Для расчета только Indirect Illumination VRay предлагает три основных способа:
Direct computation;
Irradiance map;
фотонные карты (Global photon map).
Сразу обращает на себя внимание такая особенность расчетов, как разделение всех видов диффузных отражений на два - первый диффузный отскок (свет сначала достигает некоторой поверхности, диффузно отражается от нее только один раз и затем попадает в точку, освещенность которой рассчитывается) и все остальные отскоки (свет, который до момента попадания в расчетную точку диффузно отражается поверхностями сцены два и больше раз). Смысл такого разделения уже обсуждался выше - это связано с важностью вклада именно первого диффузного отражения (первого диффузного отскока фотона), вклады от остальных очень быстро затухают по мере увеличения числа переотражений. Для расчета этих двух видов отскоков могут быть использованы четыре различных сочетания упомянутых трех способов расчета:
Direct computation для первого диффузного отскока и direct computation (direct+direct) или photon map (direct +photon) для остальных отскоков;
Irradiance map для первого диффузного отскока и direct computation (irr_map+direct) или photon map для остальных отскоков (irr_map+photon).

Рис.02-04. Только прямое и однократно переотраженное диффузное (первый диффузный отскок - first diffuse bounces) освещение.

Рис.02-05. Прямое и все типы вторичного освещения, рассчитанные методом irradiance map для первого диффузного отскока и методом фотонных карт для остальных диффузных отскоков.

Рис.02-05a. Только первый диффузный отскок (первое диффузное переотражение), рассчитанное методом irradiance map. Увидеть эту карту можно, рассчитав прямое освещение и GI с first diffuse bounces - on, secondary bounces - off и сохранив рассчитанную irradiance map в файл. Затем выключаем все объекты сцены из прямого освещения и рендерим с загрузкой irradiance map из файла.

Рис.02-05b. А так выглядит фотонная карта в "чистом виде". Чтобы ее увидеть, исключаем объекты из прямого освещения и считаем first diffuse bounces>Global photon map, secondary bounces - off.

Рис.02-05c. Фотонная карта и прямой свет, без первого диффузного отскока.

Direct computation (DC) использует для расчета диффузной освещенности метод Монте-Карло. Другое название этого способа вычислений - brute force, что можно перевести как "грубая сила". При вычислениях direct+direct для каждой точки изображения строится полусфера единичного радиуса и выполняется сэмплирование (количество сэмплов указывается в настройке Subdivs группы First diffuse bounces>Direct computation) подынтегральной функции, основная часть которой - это диффузная часть BRDF. Сэмплирование BRDF означает случайный выбор одного из ее конкретных значений, а это равносильно выбору конкретного направления (угла) падения света. В этом направлении трассируется луч до новой точки пересечения с ближайшей поверхностью. В новой точке пересечения вычисляется ее прямое освещение (это и будет первый диффузный отскок) и для расчета более высоких отражений процесс должен повториться - построение полусферы (или сферы для прозрачной поверхности), сэмплирование в количестве subdivs группы Secondary bounces>direct computation, новая трассировка лучей и так далее до исчерпания Depth - глубины трассировки. Поскольку переотраженное диффузное освещение очень быстро затухает с возрастанием количества отражений, еще одним ограничителем на количество сэмплов и глубину трассировки, кроме Depth, выступает QMC Sampler - срабатывает importance sampling и early termination.

Вычисление при помощи "грубой силы" дает очень точное распределение полутеней в сцене (светотеневых переходов) совершенно без размытия. Но расчет выполняется очень долго. Нет, действительно - очень долго. Например, если выбрать количество Subdivs равным 50 для обоих видов отскоков, то количество сэмплов для одной точки составит 2500 лучей, а это 2500 новых точек, в каждой из которых будут трассироваться свои 2500 лучей, и каждый из них даст свои 2500 точек и так далее, пока допускают настройки QMC. Процесс очень быстро приобретает лавинообразный характер, и все это громадное количество лучей DC должен совершенно честно просчитать. Количество сэмплов вторичных отскоков у VRay по умолчанию равно одному лучу, этого оказывается вполне достаточно для хорошего качества в большинстве случаев и серьезно уменьшает количество расчетов. Кроме высокой точности светотени и медленности расчетов, недостаток DC - шум, связанный с тем, что расчеты выполняются индивидуально для каждой точки. Избежать шума можно только одним способом - поднять количество сэмплирующих лучей (Subdivs), что не самым лучшим образом скажется на времени расчетов. Поэтому, direct+direct computation используется на практике довольно редко и в основном - для reference-изображений, помогающих понять, как должен быть распределен вторичный свет в сцене (в этом случае шум не важен).

В случае использования direct +photon, трассировка из расчетной точки выполняется только до ближайших поверхностей, где рассчитываются их прямые освещенности, а освещенность от остальных отскоков оценивается из плотностей фотонных карт в точках пересечения в пределах заданного радиуса (параметр Search distance фотонной карты). Этот метод быстрее предыдущего, и может быть даже более точным при достаточно высокой плотности фотонных карт.

Существует еще один способ использования фотонных карт - для выбора (предсказания) таких направлений DC, которые обеспечивают существенный вклад в расчеты. В самом деле, зачем наугад "палить" сэмплами в окружающее пространство, если известно, по каким направлениям прилетают фотоны!? К сожалению, похоже, что VRay этот трюк не использует.

Irradiance map

Отличие расчета методом irradiance map от direct computation состоит только в том, что расчет выполняется не для всех точек изображения, а лишь для некоторых. Освещенность остальных точек интерполируется по найденной освещенности ближайших расчетных точек (метод так называемых световых градиентов) в пределах радиуса, задаваемого в параметре Interp. Samples группы First bounces>Irradiance map. Это позволяет рассчитывать освещенность только в тех местах трехмерной сцены, где это действительно необходимо - в областях резкого изменения освещенности или геометрии поверхности, и аппроксимировать цвет на равномерно освещенных плоских участках поверхностей.

Отбор точек для расчета и сохранения в irradiance map происходит поэтапно, начиная с некоторого самого низкого разрешения изображения и до максимального разрешения. Минимальное разрешение определяется параметром Min. rate, максимальное - Max. rate группы параметров First diffuse bounces>Irradiance Map, значения этих параметров являются степенями двойки. Так что значение -2 соответствует одной четвертой, а ноль - единице. Расчет irradiance map выполняется несколько раз, каждый раз все более точно, адаптивно повышая качество. Например, если Min. Rate = -3, а Max. Rate = 0, расчет irradiance map будет выполнен четыре раза: (-3, -2, -1, 0). В качестве исходного разрешения принимается разрешение рассчитываемого изображения, уменьшенное в соответствующее количество раз. Для -3 на первом проходе действительно рассчитываться будет только каждый восьмой пиксел изображения. На следующем шаге рассчитанные соседние освещенности сравниваются между собой, если отличие в освещенности точек, их нормалях или пространственная близость объектов оказываются больше некоторых пороговых величин, из каждой группы выбирается и рассчитывается дополнительный пиксел.

Пороговые значения для освещенностей (цвета) указываются в параметре Clr. thresh, для нормалей - в Nrm. thresh, для взаимного пространственного положения - в Dist. thresh. После того, как все шаги будут выполнены, результат расчета может быть сохранен в файл. Это, собственно, и есть карта освещенности - irradiance map. Из-за сохранения результатов расчета в файл, метод irradiance map еще называют кэшированием. Затем наступает очередь финального рендера на полном разрешении, при этом уже рассчитанные освещенности пикселов изображения берутся из irradiance map, а остальные интерполируются градиентами по вычисленным значениям. На этапе финального рендера могут быть вычислены дополнительно еще некоторые точки - этот процесс активизируется установками суперсэмплинга. Суперсэмплинг имеет свои пороговые величины для изменения освещенности пикселов, которые могут не совпадать с Clr. thresh, и если они меньше - будет выполняться дополнительный просчет некоторых точек.

Из последнего замечания можно сделать вывод, что установки суперсэмплинга можно упрощать на этапе настройки irradiance map для ускорения расчетов, и устанавливать для них требуемое высокое качество уже после расчета и сохранения irradiance map, непосредственно перед финальным рендером. В отличие, от direct computation, для которого настройки суперсэмплинга должны быть указаны еще до начала расчетов. Таким образом, irradiance map+photon map обладают максимальной гибкостью в отношении настроек суперсэмплинга - их можно менять без пересчета как irradiance map, так и photon map, что допускает экспериментирование "малой кровью" с настройками суперсэмплинга.

Второй практический вывод касается зависимости значений Min. rate и Max. rate от разрешения рассчитываемого изображения - при увеличении разрешения эти величины можно уменьшать и наоборот. Например, если пара значений Min. rate = -3 Max. rate = 0 хорошо работает для изображения 800x600 пикселов, то для разрешения 1200x1024 вполне можно использовать Min. rate = -4 Max. rate = -1, а для еще более высоких разрешений эти значения можно ставить еще меньше. Связано это с тем, что при увеличении разрешения увеличивается количество рассчитываемых точек - одна и та же область трехмерной сцены представляется бОльшим количеством пикселей.

Собственно расчет освещенности точек выполняется аналогично direct computation - сэмплируется полусфера, находятся точки пересечения, рассчитывается прямая освещенность, если для вторичных отскоков используется тоже direct computation - строятся новые полусферы, если фотонные карты - происходит оценка освещенности по плотности фотонов. В общем - как обычно . Но еще одна важная особенность расчета irradiance map и first diffuse bounce в целом - то, что на этапе вычислений первого диффузного отскока происходит подключение (читай - смешивания, сложения) как прямого освещения, так и освещения secondary bounces. Такова особенность VRay. Он не хранит все компоненты освещенности по отдельности, расчет первого отскока выполняется с учетом прямого освещения и остальных переотражений и результат записывается в файл. И если прямое освещение все же не хранится самой irradiance map, его можно отключать/включать, то многократные переотражения после расчета самостоятельного значения уже не имеют. То есть, если рассчитанная с учетом фотонной карты irradiance map сохранена в файле для дальнейшего использования, то загрузку фотонной карты из файла как и расчет secondary bounces можно отключать и это никак не скажется на конечном результате. Другой пример. Рассчитаем irradiance map без secondary bounces и сохраним в файл. Рассчитаем фотонную карту и тоже запишем в файл. Если теперь при рендере для first diffuse bounce использовать irradiance map из файла, а для secondary bounces - записанную фотонную карту и посчитать освещение, то сложения освещенностей не произойдет. Мы увидим только irradiance map и прямое освещение. Эта особенность расчетов GI в VRay имеет и положительные стороны - размер irradiance map гораздо меньше размера фотонной карты. А вышеописанная особенность позволяет нам использовать только irradiance map для дальнейших расчетов, если она предварительно рассчитана с учетом фотонной карты, и забыть о многомегабайтной фотонной карте.

Метод расчета irradiance map выполняется гораздо быстрее direct computation и без потери качества изображения. Поэтому, он является основным для расчета первого диффузного отскока. Адаптивный расчет по выбираемым точкам - очень интересная находка VRay, являющаяся его существенным преимуществом. Так, расчет GI при помощи irradiance map + photon map в VRay аналогичен расчету GI в mental ray при помощи сочетания фотонных карт и final gathering. Однако, final gathering, в отличие от irradiance map, выбирает точки для расчета равномерно на основе заданного значения радиуса и без учета изменения цвета и геометрии. Поэтому, для получения сопоставимых по качеству с irradiance map результатов, final gathering должен использовать большее количество точек, а значит - выполняет расчеты медленнее.

Что касается времени расчетов, direct+direct будет самым медленным, direct+photon map и irradiance map + direct будут конкурировать по времени, irradiance map + photon map - самый быстрый способ расчета, обеспечивающий, к тому же, и высокое качество изображения в силу физической корректности принципа фотонных карт. Поэтому, именно это сочетание наиболее часто используется на практике. Но бывают исключения. Типичный пример - расчет ночного освещения с использованием фотонных карт. Поскольку фотонов мало вследствие малой интенсивности источников света (ночь же), может потребоваться очень большое время для их накопления. Другой пример - отсутствие диффузной компоненты у материалов. В этом случае расчет фотонных карт может превратиться в бесконечный процесс с нулевым результатом, поскольку фотонные карты могут быть построены только для поверхностей с ненулевыми диффузными свойствами. Еще один типичный пример - расчет открытых пространств с использованием Skylight. Впрочем, последний пример поддается "лечению" правильной настройкой источников света и карт.

Теперь немного поговорим о параметрах самих карт - irradiance и фотонных.

Фотонные карты (Photon map)

Идея фотонных карт (ФК) проста - от источника света во всех направлениях излучаются порции энергии света - "фотоны". Каждое направление отслеживается (трассируется) до столкновения с ближайшим объектом сцены и здесь моделируется "взаимодействие" фотона с поверхностью. Результат взаимодействия записывается в специальную базу данных, которая и является собственно фотонной картой. Под взаимодействием подразумевается, что фотон может поглотиться поверхностью, отразиться от нее зеркально или диффузно или пройти через прозрачную поверхность в соответствии с законом преломления или диффузно. Какое именно событие произойдет, зависит, во-первых, от свойств поверхности (диффузные, отражательные и прозрачные свойства и коэффициенты материалов), во - вторых - от результата "русской рулетки".

Русская рулетка - генератор случайных чисел, использующий сумму коэффициентов диффузного отражения, зеркального отражения и коэффициента прозрачности. Поскольку вероятность всегда нормирована к единице, сумма этих коэффициентов тоже не должна превышать единицы. Именно это обеспечивает параметр Energy preservation mode материала VRay (при этом для RGB считается, что 0-255 соответствует диапазону 0-1) и возможно именно поэтому фотонные карты в VRay можно создать только для поверхностей с материалами типа VRayMtl. Суть "русской рулетки" - чем больше значение того или иного коэффициента, тем больше вероятность, что произойдет соответствующее ему событие - поглощение, отражение или преломление.

После взаимодействия фотон трассируется по новому направлению до следующей поверхности, где все снова повторяется. Глубина трассировки задается в VRay параметром Bounces закладки VRay: Global Photon map. При достижении заданной глубины (количества взаимодействий фотона с объектами), отслеживание фотона прекращается. В фотонных картах всех поверхностей, с которыми взаимодействовал фотон, сохраняется информация о координатах столкновения, энергии фотона и его направлении прилета. Фотонная карта для поверхности создается только в том случае, если она обладает ненулевыми диффузными свойствами.

Для успешного использования фотонных карт нужно особенно четко понимать одну вещь - один отдельный фотон не может корректно определить освещенность точки. Для определения освещенности точки используется сбор некоторого количества фотонов, ближайших к координатам точки, и суммирование их энергий с определенными весовыми коэффициентами. Радиус сбора задается параметром Search distance закладки VRay: Global Photon map.

Параметры настроек фотонной карты

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

Еще одно средство в борьбе с размыванием освещенности - параметр Max. photons, определяет число собираемых фотонов, а не радиус сбора. Различие Search dist. и Max. photons состоит в том, что при установленном значении Search dist будет меняться количество реально собираемых фотонов в зависимости от плотности фотонной карты. При установленном значении Max. photons число собираемых фотонов будет неизменно, а изменяться будет радиус сбора в зависимости от плотности фотонной карты. При совместном использовании, эти параметры конкурируют между собой по принципу "кто быстрее". Если в данной точке поверхности быстрее собирается число фотонов, указанное в Max. Photons, значение радиуса сбора игнорируется. Если в пределах заданного радиуса не удается собрать заданное число фотонов, сбор прекращается, значение Max. Photons игнорируется, а число собранных фотонов определяется плотностью в заданном радиусе Search dist.

На практике обычно используется один из этих параметров - Search distance (Max. Photons выставляется в 0, что заставляет VRay игнорировать его). Однако принцип конкуренции можно использовать для того, чтобы заставить работать обе настройки в зависимости от плотности фотонной карты. Если выставить значение Max. photons равным числу фотонов, собираемых в пределах Search dist. в наименее плотных частях фотонных карт, то для областей с более высокими плотностями будет срабатывать ограничение Max. Photons, а для областей с низким значением плотности - ограничение Search distance. Это приведет к тому, что радиус сбора фотонов будет изменяться в пределах сцены в зависимости от плотности фотонных карт, что уменьшает размывание светотеневых переходов и особенно - в области средних тонов.

Хотя фотонная карта дает физически точную картину распределения света в сцене, для достижения точных результатов требуется высокая плотность фотонных карт, то есть - испускание большого их количества. К сожалению, 32-битная операционная система современных персональных компьютеров ограничивает количество доступной памяти 2 гигабайтами и для системы, и для запущенных в ней процессов, что серьезно ограничивает возможности применения фотонных карт. Когда мы все будем работать на 64-битных ОС с их 8 терабайтами на процесс, возможно все GI будет считаться только фотонами . А пока 8-10 миллионов записей о фотонах, в зависимости от сложности сцены, являются абсолютным пределом объема фотонной карты. И опять, в VRay используется очень интересное решение, позволяющее до некоторой степени преодолеть ограничения на память.

Параметр Max. density закладки VRay: Global Photon map позволяет "сжимать" данные фотонной карты. Делается это следующим образом. Вместо того чтобы записывать всю информацию (энергия-направление-координаты, объем одной записи составляет 30 байт) о каждом фотоне в карту сначала анализируются уже имеющиеся записи. Если вблизи координат прилетевшего фотона уже имеется запись о "подходящем" фотоне, энергия нового фотона просто суммируется с энергией старой записи. Таким образом, энергия фотона "бесплатно" сохраняется в фотонной карте. Степень близости и определяется параметром Max. Density. Чем больше значение параметра, тем больше радиус, в пределах которого просматривается фотонная карта и тем больше вероятность нахождения подходящего старого фотона. Если Max. Density = 0, все фотоны сохраняются в карте: суммирование отсутствует, полностью записываются координаты, направление и энергия для каждого фотона. Если в сцене используются миллиметры в качестве единиц измерения, то значения Max. Density = 5 или 10 вполне достаточно, чтобы обработать излученные 50-100 миллионов фотонов. Остается все же один вопрос - что подразумевают разработчики под "подходящим" фотоном? Имеется ли в виду только близость координат, или учитывается также схожесть направлений и энергий фотонов?

Степень сжатия фотонной карты не лучшим образом сказывается на качестве изображения. Это следует из взаимосвязи Max. Density и Search dist. - увеличение Max. Density неизбежно приводит к увеличению радиуса сбора фотонов, то есть - к увеличению размывания светотени. Кроме того, суммирование фотонов в пределах Max. Density также приводит к размыванию деталей освещенности. Поэтому, на практике стремятся к наименьшему из возможных значений Max. Density, при котором достигается требуемая плотность фотонной карты.

Еще одной замечательной возможностью VRay являются алгоритмы отработки границ объектов для фотонных карт. Поскольку одними только фотонами невозможно получить непрерывную четкую линию границы объекта или границы стыков поверхностей, VRay предлагает два способа получения четких границ. Первый - Convex hull area estimate, приблизительно аппроксимирует освещенность границы по ближайшим фотонам. Сами разработчики довольно прохладно относятся к этому методу, тем не менее, из практики известно, что Convex hull работает довольно хорошо. Convex hull работает лучше, если параметр Max. photons имеет ненулевое значение.
http://www.ixbt.com/soft/images/vray-1/02-05D.jpg
Рис.02-05d. Фотонная карта с включенным параметром Convex hull area estimate. Сравните с рис. 02-05b - отсутствует почернение ребер, углов и стыков.

Второй способ - использовать для расчета освещенности границы direct computation. Достигается указанием значения Retrace threshold - расстояния от границы, откуда начать расчет и Retrace Bounces - количество рассчитываемых отскоков, оно должно быть равным параметру Bounces фотонной карты. Этот метод требует большего времени и не всегда дает лучшие результаты. Кроме того, иногда граница все же может в результате расчетов несколько отличаться по цвету от остальной поверхности, что потребует корректировки Retrace Bounces (меньше - темнее, больше - светлее) и дополнительных расчетов. Оба способа достаточно широко используются.

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

Рис.02-05e. Фотонная карта с включенным параметром Store direct light. Сравните с рис. 02-05b, рассчитанной без Store direct light и с рис.02-05c, рассчитанным с прямым освещением и фотонной картой.

Convert to irradiance map предназначен для промежуточного вычисления освещенности по фотонной карте. Позволяет ускорить расчет irradiance map. Использование конвертации равносильно "запеканию" фотонов карты в количестве Interp. samples в световые пятна, а параметр Interp. samples определяет используемое для этого количество фотонов вблизи точки.

Рис.02-05f. Фотонная карта с включенным параметром Convert to irradiance map. Сравните с рис. 02-05b, рассчитанной без Convert to irradiance map

Рис.02-05h. Фотонная карта с Convex hull area estimate - on, Store direct light - on, Convert to irradiance map - on. Сравните с… думаю, вы уже знаете с чем

Для эффективного использования фотонной карты следует иметь ввиду следующие ее основные свойства:

ФК не зависит от положения камеры, от разрешения изображения и от настроек антиалиасинга. Это позволяет рассчитать фотонную карту требуемой плотности один раз, сохранить ее в файл и многократно использовать и настраивать без пересчета. Например, можно использовать для настройки фотонной карты изображение низкого разрешения с низким антиалиасингом. Пересчитывать фотонную карту не нужно при изменении положения камеры или при изменении разрешения изображения. И надо пересчитывать при любых других изменениях в сцене: свойств материалов и источников света, изменении геометрии или положения объектов - всего того, что меняет освещенность в сцене.
Параметры Search dist. и Max. photons можно менять без пересчета фотонной карты. Это позволяет посчитать фотонную карту с требуемой плотностью один раз, сохранить ее в файл, потом менять эти параметры и выполнять рендер с загрузкой фотонной карты из файла. Очень удобно для настройки фотонной карты. Почему это возможно - понятно, Search dist. и Max. photons всего лишь определяют количество фотонов для оценки освещенности и ничего не меняют в самой фотонной карте.
Количество излучаемых фотонов задается в свойствах источников света на закладке VRay Systems>Lights settings включением галочки Generate diffuse и указанием Diffuse subdivs. Максимальное количество излучаемых фотонов будет определяться квадратом количества subdivs, а истинное - игрой пороговых параметров QMC. Для расчета фотонных карт необходимо также, чтобы в свойствах объектов Object settings той же закладки были выставлены галочки для Generate GI и Receive GI.
Фотонная карта может быть рассчитана только для материалов типа VRay Mtl. С другими типами материалов ФК не работает.
Фотонная карта не работает с источником света типа SkyLight и с HDRI. Расчет освещения от SkyLight и HDRI может быть выполнен только irradiance map или direct computation.
Фотонная карта в VRay предназначена только для расчета освещенности от многократных переотражений света, начиная со второго и выше. Она не предназначена для расчета первого диффузного отскока, то есть - освещенности от первого диффузного отражения. Наличие включения фотонной карты для расчета первого отскока закладки VRay: Indirect Illumination обусловлено только целями настройки самой фотонной карты.
Удивительно, но факт - величина Bounces фотонной карты незначительно влияет на количество взаимодействий фотонов с поверхностями (и на объем фотонной карты). Такая зависимость определенно должна быть сильнее - чем дольше прослеживается путь фотона, тем больше событий мы должны наблюдать. Возможно, сказывается влияние настроек QMC Sampler. Зато, как показывает практика, на объем фиксируемых в фотонной карте событий очень существенно влияет параметр Multiplier для Secondary bounces закладки VRay: Indirect illumination (GI). Эти два свойства следует учитывать при планировании плотности фотонной карты.
Включение/отключение Convex hull area estimate, Store direct light и Convert to irradiance map требует пересчета фотонной карты.

Irradiance Map

Параметры настроек irradiance map

Interpolation type - способ интерполяции освещенности нерассчитываемых точек по освещенности рассчитанных. В самом простом случае освещенность точки интерполируется по рассчитанной освещенности ближайших точек в количестве, указываемом в Calc. Pass interpolation samples. Освещенности суммируются с весовыми коэффициентами, зависящими от расстояния и направления нормалей. Имеется всего 4 типа интерполяции (4 разных способа вычисления весовых коэффициентов), из них три типа связаны с размыванием - Weighted average, Least squares fit, Least squares with Voronoi weights и один тип без размывания - Delone triangulation. По умолчанию VRay использует Least squares fit, если нужен тип интерполяции без размывания - применяется Delone triangulation, что обеспечивает более точное и четкое изображение. Однако этот тип интерполяции требует увеличения количества subdivs irradiance map, поскольку из-за отсутствия размывания шум в изображении не сглаживается.

Sample lookup - способ выбора точек с рассчитанной освещенностью для интерполяции освещенности данной точки. Представлено три типа, самый простой - Nearest, подбирает подряд, все, что близко лежит к данной точке. Второй способ - Nearest quad-balanced, делит область вблизи точки на четыре части и пытается взять из каждой части одинаковое количество сэмплов, что часто приводит к использованию не самых лучших для интерполяции сэмплов (слишком удаленных). Третий способ требует дополнительного шага для предварительной обработки, но работает чуть ли не быстрее всех остальных - Precalculated overlapping. Требует дополнительного расчета так называемых "радиусов влияния" для каждой рассчитанной освещенности. Такие радиусы влияния будут больше там, где плотность irradiance map меньше и наоборот. Затем, при рендере освещенность точки интерполируется только по тем точкам, в списках "радиусов влияния" которых имеется эта точка. Метод обеспечивает наивысшее качество.

Randomize samples - параметр, дополнительно влияющий на выбор точек на этапе расчета освещенности direct computation. Если галочка установлена, делает выбор не регулярно расположенные относительно друг друга точки, а так, чтобы обеспечить некоторую случайность их взаимного положения. Благотворно влияет на подавление некоторых видов алиасинга, в частности - муара.

Check sample visibility - при включении этого параметра интерполяция осуществляется с учетом взаимной видимости точек. Позволяет избежать "просачивания" света через тонкие стены.

В руководстве пользователя к VRay имеется галерея примеров, наглядно и достаточно полно демонстрирующая влияние каждого из вышеописанных параметров на irradiance map и конечное изображение. Рекомендую.

Mode - различные режимы использования irradiance map. Bucket полезен при сетевом рендеринге, поскольку для каждого bucket создается своя irradiance map. Требует дополнительных расчетов (времени) для границ bucket, один из способов ускорить расчет - увеличивать размер bucket. Single frame - карта рассчитывается гораздо быстрее и сразу для всего изображения, но только при помощи одного компьютера. Остальные режимы предназначены для повторного использования рассчитанной irradiance map при изменении положения камеры (Incremental add to current map) или даже для анимации (Multiframe incremental) - карта будет считаться не целиком, а досчитывать только недостающие точки.

Несмотря на то, что irradiance map менее гибка, чем photon map и практически любое изменение настроек или параметров сцены требует ее пересчета, затраты могут быть минимизированы за счет различных режимов Mode. Irradiance map не нужно пересчитывать при изменении настроек antialiasing и при настройке Color mapping.

Что касается настроек пороговых величин для параметров отбора точек - Clr. thresh, Nrm. Thresh и Dist. thresh, то поскольку VRay использует некоторые абстрактные величины (Generic units) их значения довольно трудно связать с реальными единицами изменения цвета, углов нормалей или расстояний. Спасает только наличие Irradiance map preset для рендеров с различными степенями качества. Выбрав из списка подходящий набор настроек, их можно использовать как отправную точку для собственных настроек пороговых величин.

Учитывая все вышесказанное, можно предложить следующий метод расчета освещенности трехмерной сцены при помощи VRay.

Постановка прямого освещения. Выбираются такие типы и количество источников света, чтобы они максимально соответствовали поставленным условиям, в частности - требованию реалистичности освещения. Затем, для света настраивается только прямое освещение регулированием настроек источников света - multiplier, color и других. На этом этапе все другие типы освещения (GI) отключаются. Правильно настроенное прямое освещение - залог хорошего рендера, поскольку именно прямое освещение является основным, определяющим.
Настройка и расчет фотонной карты с сохранением в файл.
Настройка и расчет irradiance map для first diffuse bounce совместно с подгружаемой из файла фотонной картой для secondary bounces. После настройки - сохранение рассчитанной irradiance map в файл.
Финальный рендеринг с тонкой настройкой светового баланса при помощи VRay: Color mapping и выбором необходимого уровня антиалиасинга. На этом этапе используется настроенная irradiance map из файла.
__________________
Мебель оптом от производителя
________________________
Не зли других и сам не злись, Мы гости в этом бренном мире, А если что не так - смирись, Будь поумнее, улыбнись, Холодной думай головой, Ведь в этом мире все закономерно, Зло излученное тобой, К тебе вернется непременно...
Okean18 вне форума   Ответить с цитированием Вверх
Старый 30.04.2008, 23:55   #4
Okean18
VIP
 
Аватар для Okean18
 
Регистрация: 23.11.2007
Адрес: Советский Союз
Сообщений: 1,016
Сказал(а) спасибо: 1,552
Поблагодарили 1,749 раз(а) в 419 сообщениях
Вес репутации: 643
Okean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущее
По умолчанию

Пример настройки освещения сцены в VRay

В первой части были рассмотрены основные принципы работы и назначение некоторых настроечных параметров VRay. А сейчас давайте посмотрим, как все это можно использовать на практике.
Сцена
Выбор именно этой сцены обусловлен тремя причинами. Во-первых, сцена специально предназначена для тестирования возможностей различных рендер-программ и представлена во всех основных 3d-форматах. На том же сайте отображена обширная галерея уже выполненных рендеров этой сцены, так что есть возможность сравнить свой результат с достижениями других. Во-вторых, сцена являет собой некий промежуточный вариант - это не совсем интерьер, так же как и не полноценный экстерьер. Это внутренний дворик, наглухо ограниченный четырьмя стенами. Свет внутрь проникает сверху через довольно глубокий колодец, образованный стенами дома. В сцене есть второй этаж и область под балконами, и доступ прямому свету туда затруднен. В-третьих, сцена довольно велика - около 40 метров по длинной стороне. Оригинальная сцена создавалась в LightWave. На сайте есть ее версия, адаптированная под 3ds max с материалами, с ней и будем работать. Вот как это выглядит в scan-line рендере 3ds max:
[IMG][/IMG]
рис. 01. Так выглядит настраиваемая сцена в скан-лайн рендере3ds max. Время рендера на Athlon XP 3200 - 14 секунд.



Материалы и геометрия

VRay, как впрочем, и другие рендер-программы, предъявляет ряд требований к геометрии сцены. Геометрия обязана быть "правильной", то есть должны быть соблюдены обычные требования правильного моделирования. Геометрия не может содержать длинных тонких полигонов (полос), а стыки поверхностей должны быть выполнены без зазоров. Наличие зазоров - главная причина просачивания света сквозь углы (появления самосвечения в углах) и стыки поверхностей. Лучше, если отдельная модель представлена отдельным объектом. Например, при моделировании комнаты образующую коробку лучше сделать одним объектом, а не состоящей из шести отдельных объектов-боксов. При моделировании нужно использовать объемные "строительные" блоки, например, если стена в реальном мире всегда имеет толщину, то и в сцене не нужно пытаться моделировать ее плоскостью, не имеющей толщины. Лично я избегаю использования булевых операций для создания оконных и дверных проемов, поскольку они часто создают неоптимальную результирующую полигонную сетку. Лучший метод моделирования, который можно порекомендовать - работа с Editable poly.

VRay не так требователен к геометрии, как программы, использующие radiosity, тем не менее, хорошее моделирование - залог беспроблемного и быстрого расчета в нем. Поэтому анализ и исправление геометрии сцены при необходимости - первое, что следует сделать при подготовке к рендеру.

Достаточно важным, хотя и некритичным моментом является выбор единиц измерения в сцене. При использовании VRay наиболее удобно работать с миллиметрами. Это обусловлено диапазоном изменения значений некоторых его параметров, а использование миллиметров увеличивает точность работы с ними. Например, минимальное значение параметра Max. density фотонной карты составляет 0.001 в выбранной системе единиц измерения. Но 0.001 метра и 0.001 мм - совсем разные вещи. Конечно, столь высокая точность Max. density для фотонной карты неактуальна, но VRay имеет множество других параметров, диапазон изменения которых также основан на выбранной системе единиц. Используемую систему единиц всегда можно поменять на другую, например, при помощи утилиты Rescale World Units 3 ds max. Вот только вполне может оказаться, что большую часть уже выполненной работы придется пересчитывать. А это часы бесполезно потраченного времени.

Следует также придерживаться принципа соответствия размеров объектов сцены размерам реальных объектов. Необходимость этого обязательного требования продиктована использованием закона затухания интенсивности освещения с расстоянием в любой современной рендер-программе, рассчитывающей Global Illumination.

Поскольку я собираюсь использовать фотонные карты, необходимо настроить материалы. Как известно, VRay рассчитывает фотонные карты только для материалов типа VrayMtl. Поэтому необходимо выполнить преобразование стандартных материалов 3ds max, которые используются в нашей сцене, в материалы типа VrayMtl. Преобразование материалов довольно тривиально, нужно только изменить тип на VrayMtl, воспроизвести диффузные свойства материалов и положить в соответствующие слоты растровые карты. Поскольку некоторые материалы в оригинале имели bump, он также настраивался и в новых материалах, с теми же количественными значениями.

Объем геометрии сцены составляет 66 454 полигона, это вполне приемлемо. Количественные показатели геометрии и материалов важны - на них расходуется память, которая не может быть в дальнейшем перераспределена для других целей, например - для фотонных карт. Чем больше памяти отводится под геометрию и материалы, тем меньше ее остается для фотонов, поскольку Windows не может адресовать больше 2 гигабайт памяти. 2 Гб - это все, что доступно и системе и запущенным приложениям. Если сцена слишком велика, рендер вообще может стать невозможным. Планирование и оптимизация размера сцены - еще один немаловажный момент подготовки к расчетам.

Для планирования следует принимать цифру приблизительно в 1.5 Гб (если вы не запустили одновременно с 3ds max еще и Photoshop, Corel Draw, WinAmp, Word и IE . Вот сцена с настроенными материалами.

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

Для моделирования солнечного освещения подойдет любой ИС, который отвечает следующим трем обязательным условиям:

у него отсутствует спад интенсивности освещения с расстоянием;
его лучи параллельны друг другу;
он обладает световым фронтом, который можно представить частью плоскости прямоугольной или круглой формы.

В 3 ds max эти требования почти однозначно приводят к выбору ИС типа Target Direct. VrayLight не подходит, поскольку не может обеспечить параллельность лучей света (второе требование). Даже при отключении Ignore light normal в его настройках, световой фронт будет сферическим. Последнее приведет еще и к потерям излучаемых фотонов, то есть - к бесполезному увеличению времени расчетов.

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

Настройка положения и высоты Target Direct в сцене выбиралась так, чтобы наиболее интересно осветить ту часть, которая видна в камере. Волновой фронт выбран прямоугольным (Light Cone>rectangle) для облегчения его проецирования на интересующую часть сцены так, чтобы минимизировать потери при излучении фотонов. Затухание обязательно отключаем (Decay>Type>None). В качестве типа теней был выбран VRayShadow со значениями по умолчанию.

Второй источник света должен моделировать рассеянное освещение от небесного свода и потому обязательно должен быть пространственным (тип Area). В качестве такового можно выбрать ИС типа Skylight из набора 3ds max, и неплохо было бы с ним использовать подходящее изображение небесного свода в формате HDRI. Однако, учитывая то, что фотонные карты не могут работать со Skylight и HDRI, целесообразнее взять вместо него ИС типа VrayLight, которым и воспроизвести световой фронт. Впрочем, вариант с использованием Skylight+HDRI вовсе не исключен, просто здесь и сейчас я его рассматривать не буду.

Настраиваем VrayLight таким образом, чтобы он имел прямоугольную форму с размером, соответствующим размерам прямоугольного отверстия сверху дворика и располагаем его чуть ниже уровня крыши. Такое расположение минимизирует потерю фотонов, а освещение внешнего края крыши дома возложим на VRay Environment. Затухание освещения не отключаем - это не Солнце.

рис. 02. Настройки VRayLight

Наконец, для того, чтобы воспроизвести цвет неба, выставлен белый цвет для Environment 3ds max.

рис. 03. Вид сцены с положением источников и камеры.

Разрешение рендера устанавливаем 640х480, этого вполне достаточно для целей настройки освещения. После настройки, непосредственно перед финальным рендером, его нужно изменить на требуемое. Также минимизированы и параметры антиалиасинга (далее - AA): тип fixed rate, subdivs=1, можно и еще грубее.

Теперь, после расстановки освещения, необходимо настроить множители (Multiplier) для их интенсивностей. Эту операцию следует выполнять в несколько этапов. На первом - только для прямого освещения, это мы сейчас и сделаем.
__________________
Мебель оптом от производителя
________________________
Не зли других и сам не злись, Мы гости в этом бренном мире, А если что не так - смирись, Будь поумнее, улыбнись, Холодной думай головой, Ведь в этом мире все закономерно, Зло излученное тобой, К тебе вернется непременно...
Okean18 вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
сервус (26.01.2017)
Старый 01.05.2008, 00:03   #5
Okean18
VIP
 
Аватар для Okean18
 
Регистрация: 23.11.2007
Адрес: Советский Союз
Сообщений: 1,016
Сказал(а) спасибо: 1,552
Поблагодарили 1,749 раз(а) в 419 сообщениях
Вес репутации: 643
Okean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущее
По умолчанию

Продолжение
.................................................
Выключаем расчет GI у VRay и начинаем экспериментировать с настройками интенсивности, выполняя рендеры только с прямым освещением и регулируя Multiplier у ИС. Для данной сцены я остановился на следующих значениях: для Target Direct - 3, для VRayLight - 5 и белый Color для обоих (255, 255, 255). При настройке интенсивности света также с самого начала использовался экспоненциальный контроль экспозиции из VRay: Color mapping, тип - HSV Exponential, Dark Multiplier =1.6, Bright multiplier =1, Affect background off.

рис. 04. Так выглядит сцена с настроенным прямым освещением.

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


рис. 05. Параметры группы Color mapping помогают управлять экспозицией освещения.

Всего имеется три типа контроля: Linear multiply (линейный), Exponential (экспоненциальный), HSV exponential (экспоненциальный с сохранением насыщенности цвета). Различие между Exponential и HSV exponential состоит в насыщенности тонов после корректировки, при использовании Exponential изображение получается более "сдержанным", блеклым. На последующих этапах, после расчета фотонных карт и irradiance map, возможно, потребуется дополнительно подкорректировать освещение. Это вполне можно выполнить таким же образом и без пересчета карт.
Настройка фотонных карт

Для расчета освещенности выбран метод irradiance map + photon map. Сделано это в силу следующих причин: фотонная карта обеспечивает корректный и быстрый результат, карта освещенности (irradiance map) также обеспечивает скорость и при должной настройке - качество рендера. Преимущества такого метода достаточно подробно обсуждались в первой части.

Начнем с настройки фотонных карт. Прежде всего, на закладке VRay: Indirect Illumination выставляем следующие параметры:

рис.06. Настраиваем фотонную карту

Сейчас для первичного отскока выбран метод Global photon map с целью отладки фотонной карты. Позже, когда фотонная карта будет готова, я буду использовать Irradiance map.

Значение Secondary bounces>Multiplier установлено в максимальном значении = 1, по причине большого размера сцены и наличия труднодоступных участков для фотонов. По этой же причине значение глубины трассировки фотонов, Bounces, установлено в 20 против 10 по умолчанию.

Отключены Refractive GI caustics и Reflective GI caustics, поскольку я не планирую рассчитывать каустик-эффекты от отраженного диффузного освещения.

Самое главное, что нужно теперь определить - это количество излучаемых источниками света фотонов (subdivs). Оно должно быть достаточно большим, чтобы обеспечить требуемое качество изображения и достаточно малым, чтобы обеспечить максимальную для данных конкретных условий скорость расчета. В идеале, чем выше плотность фотонной карты, тем меньше радиус сбора (Search distance - далее SD) фотонов и тем качественнее фотонная карта. На практике же приходится учитывать временной фактор расчетов и ограничения операционной системы на память (1.5 Гб минус память на геометрию и материалы, помните?). Поэтому, разумный выбор SD и подгонка плотности фотонной карты под него - главная стратегия на этом этапе.

Критерием для выбора подходящего значения SD является анализ самой сцены. Если, например, в сцене присутствует важный хорошо видимый объект, передача светотени которого будет определяющей, выбор SD стоит привязывать к нему - SD должен быть таким, чтобы обеспечить точность передачи тени возле этого объекта. Если важного объекта нет, SD может быть выбран, исходя из размеров сцены и используемых единиц измерения (SD измеряется в установленных для сцены единицах). Поскольку в нашей сцене важных объектов нет, я предположил, что SD в пределах 50-150 миллиметров будет приемлемым, и остановился на прикидочном значении SD=100. Выбор SD позволяет сразу же определить и Max. density (разрешение фотонной карты, или ее "сжатие", далее - MD), так как между ними существует связь. Очевидно, что SD не может быть меньше MD, поскольку тогда в пределах SD не окажется ни одного фотона. Разработчики рекомендуют соотношение между SD и MD в пределах 2-6, то есть SD=MD*2…6, которым мы и воспользуемся. Обойтись вообще без MD, то бишь использовать для него нулевое значение (фотонную карту полного разрешения) не удастся, поскольку нам нужно излучить довольно большое количество фотонов, а ограничения на оперативную память не позволят этого сделать. Выбираем MD =100/6=15, в отношении величины MD всегда нужно стремиться к наименьшим из возможных значениям. Теперь рассчитаем четыре фотонных карты с разными значениями subdivs для источников света: для 3000, 5000, 7000 и 8000 subdivs на каждый. Каждую фотонную карту обязательно сохраняем в отдельный файл.

рис.07 Параметры фотонной карты

Параметры фотонной карты остаются неизменными, меняются лишь значения subdivs для источников света. Перед расчетом можно еще отключить генерацию caustic photons у источников света и у объектов (поскольку расчет каустик-эффектов от прямого освещения в этой сцене также не планируется) и убедиться в свойствах объектов, что для них установлены Generate GI/Receive GI.


рис. phot_map#3. Так выглядит фотонная карта для 3000 subdivs плюс прямое освещение.

Статистика фотонной карты:
subdivs 3000 3000 (первый и второй источники света - Target Direct и VRayLight, наше Солнце и Небо ;
излучено максимум: 18 000 000 фотонов;
сохранено в картах фотонов: 5 635 989;
потребовался объем памяти 516.4 мб;
размер файла на диске 315.6 мб.

рис. phot_map#5. Так выглядит фотонная карта для 5000 subdivs.

Статистика фотонной карты:
subdivs 5000 5000;
излучено максимум: 50 000 000 фотонов;
сохранено в картах фотонов 7 788 992;
потребовался объем памяти 714.1 мб;
размер файла на диске 436.1 мб.

рис. phot_map#7. Так выглядит фотонная карта для 7000 subdivs.

Статистика фотонной карты:
subdivs 7000 7000;
излучено максимум: 98 000 000 фотонов;
сохранено в картах фотонов 9 023 203
потребовался объем памяти 827.7 мб
размер файла на диске 505.2 мб.

рис. phot_map#8. Так выглядит фотонная карта для 8000 subdivs.

Статистика фотонной карты:
subdivs 8000 8000;
излучено максимум: 128 000 000 фотонов;
сохранено в картах фотонов 9 486 395;
потребовался объем памяти 869.8 мб;
- размер файла на диске 531.2 мб.

Легко увидеть, что наиболее качественная фотонная карта получена для 128 миллионов фотонов (рис. phot_map#8). Поскольку она рассчитана за вполне приемлемое время и требует не так много места на диске для хранения (попробовал бы я это сказать года три назад , ее и выбираю для дальнейшей работы. Вообще говоря, если бы я хотел ограничиться только видом из данной камеры, вполне можно было попробовать использовать самую первую фотонную карту с 3000 subdivs. Но я хочу еще посмотреть, что "творится" на балконах, а там плотность фотонной карты будет самой низкой во всей сцене и 3000 subdivs может оказаться недостаточно для качественного рендера.

Теперь выставляем загрузку фотонной карты из файла, в котором она была сохранена, и продолжим "игру" с настройками фотонной карты. В частности, попробуем менять SD, поскольку это не потребует пересчета фотонной карты.


рис. sd-10. SD=10мм. Радиус очень хорош сам по себе, поскольку обеспечивает высокую детализацию. К сожалению, при таком радиусе и с текущей плотностью фотонов получается очень шумная фотонная карта, малопригодная для использования.


рис. sd-1000. SD=1 метр. Шума почти нет, но получено это за счет сильного размывания деталей светотени из-за слишком большого радиуса. Изображение выглядит плоским, неинтересным. Да и время расчета увеличилось почти в 30 раз из-за того, что в расчете освещенности обрабатывается большее количество фотонов.

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

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

До сих пор количество собираемых фотонов Max. photons было установлено в 0 для того, чтобы ничто не мешало настроить радиус сбора. Давайте укажем значение Max. photons таким, чтобы оно соответствовало количеству собираемых фотонов в пределах нашего SD для наименее плотных областей фотонной карты. Идея в том, чтобы в областях карты с высокой плотностью фотонов освещенность точек рассчитывалась при помощи Max. photons. При этом радиус сбора будет меньше установленного в настройках SD, и будет меняться в зависимости от плотности карты, доходя до установленного значения SD в областях с самой низкой плотностью. Таким образом, мы достигаем сразу двух целей: радиус сбора будет меняться по всей фотонной карте и шумовые пятна потеряют свою регулярность. А за счет уменьшения реального радиуса сбора повысится детализация светотени, особенно в средних тонах.

Как найти Max. photons? Начинаем постепенно повышать с 0 его значение с некоторым шагом (допустим, в 10 фотонов) и каждый раз рендерим изображение. Когда изображение в тех областях, где фотонная карта наименее плотна (темные и труднодоступные для освещения участки) перестанет меняться при увеличении Max. photons, текущее значение Max. photons и следует взять. Остается только сожалеть об отсутствии "штатных" средств оценки плотности фотонной карты в произвольной выбранной точке сцены.

рис. mp-10. Фотонная карта для Max. photons = 10. Сильный шум, продолжаем увеличивать количество собираемых фотонов.

рис. mp50. Продолжая постепенно увеличивать Max. photons, я остановился на значении в 50 фотонов. После рубежа в 100 фотонов изображение вообще перестает меняться - во всех областях сцены достигается предел, установленный SD. Обратите внимание, что шумовые пятна стали теперь менее регулярными и не так явно выражены, как на рис. sd-90. Почернения на стыках и углах также почти полностью исчезли - срабатывает Convex hull area estimate.

Хорошая настройка фотонной карты - ключ к успешному и быстрому рендеру. Вот теперь перейдем к следующему этапу - настройке irradiance map.

Настройка Irradiance map

Снова переходим на закладку VRay: Indirect illumination и в качестве метода расчета первого диффузного отскока выбираем irradiance map. Для настроек irradiance map я выбрал Irradiance map preset>High, затем там же - Custom. Это позволяет редактировать настройки High.

рис. 08. Настройки расчета первого отскока методом irradiance map

Пороговые значения для цвета, нормалей, расстояния и количества сэмплов subdivs оставлены теми же, что были в preset High. Количество subdivs в 50 сэмплов означает, что для расчета диффузной освещенности каждой точки будет использовано до 2500 лучей, чего вполне достаточно для большинства случаев. Вообще же, "рабочий" диапазон subdivs лежит в пределах 30-120 сэмплов и может быть еще увеличен при наличии шума в изображении.

При наличии шума также настоятельно рекомендуется проанализировать его возможную причину, поскольку уменьшение соответствующего порогового значения может привести к решению проблемы без увеличения subdivs. Значения Min. rate и Max. rate также оставлены довольно высокими, поскольку для настройки используется изображение низкого разрешения (640х480). Для наблюдения за процессом расстановки точек можно включить Show calc. phase.

Теперь перейдем к настройкам самой карты на закладке VRay: Advanced irradiance map parameters.

рис. 09. Настройка irradiance map

Выполнить настройку параметров самой карты довольно просто. Выбираем Interpolation type: Least squares fit. Еще может быть только один вариант - Delone triangulation, который не размывает интерполируемую освещенность, в отличие от всех остальных типов и может быть использован для изображений, к которым предъявляются повышенные требования к четкости. Наша сцена вполне обычна, поэтому оставлен Least squares fit. Sample lookup (способ выбора рассчитанных точек для интерполяции) - Precalc'd overlapping, лучший из имеющихся, оставляем. Устанавливаем Randomize samples, что должно подавлять муар и другие проявления алиасинга. Check sample visibility стоит включать только при наличии проблем в сцене, связанных с проникновением света через поверхности. В текущей сцене таких проблем нет, значит, не включаем.

Calc. pass interpolation samples определяет количество рассчитанных значений освещенности для интерполяции освещенности нерасчетной точки. Чем выше это значение, тем ровнее градиент и больше размывание оттенков. Рекомендуемый рабочий диапазон для этого параметра 12-25, оставляем 15. Назначаем сохранение фотонной карты в файл, это может пригодиться для последующей коррекции при помощи Color map (экспоненциального контроля освещенности) и настройки антиалиасинга. Теперь все готово и можно нажимать кнопку "Render"!

Я рассчитал два изображения для двух настроек фотонных карт - для Search distance=90, Max. photons=0 и для Search distance=90, Max. photons=50 (то, что мы считали на рис. sd90 и на рис. mp50). Вот что получилось (разрешение и настройки AA пока не менялись).

рис. irr-1. Изображение, полученное методом irradiance map+ фотонная карта с Search distance=90, Max. photons=0. 640х480, без АА.

рис. irr-2. Изображение полученное методом irradiance map+ фотонная карта с Search distance=90, Max. photons=50. 640х480, без АА.

Мне лично больше нравится последнее изображение, и именно для него я просчитаю окончательный рендер. Вот он. Я только немного подкорректировал цвет, изменив Dark Multiplier с 1.6 до 1.4, и настроил AA:

рис.10. Настройки АА для финального рендера.

Поскольку сглаживание AA является дополнительным и независимым проходом по отношению к проходам расчета точек irradiance map, для настройки AA использовалась сохраненная в файл карта, как и для настройки Color map. Из фильтров AA общего назначения наиболее качественными являются Catmull-Rom и Mitchell-Netravali. Наиболее простой - Area. Эти фильтры определяют влияние пикселей изображения друг на друга и являются результатом исследований теории антиалиасинга. Другие фильтры этой группы предназначены для различных специальных случаев, описание которых можно найти в руководстве к VRay. Перед рендером я изменил разрешение изображения на 1024х768 и уменьшил значения Min. rate до -4, а Max. rate до -1. Поскольку количество точек изображения увеличилось, качество irradiance map не должно пострадать. Итак:

рис. cam-1. Финальный рендер, вид из первой камеры.
__________________
Мебель оптом от производителя
________________________
Не зли других и сам не злись, Мы гости в этом бренном мире, А если что не так - смирись, Будь поумнее, улыбнись, Холодной думай головой, Ведь в этом мире все закономерно, Зло излученное тобой, К тебе вернется непременно...
Okean18 вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
сервус (26.01.2017)
Старый 01.05.2008, 00:10   #6
Okean18
VIP
 
Аватар для Okean18
 
Регистрация: 23.11.2007
Адрес: Советский Союз
Сообщений: 1,016
Сказал(а) спасибо: 1,552
Поблагодарили 1,749 раз(а) в 419 сообщениях
Вес репутации: 643
Okean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущееOkean18 обеспечил(а) себе прекрасное будущее
По умолчанию

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

рис. cam-2. Финальный рендер для вида из второй камеры. Эта область обладает наименьшей для всей сцены плотностью фотонной карты. Количество фотонов здесь не превышает 30 на площадку сбора с Search distance =90 мм. Настоящее испытание для фотонной карты, которое она выдержала вполне достойно.

рис.11. Irradiance map, только первый диффузный отскок

рис. 12. Irradiance map, только первый диффузный отскок и прямое освещение

рис. 13. Фотонная карта и прямое освещение.

рис. cam-3. Еще один вид из первой камеры, повернутой на 180 градусов, ради во-о-н того барельефа . Та же фотонная карта, те же настройки, irradiance map рассчитывалась заново.

Имея корректно настроенные фотонную карту и irradiance map теперь можно "взять" рендер из любой точки сцены или даже просчитать анимацию облета. В последнем случае для irradiance map Mode можно использовать Multiframe incremental - карта будет просчитываться для каждого нового кадра не заново, а с нарастанием - только для новых точек, появившихся в поле зрения.

рис. cam-4. Еще один вид, с верхней галереи.

Использование экспоненциального контроля Color mapping - не единственный способ устранения засветов/темных мест в изображении. Можно предложить еще одну схему, которая требует большего времени для настройки, но способна обеспечить более интересное изображение.

Сначала настраиваем интенсивность источников света обычным способом - при помощи экспоненциального контроля Color mapping. Но перед финальным рендером там же выставляем Color mapping>Type>Linear multiply, G-buffer output channels>Unclamped color и вывод изображения - в файл формата HDRI. Рассчитанное таким способом изображение будет содержать значение цвета пикселей в формате с плавающей запятой и реальными (а не RGB) значениями интенсивностей. Затем, полученный файл можно открыть в HDRShop и использовать его возможности (или возможности плагинов, например, - tonemap) для преобразования динамического диапазона изображения к диапазону цветового пространства RGB (монитора) с сохранением в файл обычного формата. Преимущество такого подхода - в возможности использования для преобразования динамического диапазона изображения различных специально для этого созданных алгоритмов, и получении более интересного конечного изображения. И даже - для привнесения спецэффектов или специфических акцентов в изображение, например металлического блеска на хромированных деталях.

рис.14. Пример обработки HDRI-рендера в HDRShop. Область средних тонов смещена в направлении более светлых тонов относительно оригинала при помощи TONEMAP, плагина для HDRShop.

Счастливые обладатели Combustion могут воспользоваться для обработки HDR изображения его возможностями.
Caustic

рис. 15.gif Настроечные параметры caustic

Я не буду подробно останавливаться на создании и настройке caustic-эффектов, поскольку они формируются при помощи фотонных карт, и идеология работы с ними идентична общей методике настройки фотонной карты. Скажу лишь об отличиях, которые необходимо учитывать. Прежде всего, излучение фотонов происходит целенаправленно на объект, каустика от которого рассчитывается. Это позволяет при относительно небольших значениях caustic-subdivs для источников света получать фотонные карты очень высокой плотности и высокого качества. Каустик-фотонные карты рассчитываются и сохраняются отдельно. Это позволяет настраивать их отдельно и подгружать по мере необходимости при финальном рендере. При создании каустики следует также учитывать, что в процессе участвуют только два или несколько (а далеко не все) объекты сцены - генератор каустики и получатель (отражатель) каустики. Соответственно, у объекта-генератора в свойствах нужно включать Generate caustic и, как правило, отключать Receive caustic. У отражателя каустики - наоборот. Генератор должен иметь сильные свойства отражения или преломления и IOR выше единицы, отражатель - наоборот, должен быть чисто диффузным объектом.

Чем меньше Search dist., тем качественнее и четче каустика, то же относится и к Max. photons при достаточно высокой плотности фотонной карты. Вот, в общем-то, и все.

Заключение.
VRay очень интересный и богатый возможностями рендер. Мне удалось (надеюсь) описать самое главное в нем - один из способов расчета глобальной освещенности. Но "за бортом" осталась масса вещей, рассмотреть которые не удалось по той простой причине, что невозможно "объять необъятное", да еще в пределах одной статьи. Это и работа с материалами, и depth of field и motion blur, и действия с источниками света, особенно - с фотометрическими… Каждая из тем достойна отдельного разговора и специального подробного обсуждения.
__________________
Мебель оптом от производителя
________________________
Не зли других и сам не злись, Мы гости в этом бренном мире, А если что не так - смирись, Будь поумнее, улыбнись, Холодной думай головой, Ведь в этом мире все закономерно, Зло излученное тобой, К тебе вернется непременно...
Okean18 вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Kapriza (12.01.2015)
Старый 01.05.2008, 00:24   #7
jacik
Новичок
 
Регистрация: 23.04.2008
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
Вес репутации: 0
jacik пока не определено
По умолчанию V-Ray rendering system - table of contents

V-Ray rendering system - table of contents
Один из первых переводов Help(a) для популярного рендера Vray.
Приведено описание и расшифровка настроек, много советов по качественной настройке для грамотной визуализации.
Язык: русский
Формат: .doc
Размер в распакованном виде: 401 kb.
Рапида
__________________
3d модели мебели
jacik вне форума   Ответить с цитированием Вверх
Старый 14.06.2008, 00:19   #8
mesco
Новичок
 
Регистрация: 30.01.2008
Сообщений: 23
Сказал(а) спасибо: 0
Поблагодарили 4 раз(а) в 3 сообщениях
Вес репутации: 0
mesco пока не определено
По умолчанию V-Ray rendering system

V-Ray 1.50.SP2 for 3dsmax2009 32bit cracked
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.


V-Ray 1.50.SP2 for 3dsmax2009 64bit cracked
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.


толковый мануал по V-ray на русском языке (12,6Mb)
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.


Настройка света в интерьере с V-ray. Урок от Сергея Васильева в pdf со сценой в формате max. (4.34Mb)

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.


Пять уроков по Vray в формате PDF от Wouter Wynen на английском. Все на уровне картинок, так что абсолютно понятно.

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.
mesco вне форума   Ответить с цитированием Вверх
Старый 09.07.2008, 19:43   #9
ALEX_XV
VIP
 
Регистрация: 03.01.2008
Сообщений: 102
Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 5 сообщениях
Вес репутации: 0
ALEX_XV пока не определено
По умолчанию

А на 2008 есть Sp2?
ALEX_XV вне форума   Ответить с цитированием Вверх
Старый 13.07.2008, 11:43   #10
dimasinka
Пользователь
 
Регистрация: 08.07.2008
Сообщений: 75
Сказал(а) спасибо: 45
Поблагодарили 5 раз(а) в 2 сообщениях
Вес репутации: 0
dimasinka пока не определено
По умолчанию

подскажите чайнику как его ставить?
dimasinka вне форума   Ответить с цитированием Вверх
Ответ

Нижняя навигация
Вернуться   Форум профессиональных мебельщиков PROMEBELclub > Программы для мебельщиков > Программы для создания трёхмерной графики и анимации > 3d Studio MAX

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Принципы качественной визуализации Kudesnick Базис-мебельщик. Визуализация 49 13.01.2024 19:42
Модуль для онлайн-проектирования шкафа-купе. Construktor Мебельные онлайн-калькуляторы 125 05.02.2014 00:31
Шкафа-купе с боковыми полками. Варианты примыкания к напольному плинтусу dr_ugoff Проектирую ШКАФ (гардероб, стеллаж, шифоньер, купе ...) 71 23.08.2010 23:15


Текущее время: 15:58. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© 2007-2023 PROMEBEL

џндекс.Њетрика