Вторник, 30.04.2024, 00:05
Приветствую Вас Гость RSS
Bloha_1915
Все мои работы
ГлавнаяКаталог статейРегистрацияВход
Меню сайта
Категории раздела
Учебные пособия [4]
Статьи по созданию моделей [12]
Статьи по созданию материалов и текстур [3]
Постобработка изображений [3]
Визуализация, рендер, камеры [18]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Облако тэгов

Главная » Статьи » Курс Дизайн интерьера » Визуализация, рендер, камеры

Оптимальные настройки V-Ray – Light Cache

Традиционный Photon map

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

Принцип работы Photon mapping легко понять в сравнении с Irradiance map.

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

К тому же, в алгоритме Photon map не предусмотрена достаточная адаптивность по отношению к мелким деталям сцены, следствием чего является плохая их проработка.

Photon map может выдавать артефакты в виде затемненных границ объектов, что является одним из главных его недостатков.

Но, мало того, на практике, самым существенным недостатком Photon map алгоритма является его абсолютная неспособность просчитывать освещение от источников вторичного света. Фотонная карта может испускать фотоны только от традиционных источников прямого света. Например, она не воспримет свет от самосветящегося материала VRayLightMtl, GI Environment (skylight) или же карты VRaySky. Это делает Photon mapping совершенно бесполезным при рендеринге экстерьерных и интерьерных, использующих режим работы Skylight portal источников света VRayLight , сцен.

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

Однако, вследствие набора ограничений и иррациональностей, устаревший алгоритм GI - Photon map не следует использовать в V-Ray вообще. Он был популярен в ранних версиях V-Ray и использовался как движок для Secondary bounces до момента появления намного более продвинутого и уместного алгоритма Light cache.

Современный Light cache

Light cache – оригинальный высокотехнологичный рендер-движок, похожий техникой составления карты глобального освещения на Photon map и, в то же время, по принципу просчета лучей являющийся его противоположностью. Суть техники просчета заключается в том, что Light cache (далее – LC), выпускает множество лучей из камеры, формируя карту глобального освещения в точках пересечения этих лучей с объектами данной сцены. Данные лучи не являются лучами глобального освещения, да и в принципе лучами как таковыми. Это всего лишь пути, направленные из точки обозревания на сцену. Луч LC, попадая на объект сцены, вычисляет в точке попадания цвет, учитывая свойства материалов и попадающее на нее освещение от источников прямого света или вторичного освещения.

Сравнивая LC с Photon map, следует отметить, что LC лишен всех основных недостатков своего «предшественника». LC считает лишь те зоны в сцене, которые видны из камеры. Он хорошо справляется с мелкими деталями и не создает затемнений на краях объектов. И, самое главное, Light cache способен работать со всеми источниками света, включая источники вторичного освещения.

Главные параметры Light Cache

В первой зоне Calculation parameters свитка V-Ray:: Light cache, находятся настройки, непосредственно влияющие на вычисление LC.

Примечание:

Указанные далее рекомендации относительно конкретных значений параметров справедливы лишь для LC, используемого в качестве Secondary bounces GI engine.


Subdivs – параметр, определяющий количество лучей LC, трассирующихся из камеры в сторону сцены для определения цветов сэмплов.

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


Разумеется, чем больше количество лучей, определяемое значением параметра Subdivs, тем большим их числом будет "обстреляна" одна ячейка и тем более точно будет определен ее цвет. Реальное количество лучей LC равно квадрату значения параметра Subdivs, как и для других функций использующих аналогичный параметр в V-Ray.

Как правило, значения Subdivs  в 2000 – 3000 более чем достаточно для финального рендеринга фотореалистичных изображений. Однако в стартовых настройках V-Ray следует использовать установленное значение в 1000 Subdivs и повышать его лишь при необходимости.

Sample size – размер ячеек-образцов (samples). Когда размер ячейки задан, то алгоритм LC делит на них все изображение. После чего, трассирующие лучи определяют цвет каждой ячейки. Для определения цвета ячейки необходим как минимум один луч. Предположим, что общее количество лучей, заданных параметром Subdivs, меньше общего количества ячеек. Тогда алгоритм LC будет вынужден окрасить некоторые из рядом стоящих ячеек одним цветом, что визуально будет выглядеть как увеличение размера некоторых ячеек. Другими словами, можно сказать, что визуальный размер ячеек косвенно зависит и от значения параметра Subdivs и размер, заданный значением Sample size будет достигнут только если в сцене будет достаточное количество лучей LC. В случае, если количества лучей LC окажется больше количества ячеек, то некоторые ячейки будут просчитаны несколькими лучами LC и будут иметь более точный цвет, что улучшит итоговое качество визуализации.

Менять размер ячеек следует лишь, если в сцене находиться большое количество мелких деталей и карта LC недостаточно детализирована для их верной передачи. В большинстве случаев номинально установленное значение Sample size равное 0.02 вполне достаточно для большинства сцен. Именно его следует использовать в номинальных настройках V-Ray.

Scale – параметр в виде выпадающего списка, позволяющий задать единицы измерения размера ячеек. Всего в выпадающем списке два значения, это Screen и World соответственно.

Значение Screen позволяет указывать размер ячеек в дробном соотношении от финального изображения. Например, если Sample size равен 0.02, а Scale выставлено в Screen, то это означает, что каждая ячейка будет занимать 2% от размера всего изображения и т.д. Также следует понимать, что размер ячейки, заданный относительно экрана, не зависит от размера изображения в пикселях и от геометрии сцены. То есть, в сцене, представленной на изображении выше, размер ячеек на фронтальной грани куба и на стене за ним будут иметь одинаковый размер, несмотря на то, что геометрически эти поверхности находятся на разном расстоянии от камеры.

Значение World заставляет LC использовать для выбора размера ячеек системные единицы 3ds Max, установленные для данной сцены в System Unit Setup. При таком подходе, размеры ячеек геометрически будут одинаковы, но визуально их размер на данном виде из камеры будет завесить от геометрии сцены. В таком случае в сцене, представленной на изображении ранее,  размеры ячеек на стене за кубом визуально будут меньше, чем размеры ячеек на фронтальной грани куба. Также, учитывая, что LC сэмплирует каждый участок изображения фиксированным количеством лучей, то на меньшую по размеру ячейку попадет меньшее количество лучей LC, по сравнению с большей. Это ухудшит качество сэмплирования меньших по размеру ячеек. На финальной визуализации это может проявиться как шум или артефакты на мелких деталях сцены.

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

Для рендеринга статических сцен, а также динамических анимаций, когда карта LC для каждого кадра просчитывается индивидуально и не может быть использована для совокупности кадров, необходимо использовать режим Screen. Это позволит уменьшить количество нежелательных артефактов. Именно значением Screen параметра Scale следует использоваться для LC в универсальных настройках V-Ray.

Number of passes – количество проходов просчета LC. Номинально просчет LC не многопоточный процесс, однако, он может быть специально разделен на несколько проходов (частей) с целью полной загрузки всех потоков многоядерной или многопроцессорной системы. Например, если просчет LC ведется четырехядерным процессором, можно LC не разбивать на проходы, то есть установить значение Number of passes равное единице. Тогда, во время просчета LC будет задействовано лишь одно ядро четырехядерного процессора, а остальные три будут простаивать, не участвуя в расчете LC. Поэтому для ускорения просчета LC его следует принудительно делить на количество проходов, кратное количеству доступных потоков системы. На сегодняшний день (Февраль 2011) количество ядер в большинстве доступных компьютерных систем не превышает восьми. Например, восемь ядер доступно в системе с двумя четырехядерными процессорами Xeon в двухпроцессорной материнской плате. Для большинства систем номинально установленное значение Number of passes равное 8 будет оптимальным и именно его стоит использовать в универсальных стартовых настройках V-Ray.

Store direct light – функция, позволяющая алгоритму LC сохранять не только информацию о GI, но и информацию о прямом свете сцены. Как мы уже знаем, LC трассирует лучи из камеры на объекты сцены. После пересечения луча с объектом сцены, алгоритм LC проверяет шейдер объекта для определения его цвета, и продолжает трассировку луча от этой точки к источнику света, освещающему ее для определения яркости. Другими словами, алгоритм LC по долгу принципа своей работы вынужден проверять и прямой свет, попадающий на данную точку. То есть, он изначально рассчитывает информацию и о прямом свете в сцене в том числе. Включение опции Store direct light позволяет кэшировать, то есть сохранять эту информацию о прямом свете в сцене. Традиционно, после того как прочитан рендер элемент GI, V-Ray отдельно просчитывает прямое освещение сцены. Сэмплирование прямого света сцены безусловно требует вычислительных ресурсов и занимает определенное время. Кэширование света, то есть предварительное сохранение информации о нем из LC и последующее использование готовой информации значительно ускоряет финальный рендеринг, избавляя алгоритм просчета прямого света от вычислительных затрат. Несложно представить качество полученного таким образом прямого света. Оно будет значительно хуже, чем при традиционном сэмплировании и будет напрямую зависеть от качества самой LC. Такой подход оправдан лишь в очень перегруженных сценах с огромным количеством источников света, прямой расчет света от которых займет долгие часы. Опять же, просчитанные таким образом изображения будут иметь существенные недостатки, явно выдавая компьютерное происхождение полученных изображений. Они будут выходить неживыми с "замыленными" и нечеткими тенями. В фотореалистичном рендеринге такой подход не оправдан, даже с учетом существенной экономии вычислительных ресурсов. В номинальных стартовых настройках V-Ray функцию Store direct light следует выключать.

Show calc. phase – превосходная, в некотором смысле незаменимая функция, позволяющая отображать достаточно информативное превью просчитываемого изображения уже в первые минуты рендера. Это позволяет избавиться от мучительных тестовых рендеров на низких разрешениях и помогает с легкостью настраивать освещение и материалы сцены, не дожидаясь всех стадий просчета финальной визуализации. Обязательно пользуйтесь этим при настройке Ваших сцен. Разумеется, эту функцию следует использовать в универсальных настройках V-Ray.


Adaptive tracing – функция, позволяющая использовать дополнительную информацию об освещении в сцене для каждого сэмпла LC и добавлять больше лучей в местах с большим количеством освещения. В некоторых случаях это помогает устранить шум на LC,  например, если в сцене присутствуют каустики. Однако это занимает ресурс оперативной памяти. На работу параметра Adaptive tracing также влияет функция Use directions only, которая активна лишь в случае, когда первая включена. На практике эта функция не вносит заметных улучшений в большинстве сцен и в стартовых настройках V-Ray ее не следует активировать.

Воссоздание карты Light Cache

Далее в свитке V-Ray:: Light cache идет раздел Reconstruction parameters, содержащий несколько настроек, отвечающих за постобработку уже просчитанной карты LC при финальном рендеринге изображения.

Pre-filter – функция, отвечающая за интерполяцию сэмплов, ячеек-образцов LC между собой. Pre-filter интерполирует имеющуюся карту LC сэмплов для получения более сглаженного результата. И только после этого передает ее далее для просчета финального изображения. Степень интерполяции определяется числовым значением рядом с Pre-filter. Большие значения дают менее шумный, но более размытый результат, что неуклонно ведет к исчезновению мелких деталей и появлению "летающих стульев". Небольшие значения Pre-filter дают детализированную карту LC, однако из-за слабого размытия ее семплов, она может оказаться весьма шумной.


Filter – выпадающий список, позволяющий выбрать дополнительный алгоритм интерполяции карты LC при финальном рендеринге. Как было сказано ранее, V-Ray, после расчета LC, передает рассчитанную LC карту алгоритму финального рендеринга. Использование фильтра LC позволяет внести дополнительную интерполяцию LC на стадии финального рендеринга. После того, как карта LC преданна алгоритму финального рендеринга, он берется за просчет точек шейдирования (единица рендеринга). Если выбран один из фильтров (не путать с Pre-filter), то при просчете каждой точки шейдирования, алгоритм финального рендеринга будет интерполировать информацию о сэмплах карты LC для просчета данной точки.

None – пункт выпадающего списка Filter, исключающий использование фильтра LC. В этом случае алгоритм финального рендеринга будет использовать карту LC в том виде, как она есть, без дополнительной фильтрации.

Nearest - фильтр LC, использующий для интерполяции данной точки в карте LC определенное количество ближайших сэмплов. Количество ближайших сэмплов, участвующих в фильтрации определяется параметром Interpolation samples.


Fixed – фильтр, аналогичный фильтру Nearest, с той лишь разницей, что количество сэмплов, участвующих в модификации данной точки на карте GI, определяется квадратной зоной с центром в этой точке. Величину зоны определяет параметр Filter size. Единицы измерения Filter size зависят от единиц величины сэмплов, заданных параметром Scale в зоне Calculation parameters, описанной ранее.

Стоит внимания тот факт, что фильтр Fixed просчитывает и модифицирует лишь области, попавшие в зону действия Filter size. Они выглядят как квадраты с информацией о вторичном освещении сцены, в то время, как остальные зоны он оставляет нетронутыми, которые выглядят как черный фон.


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

Использование фильтра Fixed оправданно лишь в случае просчета анимации и Sample size, измеряемом в системных единицах сцены, то есть при Scale: World. В остальных случаях номинально стоит использовать фильтр Nearest.

По принципу работы Pre-filter и Filter понятно, что они в результате выполняют одну и ту же функцию – размывают (интерполируют) карту LC, делая ее более однородной. Эти механизмы различаются лишь технической реализацией. Алгоритм Pre-filter интерполирует сразу все сэмплы для всей карты LC. Однако, его недостатком является то, что это однопоточный процесс и, вне зависимости от количества потоков, доступных системе, он будет рассчитываться лишь одним потоком. В то же время, алгоритм Filter рассчитывается более точно, т.к. это происходит отдельно для каждой отдельной порции рендеринга. Такой подход занимает больше вычислительных ресурсов, заставляя V-Ray каждый раз рассчитывать интерполяцию для каждой порции рендеринга. Однако процесс работы Filter, как и финальный рендеринг, многопоточный и использует все доступные системе потоки, за счет чего вычислительная нагрузка распределяется. Для одноядерных и двухъядерных систем оправдано использование Pre-filter или же их комбинации в виде Pre-filter + Filter, где количество сэмплов интерполяции распределены пополам или даже с большим перевалом в сторону префильтрации. Большинство высокопроизводительных графических станций и даже игровых ПК способны обрабатывать по четыре и более физических или виртуальных потоков одновременно. Для них будет оправданно использование именно алгоритма Filter. Особенно эта рациональность ощутима при дистрибутивном рендеринге, когда в расчете одного изображения одновременно учувствуют несколько компьютеров.

В универсальных стартовых настройках V-Ray следует использовать лишь алгоритм Filter: Nearest с Interpolation samples равным 10. Этот алгоритм и такая степень интерполяции дадут хорошее не размытое детализированное глобальное освещение без видимых артефактов.

Use light cache for glossy rays – опция, позволяющая производить расчет размытых отражений и преломлений на материалах объектов сцены, используя LC. Она позволяет существенно сэкономить вычислительный ресурс. Вполне ожидаемо, что качество просчитанных таким образом поверхностей будет заметно ниже, чем при прямом расчете алгоритмом финального рендеринга и качество просчета напрямую будет завесить от качества и размытости карты LC. Как и в случае с подобной по цели опцией Store direct light, информация, полученная при просчете вторичного освещения, также содержит в себе ту, которая может быть использована в расчете размытых отражений. Разумеется, материалы сцены, просчитанные таким образом будут выглядеть смазанными и беспорядочными, что совершено неприемлемо при фотореалистичном рендеринге. Немного повлиять на эту ситуацию можно путем сильного завышения настроек карты LC для получения относительно качественных Hilight glossiness и Refraction Glossiness в материалах сцены. Правда, тогда станет вопрос об экономии времени и особенно актуальным он будет при дистрибутивном рендеринге. К сожалению, на данный момент в V-Ray, карта LC не может быть просчитана, используя потенциал дистрибутивного рендеринга. Даже в сетевых вычислениях время ее просчета не будет отличаться от времени просчета на одном компьютере.


Поэтому в универсальных стартовых настройках V-Ray опцию Use light cache for glossy rays использовать не стоит для номинального исключения ее недостатков и артефактов, связанных с ее использованием.

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

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

Друзья, искренне надеемся, что внимательно прочитав этот урок, Вы стали значительно ближе к пониманию сути работы Photon map и Light cache. Также надеемся, что Вас перестали пугать множество настроек LC и вводить в заблуждения их технологичные названия. Понимание этой важнейшей информации позволит с легкостью настраивать и получать отличные карты GI для фотореалистичных 3d визуализаций.



Источник: http://renderstuff.ru/vray-light-cache-optimalnye-nastrojki-cg-urok/
Категория: Визуализация, рендер, камеры | Добавил: bloha_1915 (27.01.2012)
Просмотров: 9006 | Теги: визуализация, v-ray, рендер | Рейтинг: 5.0/2
Всего комментариев: 0

Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Ярмарка мастеров
  • Hand Hand

  • Copyright bloha_1915 © 2024
    Бесплатный хостинг uCoz