Сэмплирование (sampling)¶
Ссылка
- Панель:
Сэмплирование – это процесс трассировки лучей из камеры в сцену и их отражения до того момента, пока они не достигнут источника света, например, источника освещения, излучающего меша или фона мира. Алгоритм для этого известен как интегратор.
- Сэмплов во вьюпорте (Максимум) (viewport (Max) samples)
Количество путей для трассировки на один пиксель в 3D-вьюпорте (при использовании шейдинга вьюпорта „Rendered“). Установка этого значения на ноль включает неограниченный сэмплинг.
- Сэмплов при рендере (Максимум) (render (Max) samples)
Количество путей для трассировки на один пиксель в финальном рендере. По мере увеличения сэмплов отладка становится менее шумной и более точной за счёт более длительного времени рендеринга.
- Ограничение времени (time limit)
Останавливает рендеринг, если время превышает лимит, даже если желаемое количество сэмплов ещё не достигнуто. Установка этого значения на ноль – отключает лимит.
Примечание
Ограничение по времени не включает время предварительной обработки, а только время самого рендеринга.
Адаптивное сэмплирование (adaptive sampling)¶
Если на параметре „Noise Threshold“ установлен флажок – Cycles будет использовать адаптивное сэмплирование, сокращая процесс сэмплинга в областях, которые стали менее «шумными», чем указанное пороговое значение, – другими словами, более не тратит время на дальнейшую доработку областей, которые уже выглядят достаточно хорошо. Например, для волос персонажа может потребоваться много сэмплов, но для фона может потребоваться всего несколько.
- Порог шума (noise threshold)
Порог для принятия решения о продолжении сэмплирования пикселя. Типичные значения находятся в диапазоне от 0.1 до 0.001, причём более низкие значения означают более лучшее качество, но и более длительное время рендеринга. Установка этого значения на 0 заставляет Cycles угадывать автоматическое значение на основе общего количества сэмплов.
- Минимум сэмплов (min samples)
Минимальное количество сэмплов, которое пиксель получает перед применением адаптивного сэмплирования. При установке значения 0 (по умолчанию) – Cycles автоматически выбирает значение, определяемое параметром „Noise Threshold“.
Шумоподавление (denoising)¶
Шумоподавление использует специализированный алгоритм для получения менее «шумного» изображения без необходимости использования бо́льшего количества сэмплов.
См. также
Если вы включите сохранение проходов функции шумоподавления „Denoising Data“ – вы также можете выполнять шумоподавление на этапе композитинга с помощью ноды Denoise.
- Шумоподавление (вьюпорт) (denoise (viewport))
Следует ли выполнять шумоподавление для 3D-вьюпорта в режиме шейдинга „Rendered.
- Шумоподавление (рендеринг) (denoise (render))
Следует ли выполнять шумоподавление для финального отрендеренного изображения.
- Шумоподавитель (denoiser)
Алгоритм, который нужно использовать.
- Автоматически (automatic):
Использует шумоподавление с ускорением GPU, если оно поддерживается, для достижения наилучшей производительности. Предпочтительно OpenImageDenoise вместо OptiX.
- OpenImageDenoise:
Использует Open Image Denoise от Intel, шумоподавитель ИИ. Как правило, обеспечивает высочайшее качество.
- OptiX:
Использует шумоподавитель ИИ OptiX от NVIDIA. Поддерживает ускорение GPU на некоторых старых графических процессорах NVIDIA, где OpenImageDenoise не поддерживается.
Доступно только на графических процессорах NVIDIA при настройке во вкладке «Устройства рендера Cycles» в пользовательских «настройках».
- Проходы (passes)
Управляет тем, какие проходы рендеринга должен использовать шумоподавитель в качестве входных данных. Как правило, чем больше проходов доступно шумоподавителю, тем лучше результат. Рекомендуется использовать как минимум „Albedo“, так как „None“ может размывать детали, особенно при меньшем количестве сэмплов.
- Нет (none):
Уменьшает шум изображения, используя данные о цвете.
- Альбедо (albedo):
Уменьшает шум изображения, используя данные о цвете и альбедо.
- Альбедо + Нормали (albedo + normal):
Уменьшает шум изображения, используя данные прохода цвета, альбедо и нормалей.
- Предварительный фильтр (prefilter) OpenImageDenoise
Управляет применением предварительной фильтрации к „проходам“ перед шумоподавлением. Видно только при использовании OpenImageDenoise.
- Нет (none):
Не применяет предварительную фильтрацию к входным проходам. Этот вариант сохраняет наибольшую детализацию и является самым быстрым, но предполагает, что входные проходы свободны от шума, что может потребовать большого количества сэмплов. Если входные проходы не свободны от шума – шум останется в изображении после шумоподавления.
- Быстро (fast):
Предполагается, что входные проходы не являются свободными от шума, пока к ним не применяется предварительная фильтрация. Этот вариант работает быстрее, чем настройка «точно», но даёт более размытый результат.
- Точно (accurate):
Предварительно фильтрует входные проходы перед шумоподавлением для снижения шума. Этот параметр обычно выдаёт более детальные результаты, чем опция „Fast“, но с увеличенным временем обработки.
- Качество (quality) OpenImageDenoise
Общее качество шумоподавления. Видно только при использовании OpenImageDenoise.
- Высокое (high):
Обеспечивает высочайшее качество за счёт продолжительности по времени.
- Баланс (balanced):
Баланс между производительностью и качеством.
- Быстро (fast):
Жертвует качеством ради скорости (идеально подходит для рендеринга вьюпорта).
- Стартовый сэмпл (start sample)
Сэмпл, с которого следует начинать шумоподавление в 3D-вьюпорте.
- Использовать GPU (use GPU)
Выполнить шумоподавление на графическом процессоре (GPU). Это значительно быстрее, чем на CPU, но требует дополнительной памяти GPU. Если для больших сцен требуется больше памяти графического процессора, эту опцию можно отключить.
Подробную информацию о поддерживаемых графических процессорах см. в разделе „Рендеринг на GPU“.
Наведение путей (path guiding)¶
Наведение путей помогает снизить уровень шума в сценах, где поиск пути к источнику света затруднён при обычной трассировке путей, например, когда комната освещается через небольшой дверной проём. Важные направления света со временем изучаются и улучшаются по мере получения бо́льшего количества сэмплов.
Примечание
„Наведение путей“ доступно только при рендеринге на процессоре (CPU).
Хотя наведение путей помогает визуализировать каустику в некоторых сценах, оно не предназначено для комплексной каустики, поскольку её труднее изучить и ею трудно управлять.
См. также
„Порталы (portals)“ для ручного управления трассировкой путей.
- Сэмплы для обучения (training samples)
Максимальное количество сэмплов, используемых для обучения. Значение 0 будет продолжать обучение до конца рендеринга. Обычно для точного наведения достаточно от 128 до 256 обучающихся сэмплов. Более высокие значения могут привести к незначительному повышению качества наведения, но с увеличением времени рендеринга.
- Поверхность (surface)
Включить наведение путей для диффузных и глянцевых компонентов поверхностей.
- Объём (volume)
Включить наведение путей внутри объёмов.
Источники освещения (lights)¶
- Древо освещения (light tree)
Использовать древо освещения для более эффективного сэмплирования источников света в сцене с учётом расстояния и предполагаемой интенсивности. Это может значительно снизить шум за счёт увеличения времени рендеринга каждого сэмпла.
Некоторые свойства освещения не учитываются в древе освещения. Сюда входят настраиваемое затухание, видимость лучей и сложные связки нод шейдера, включающие текстуры. Это может привести к увеличению шума в некоторых сценах, в которых используются эти функции.
- Порог яркости (light threshold)
Прекращает сэмплирование света вероятностно, когда вклад света ниже порогового значения. Это позволяет избежать траты времени на источники освещения, которые вносят небольшой вклад в изображение. Ноль отключает анализ.
Дополнительно (advanced)¶
- Шаблон (pattern)
Шаблон случайного сэмплирования, используемый интегратором.
- Автоматически (automatic):
Использовать „Blue-Noise“ (см. ниже), но с возможностью настроить рендеринг вьюпорта, чтобы получить лучшее качество при первом сэмпле. Это полезно для интерактивных изменений (панорамирование вида, перемещение объекта…), когда постоянно происходит перезапуск рендеринга.
- Классический (classic):
Использовать заранее рассчитанные таблицы Соболя, зашифрованные по Оуэну, для случайного сэмплирования.
- Blue-Noise:
Использовать шаблон синего шума, который оптимизирует распределение частот. Если отрендерить полное количество сэмплов, то результат обычно выглядит более гладким, чем с шаблоном „Classic“, несмотря на то, что он не уменьшает шум.
- Вариация (seed)
Вариативное значение для интегратора, чтобы получить различные шаблоны шума.
- Использовать анимированную вариацию (иконка часов)
Изменяет вариацию для каждого кадра. Рекомендуется включить эту функцию при рендеринге анимации, поскольку меняющийся рисунок шума менее заметен.
- Расстояние скремблирования (scrambling distance)
Метод, который уменьшает случайность между пикселями в попытке улучшить производительность GPU-рендеринга за счёт потенциальных артефактов. Несовместимо с шаблоном сэмплинга „Blue-Noise“.
- Автоматически (automatic)
Адаптирует расстояние скремблирования на основе количества сэмплов.
- Вьюпорт (viewport)
Использует настройку „Scrambling Distance“ для рендеринга вьюпорта. Это ускоряет рендеринг, но может вызывать мерцание.
- Множитель (multiplier)
Множитель для „расстояния скремблирования“. Значения ниже единицы уменьшат расстояние, что может повысить производительность GPU-рендеринга, но увеличит видимость артефактов.
- Минимально отскоков света (min light bounces)
Минимальное количество отскоков света для каждого пути, после чего интегратор использует русскую рулетку для завершения тех путей, которые вносят наименьший вклад в изображение. Увеличение этого значение даёт меньше шума, но при этом может значительно увеличить время рендеринга. Для небольшого значения параметра „максимума отскоков“ – настоятельно рекомендуется устанавливать и этот минимум на то же значение.
- Минимум прозрачных отскоков (min transparent bounces)
Минимальное количество прозрачных отскоков (точнее, «проходов»). Установка более высокого значения снижает шум при первых отскоках, но также может быть менее эффективным для более сложной геометрии, такой как волосы и объёмы.
- Сэмплы слоя (layer samples)
Если для каких-либо слоёв визуализации были настроены переопределения сэмплов – этот параметр будет определять их использование.
- Включить (use):
Разрешить слоям визуализации переопределять количество сэмплов на уровне сцены.
- С ограничением (bounded):
Разрешить переопределения, если они не превышают количество сэмплов на уровне сцены.
- Игнорировать (ignore):
Игнорировать переопределения.
- Подмножество сэмплов (sample subset)
Производить рендеринг только подмножества образцов. Несколько рендеров подмножества можно объединять в полный, выполнив следующее в консоли Python:
bpy.ops.cycles.merge_images(input_filepath1=r"1.exr", input_filepath2=r"2.exr", output_filepath=r"combined.exr")
Классический вариант использования – распределение рендеринга одного кадра на несколько машин. Допустим вы хотите отрендерить в общей сложности 2048 сэмплов, но разделить эту работу на две машины, поскольку на одной это займёт слишком много времени:
На обоих компьютерах установите „максимум сэмплов“ на 2048, отключите „шумоподавление“ и включите „подмножество сэмплов“.
На первом компьютере установите „смещение“ на 0 и „длину“ на 1024.
На втором компьютере установите „смещение“ на 1024 и „длину“ на 1024.
Запустите рендеринг из 1024 сэмплов на каждом компьютере, затем объедините результаты, как описано выше, чтобы получить эквивалент одного рендеринга из 2048 сэмплов.
- Смещение (offset)
Индекс первого сэмпла в подмножестве, отсчитываемый от нуля.
- Длина (length)
Количество сэмплов в подмножестве. Хотя это переопределяет „Max Samples“ в отношении сэмплов, которые будут отрендерены, всё же важно установить Max Samples на общее количество сэмплов, которые будут отрендерены во всех подмножествах – в противном случае подмножества будут иметь несовместимый шум, что при их объединении даёт неприемлемый результат.