Blender
August 5, 2021

CyclesX. Blender. Вводная.

Splash Screen of Blender 2.93 LTS | CC-BY Erindale Woodford

Cycles. Родной рендер-движок Blender. С течением времени он становится только краше и в грядущей (на момент написания этой статьи) версии Blender будет интегрирована новая версия с названием CyclesX, которая сможет похвастаться фантастической скоростью. (а уж после RenderMan она кажется просто невероятной!)

В разбор попадёт альфа-версия CyclesX в одной из ранних версий Blender 3.0.

Настройки рендера

С самого начала разберёмся с ключевыми настройками. После - вторичные.
Пункт с выбором Device я пропущу, тут итак всё очевидно.

• Секция Viewport в ответе за то, сколько семплов будет отрендерено во вьюпорте, есть ли фильтрация шумов (о них после еще отдельно покажу интересный ход конём);
Секция Render в ответе за то, что происходит по нажатию на меню Render > Render Image или же Render Animation.

01:07.56 | Фильтрация шума алгоритмом OpenImageDenoise, 1024 samples; Adaptive Sampling 0.0020

По поводу Denoise.

Мной давно замечено и не раз подмечено на форумах, что тот Denoise алгоритм, что включается галочкой перед рендером, отличается от того, который используется в Compositing. И, что очень странно, вторая опция работает чище и детальней. Объясню как подключить и дальнейшие демо-кадры будут именно с ним идти. Для затравки вот такое сравнение - сверху тот, что включается в настройках рендера, снизу - через Compositing.

Сравнение денойза через галочку в настройках рендера и через composite

Во всех деталях заметно улучшение по детальности картинки, при том, что настройки рендера не менялись (кроме отключения Denoising )
Как настроить:
• Отключить Denoising в свитке Samples рендера

• Зайти во View Layer Properties, включить Denoising Data в свитке Passes > Data

• В окне Compositing добавить ноду Denoise и подключить в цепочку вот так:

Поздравляю, Вы великолепны! Теперь устранение шума будет идти через композит и выводиться отфильтрованная от шума картинка будет в слой Composite внутри окна рендера:

Вернёмся к настройкам.

• Adaptive Sampling включает схожий с разобранным раньше RenderMan'ом принцип адаптивного семлирования пикселей. Определяется пороговое значение параметром Noise Threshold, до которого на каждый пиксель рендерится, либо MinSamples, указывающий прямо - сколько нужно потратить семплов на пиксель.
Эти два параметра могут комбинироваться при желании, но как по мне пороговое значение шума - очень надёжная крутилка, определяющая качество финальной картинки.
Выше значение = быстрее, хуже качество, и наоборот - ниже значение = плотней семплы, резче и детальней картинка, времени дольше нужно.
0 - без фильтрации, ровным слоем везде будет столько, сколько указали параметром Samples (выше).

01:06.22 | 1024 samples; Adaptive Sampling 0.0020 - VS - 00:04.71 | 1024 samples; Adaptive Sampling 0.2

Прекрасный инструмент для предварительного рендера или сокращения времени на кадр.

Light Paths.

Начнём с интересного: Max Bounces. Раздел посвящён опредению глубины отражений, прохождению лучей сквозь поверхности и в глубь поверхностей.

Max Bounces, стандартные настройки.

Первая настройка - Total - отвечает за общее допустимое количество отскоков лучей. Все последующие идут именно в том порядке, что указаны в списке - сперва будут все "цвета" - матовые значения поверхностей. После по приоритету - поверхности, отражающие хотя бы что-нибудь помимо отображения цвета. За ними - прозрачные объекты, за ними - объемы вроде тумана. Последний пункт для меня остаётся загадкой, поскольку сколько я его не крутил, эффекта не проявляется. Допускаю, что это на альфа-версии CyclesX такое поведение.

00:38.65 | Total: 12; Diffuse: 4; Glossy: 4; Transmission: 12; Volume: 0; Transparent: 8
00:19.25 | Total: 12; Diffuse: 2; Glossy: 2; Transmission: 12; Volume: 0; Transparent: 8
00:29.32 | Total: 8; Diffuse: 1; Glossy: 1; Transmission: 6; Volume: 0; Transparent: 8

Во время этих тестов выяснил интересную особенность: Transmision считается парами, в случае, если прозрачная поверхность задаётся объемной поверхностью, как у меня - тонким листом стекла. То есть - имеем две стороны стекла, через которые луч должен пройти - добавляем +2 в Transmission.
Для дальнейшего теста я чутка изменил материал стекла, сделав его менее плотным и насыщенным, чтобы на просвет было видно все светящиеся сферы позади.

01:17.33 | Total: 128; Diffuse: 32; Glossy: 32; Transmission: 64; Volume: 0; Transparent: 1

Clamping.

Два параметра, определяющие предельные значения интенсивности для света - прямого и отражённого.
Срезав значения от стандартных Direct Light: 0, Indirect Light: 10 до 2/2, получим такую картинку:

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

Caustics

В этой секции назначаются настройки каустики всех типов. На счёт достоверной каустики для стекла можно не переживать - её не будет. CyclesX - движок не Bidirectional модели - он не просчитывает достоверное прохождение фотонов через поверхности. Но, приблизительную картинку или прозначные стаканы и жидкости сделать сможет.

Стандартные настройки каустики. Filter Glossy: 1; Reflective: ON; Refractive: ON
Filter Glossy: 0; Reflective: ON; Refractive: ON
Filter Glossy: 0; Reflective: OFF; Refractive: ON
Filter Glossy: 0; Reflective: OFF; Refractive: OFF

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

Секция Simplify так же отвечает за упрощение и ограничение разных аспектов с целью сокращения времени на кадр.

Performance

В этой секции находятся настройки быстродействия - ограничение по количеству потоков, структура акселерации, сохранение буфера.

Потоки.
Используя GPU для рендера, мощности процессора так же задействуются. И большее количество потоков позволяет получить результат быстрей.
Время на кадр:
• Стандартныe настройки - 00:18.47 (используются все потоки + GPU)
• Fixed, 1 поток (+GPU) - 00:23.40

Структура ускорения. Эта секция отвечает за баланс между подготовительным этапом к рендеру и самим временем рендера. Вполне возможно, что изменения заметны при рендере анимации, но на статичном кадре с целой кучей продублированной геометрии никакой заметной разницы не было в любой комбинации параметров.

Время на кадр:
• [o] Use Spatial Splits; [v] Use Hair BVH; BVH Time Steps: 0 - 00:45.26
• [o] Use Spatial Splits; [v] Use Hair BVH; BVH Time Steps: 16 - 00:45.14
• [v] Use Spatial Splits; [v] Use Hair BVH; BVH Time Steps: 0 - 00:45.33
(разница в миллисекундах)

Final Render
Оба параметра - Save Buffers, Persistent Data - призваны ускорять рендер, как и предыдущая секция, но изменений так же не дали.
Это запросто может быть из-за ранней версии CyclesX, которую я тестирую.

Color Management

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

Color Management: Filmic, Look: None, Exposure: 0; Gamma: 1
Color Management: Filmic, Look: Very High Contrast, Exposure: -1.95; Gamma: 1.38

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