Прогрессивная трассировка путей V-Ray.
В этом уроке рассмотрим альтернативный метод для расчета окончательного изображения с V-Ray, называемый прогрессивной трассировкой путей (progressive path tracing).
Метод, описанный в этой статье, является несколько устаревшим; новые версии с V-Ray включают Progressive image sampler, который может быть использован для аналогичных целей.
Обычно расчет изображения проходит через несколько отдельных задач: например, вычисление каустики, расчет светового кэша, расчет кэша освещенности и сэмплирование окончательного изображения. Хотя пользователь имеет визуальный контроль на некоторых из этих этапов, окончательное изображение получается только в конце последней стадии - промежуточные результаты не используются.
С другой стороны, прогрессивная трассировка путей - это метод постепенного вычисления всего изображения целиком. Пользователь может остановить просчет в любой момент и использовать промежуточные результаты, если они уже достаточно хороши. В дополнение, при трассировке путей пользователь имеет только несколько элементов управления, о которых надо беспокоиться, и это очень упрощает настройку.
На основании, заложенным алгоритмом светового кэша (light cache), V-Ray выполняет прогрессивную трассировку путей. Преимущество от использования светового кэша в уменьшении шума, возникающего в процессе трассировки путей, для более чистых результатов и в ускорении распространения света. Использование светового кэша гарантирует, что количество отскоков света не ограничено и что результат стремится к корректному решению света в сцене. В дополнение, световой кэш из изображения, полученного трассировкой путей, может быть сохранен и заново использован позже для обычной визуализации.
Исходная визуализация.
Шаг 1: Исходная настройка.
Настройка прогрессивной трассировки путей довольно проста:
1.1. Откройте исходную сцену.
1.2. Установите V-Ray как текущую систему визуализации.
1.3. Включите опцию Override mtl в свитке Global switches, нажмите кнопку рядом с ней и выберите материал VRayMtl с установками по умолчанию.
1.4. Включите Indirect illumination и установите Light cache как метод просчета и первичных, и вторичных отскоков.
1.5. Установите режим светового кэша Progressive path tracing.
1.6. Опционально вы можете включить Frame stamp для печати времени просчета на изображении.
1.7. Включите опцию Enable built-in frame buffer в свитке V-Ray virtual frame buffer. Это необязательно, но позволит вам безопасно увеличивать и перемещаться по изображению в процессе просчета. Использование виртуального буфера кадра (VFB) 3dsmax приведет к падению 3dsmax при попытке увеличения или перемещения изображения в процессе просчета.
1.8. Визуализируйте сцену. Вы должны увидеть, как изображение постепенно улучшается - более зашумленное вначале, по мере добавления сэмплов, становится лучше:
Шаг 2: Регулировка уровня шума.
Изображение выше достаточно зашумленное. Хотя оно посчитано очень быстро и может использоваться для предварительного просмотра. Однако для окончательной визуализации мы захотим уменьшить уровень шума. Это делается посредством подбора значения параметра светового кэша Subdivs.
3.1. Установите параметр светового кэша Subdivs в 2000.
3.2. Просчет. Теперь просчет занимает больше времени, т.к. V-Ray вычисляет больше сэмплов. Хотя мы увеличили Subdivs вдвое, время просчета возросло примерно вчетверо:
3.3. Если вы хотите уменьшить шум еще сильнее, еще больше увеличьте Subdivs. Для просчета статических изображений вы можете установить для этого параметра очень большое значение и ждать так долго, как вы хотите, пока не сочтете результат приемлемым и не прекратите просчет. На иллюстрации просчет с 20000 подразбиениями, который был прекращен через 1 час:
Шаг 3: Регулировка смещения решения GI.
Для изображений выше мы использовали для светового кэша установки по умолчанию (за исключением параметра Subdivs). Установки по умолчанию используют световой кэш как помощь в процессе расчета GI. Это помогает уменьшить шум на окончательном изображении ценою внесения смещения в решение GI. Это смещение можно обнаружить как просачивание света под тонкими стенками или как пятнистое вторичное GI. Однако во многих случаях разница между смещенным и несмещенным решением минимальна.
Вы можете использовать параметр светового кэша Sample size для управления смещением. При больших значениях будут использоваться большие сэмплы светового кэша и смещение будет увеличиваться. Меньшие значения будут уменьшать смещение, но могут использовать больше памяти. Значение 0.0 никакое кэширование не будет производиться вообще, и будет давать несмещенное решение. Ниже - три иллюстрации с различными значениями для Sample size и одинаковым значением Subdivs, равным 1000. В этой тестовой сцене различия незаметны, но в более сложных ситуациях уменьшение шума может быть значительным.
Sample size = 0.04
Sample size = 0.02
Sample size = 0.0 (unbiased solution)
Просчет с материалами.
Шаг 1: Просчет с материалами.
1.1. Выключите опцию Override mtl в свитке Global siwtches.
1.2. Для убыстрения предварительного результата верните параметр светового КЭШа Subdivs на 1000.
1.3. Визуализация:
В этом месте вы можете отрегулировать настройки материалов и т.п., пока имеете относительно быструю обратную связь.
Шаг 2: Улучшение качества с материалами.
Т.к. уровень шума определяется параметром Subdivs, мы должны только увеличивать его. Отдельные Subdivs для материалов (например, глянец отражений/преломлений) ничего не значат.
2.1. Увеличьте параметр Subdivs до 2000 и визуализируйте сцену. Просчет теперь занимает больше времени, но шум уменьшился:
По умолчанию V-Ray не считает отраженную GI-каустику, т.к. она имеет тенденцию добавлять шум к изображению. Однако иногда она важна для окончательного результата.
2.2. Включите опцию Reflective GI caustics в свитке Indirect illumination.
2.3. Визуализируйте изображение. Отраженная каустика может быть замечена на зеленом огрызке и на сфере, а также как общее осветление сцены. Обратите внимание, что изображение стало более зашумленным там, где есть каустика:
2.4. Для уменьшения шума в изображении нам опять надо увеличить параметр светового кэша Subdivs например до 4000. Хотя мы увеличили Subdivs вдвое, время просчета возросло примерно вчетверо:
Обратите внимание, что вы не можете получить GI-каустику из полностью отражающих поверхностей с точечными источниками света. Каждый источник света должен быть неточечным источником или материал должен быть с глянцем или и то и другое. Вы также можете использовать фотонную карту для генерации каустики через установки в свитке Caustics. Этот метод не такой точный, как GI-каустика, но может поддерживать точечные источники света с полностью отражающими поверхностями.
Увеличение размера изображения.
Запомните одну вещь, когда изменяете размер изображения: большие изображения более зашумлены по сравнению с меньшими при одинаковом значении параметра светового КЭШа Subdivs. Это происходит потому, что сэмплы распределены поверх большего количества пикселов, и, следовательно, каждый пиксел получает меньше сэмплов. Для компенсации этого вам необходимо увеличить значение параметра Subdivs. Увеличение разрешения вдвое означает, что вы также должны вдвое увеличить параметр Subdivs для получения того же качества (и это означает, что время просчета увеличится вчетверо). Здесь последнее изображение, посчитанное с разрешением 800х600 с 8000 Subdivs (щелкните на картинке для просмотра полного изображения):
Примечания:
- В этом режиме игнорируется тип сэмплера изображения (image sampler) (Fixed,Adaptive DMC, Adaptive subdivision), т.к. алгоритм трассировки путей делает суперсэмплинг пикселей автоматически. После окончания визуализации V-Ray напечатает минимальный и максимальный пути, которые были оттрассированы для пикселей в этом изображении.
- Однако фильтр антиалиазинга участвует в работе. Заметим, что фильтры, повышающие резкость (Mitchell-Netravali, Catmull-Rom) могут вносить шум и будут требовать больше сэмплов для получения гладкого изображения. Широкозахватные фильтры типа Blend могут требовать много времени для работы. Выключение фильтра антиалиазинга дает минимальный шум.
- Параметры Subdivs в материалах, текстурах, источниках света, настройках камер и т.д. в этом режиме игнорируются. Шум и качество полностью управляются через параметр светового кэша Subdivs.
- Принимаются во внимание только параметры DMC sampler: Adaptive amount и Time-independent. Никогда не устанавливайте параметр Adaptive amount в 0.0 при использовании трассировки путей, т.к. это приведет к остановке визуализации.
- В настоящее время алгоритмом трассировки путей генерируются только каналы RGBA. Любые другие каналы GBuffer игнорируются.
- Световой кэш не имеет ограничений на количество отскоков рассеянного (diffuse) света в сцене. Количество зеркальных (specular) отскоков (через отражения/преломления) управляются через материал или глобально через свиток Global switches.
- В настоящее время режим трассировки путей не работает правильно при просчете с полями.
- В настоящее время режим трассировки путей не работает с маскирующими объектами/материалами.
- В настоящее время V-Ray может сгенерировать только 2^32 уникальных световых путей. Параметр светового кэша Subdivs ограничен значением 60 000, которое дает 60 000^2 = 3 600 000 000 уникальных путей. Т.к. пути распределены по всему изображению, для очень больших изображений может быть невозможно взять достаточно сэмплов на пиксель для гладкого результата. Например, изображение с разрешением 2000x2000 может быть просчитано самое большое с 900 путями на пиксель, что может быть недостаточно для сглаженного результата. В этом случае использование традиционного метода сэмплирования (прямое вычисление GI) может оказаться лучшим решением.
Источник: https://docs.chaosgroup.com/display/VRAY3MAX/Progressive+Path+Tracing+With+V-Ray
Ви - мій гуру !!!
Вы - мой гуру !!!