Light cache |
Examples |
Light caching (другое название light mapping) это технология приближенного расчета глобального освещения в сцене. Этот метод Chaos Group использовала первой специально для V-Ray рендера. Он очень схож с photon mapping, но без многих присущих photon mapping ограничений.
Light caching построен на основе трейсинга лучей из камеры. Каждое отражение сохраняет освещение от других лучей в 3D структуре, похожей на photon map. С другой стороны, это совершенно противоположный способ рейтрейсинга, т.к. photon map прослеживает лучи от источников света, и сохраняет суммарную энергию с начала просчета луча в photon map.
Несмотря на простоту, light-caching подход имеет много преимуществ перед photon map:
- Проще в подготовке. Лучи трассируются только от камеры, в противоположность в трассировке от многих источников в photon map, что обычно требует подготовку для каждого источника в отдельности.
- Light-caching работает эффективно с любым источником - включая skylight, self-illuminated объекты, non-physical lights, photometric lights и т.п.. Photon map наоборот ограничен, он не может просчитывать освещение от skylight или от standard omni без обратно квадратичного затухания.
- Light cache обеспечивает корректный результат в углах и вокруг маленьких объектов. Photon map, с другой стороны, основывается на схеме плотности ожидания, которая часто выдает некорректный результат в указанных случаях, или перетемняя или пересвечивая эти области.
- Во многих случаях может быть использован для быстрого превью освещения в сцене.
Имея все эти преимущества, light caching близок по скорости с photon map и может обеспечивать приближенный просчет освещения сцены очень быстро. В дополнение light cache может быть использован для добавления эффекта глобального освещения в анимации.
Конечно, light cache имеет некоторые ограничения:
- Подобно irradiance map, этот алгоритм генерируется для определенного положения камеры.
- Так же как и photon map, light cache не адаптивный алгоритм. Освещение просчитывается на определенном пользователем фиксированном качестве.
Light cache работает не очень хорошо с bump maps.
Subdivs - определяет сколько лучей будет прослеживаться из камеры. Реальное количество лучей это квадрат от этого значения (1000 сабдивов по умолчанию означают, что 1000000 лучей будут прослежены из камеры).
Sample size - определяет плотность сэмплов. Меньшее значение означает, что сэмплы будут ближе один от другого, таким образом сохраняя мелкие детали, но создавая больше шума и занимая больше памяти. Большее значение обеспечит более сглаженный результат, но картинка потеряет в деталях. Эта величина может быть задана или в единицах сцены или относительно размера картинки, в зависимости от выбранного режима light cache Scale.Scale - этот параметр определяет единицы Sample size и Filter size
Screen - размер сэмплов задается в частях финальной картинки (1.0 означает что сэмплы будут такого же размера как картинка). Сэмплы которые ближе к камере будут меньше, и сэмплы которые дальше от камеры будут больше. Единицы не зависят от разрешения картинки. Эта величина хорошо подходит для неподвижных картинок или для анимаций, где light cache нужно просчитывать для каждого кадра.
World - размер сэмплов задается в единицах сцены. Может влиять на качество сэмплов - сэмплы которые ближе к камере будут плотнее, и казаться поэтому ровнее. Сэмплы дальше от камеры будут реже и будут выглядеть шумнее. Это больше подходит для fly-through анимации, по причине равномерной плотности сэмплов.
Store direct light - с этой опцией, так же сохраняет и обрабатывает прямой свет. Может быть, удобно для сцен с большим количеством источников света и irradiance map или direct GI метод в качестве алгоритма для первого отражения, т.к. прямое освещение будет использовать light cache, вместо просчета каждого источника в отдельности. При этом сохраняется только диффузное освещение от источников сцены. Если вы хотите использовать light cache для просчета всего глобального освещения, с сохранением четкости прямого света, отключите эту опцию.
Show calc. phase - делает видимыми уже просчитанные лучи в процессе рендера. Не влияет непосредственно на алгоритм, только на отображение в буфере. Опция игнорируется при рендере по полям - в этом случае фаза просчета не отображается.
Pre-filter - при включенной, сэмплы в light cache фильтруются перед рендером. Опция отличается от normal light cache filtering (смотри ниже) которая выполняется во время рендера. Префильтрация выполняется путем проверки каждого сэмпла поочередно, и модификации их так, что они будут иметь среднее значение заданного количества соседних сэмплов. Больше число сэмплов в префильтре означает более сглаженный результат с меньшим шумом. Префильтрация выполняется сразу после расчета light cache или после загрузки с диска сохраненного файла с light cache.
Filter - определяет тип фильтра выполняемого в течении рендера. Фильтр определяет, как свет интерполируется из сэмплов в light cache.
None - без фильтрации. Будет использовано ближайшее значение освещенности в точке шейдинга. Самый быстрый вариант, но может создавать артефакты в углах, если просчет light cache имеет много шума. Можно использовать префильтр для уменьшения этого шума (смотри выше). Этот вариант фильтрации работает хорошо, если light cache используется для просчета только вторичного отскока света или для тестового превью.
Nearest - этот фильтр ищет ближайшие сэмплы и усредняет их значение. Этот фильтр не подходит для непосредственной визуализации с light cache, но полезен, если вы используете light cache для вторичных отскоков. Свойство этого фильтра в том, что он адаптивен к плотности сэмплов. Параметр Interpolation samples определяет, как много сэмплов берется из light cache для фильтрации.
Fixed - Этот фильтр усредняет все сэмплы в пределах в указанной дистанции от просчитываемой шейдером точки. Этот фильтр обеспечивает сглаженный результат и подходит для непосредственной визуализации, когда light cache используется для просчета первого отскока. Размер фильтра определяется параметром Filter size. Большее значение сглаживает результат и уменьшает шум. Обычно используется значение параметра в 2-6 раз больше значения Sample size. Filter size использует тот же масштаб как и Sample size и его значение зависит от параметра Scale
Use light cache for glossy rays - при включенной опции, light cache будет использован для просчета бликующих лучей так же как и для GI лучей.
Это может значительно ускорить рендер сцены с бликующими отражениями.
Number of passes - light cache просчитывается за несколько проходов, которые затем объединяются. Это обеспечивает одинаковость расчета light cache на компьютерах с разным значением процессоров. Обычно, просчет с меньшим числом проходов будет менее шумным, для того же числа сэмплов; однако малое количество проходов не будет равномерно распределено по нескольким тредам.
Для машины с одним процессором без мультитрэдинга, число проходов может быть установлено в 1 для лучшего результата.Mode - определяет режим рендера для light cache:
Progressive path tracing - в этом режиме, light cache алгоритм используется для прогрессивного сэмплирования финальной картинки. Более подробно этот параметр рассматривается в описании соответствующего урока.
Single frame - просчитывает light cache для каждого кадра анимации.
Fly-through - light cache будет просчитываться для всей анимации, в случае если в течение анимации меняется только позиция камеры. Учитывается только перемещение камеры в пределах активного сегмента времени
Использование World Scale для этого режима может быть предпочтительным. Light cache просчитывается перед рендером и затем используется без изменения, в течение рендера кадров всей анимации.
From file - из файла, в этом режиме light cache загружается из файла. Данные из файла не включают префильтрацию light cache; префильтрация выполняется после того, как файл с данными light cache будет загружен, для возможности настройки префильтрации без просчета всего light cache.