Улучшение работы деноизера в Blender

Улучшение работы деноизера в Blender

«TreeZod» - продвинутый метод шумоподавления в Blender. Авторская разработка нашего студента Андрея Климантовича, позволяющая лучшим образом сократить количество шума при рендере на движке Cycles.

Улучшение работы деноизера в Blender

Как появился этот метод:

Пока я работал над своим проектом кресла «Ангела - Mercy» для челленджа «Эталон сидения», столкнулся с проблемой размытия текстур в некоторых местах. Естественно, первым делом я обратился к преподавателю с этим вопросом и был послан смотреть запись стрима по этой теме. Информация из стрима мне действительно помогла – я освежил ее в памяти и пришел к выводу, что нодовый деноизер лучше всего справляется с задачей. Но, все же, я получал не тот результат, который хотел. Тогда я начал экспериментировать с деноизером. Так совпало, что совсем недавно я изучил дополнительный курс по работе с Photoshop-ом, где мне приходилось долго и нудно работать с различными масками, отделяя нужные мне объекты от фона. Я начал вспоминать, как решал эту задачку и тут меня осенило: одним из способов отделения было создание маски, используя разные каналы RGB! Если стандартный нодовый деноизер убирает шум, используя цветное изображение, то почему бы не попробовать обработать в монохроме? В итоге, я разделил картинку с помощью нод на отдельные каналы, пропустил каждый канал через «Denoise», а затем собрал обратно в цветное изображение. И первый же тест на моём проекте с креслом показал отличный результат.

Настройка деноизера «TreeZod»: (Blender 3.0.1)

Связка стандартного нодового динойзера (Blender 3.0.1):

Улучшение работы деноизера в Blender

Шаг 1: Подготовка к работе

— Подключаем Denoising Data;

— Проверяем, что все остальные деноизеры отключены (на вкладке «Рендер»);

— Открываем редактор Compositor и ставим галочку «Use Nodes».

Улучшение работы деноизера в Blender

Шаг 2: Разделение на монохром

— Разделяем изображение по RGB-каналам с помощью ноды Separate RGBA (находится в разделе Converter). Таких нод нам понадобится 3 шт;

— Подключаем соответствующие выходы из ноды Render Layers в Separate RGBA, как показано на схеме.

Улучшение работы деноизера в Blender

Шаг 3: Прогонка через «Шумодав»

— В разделе «Filter»: добавляем ноду Denoise для каждого RGB-канала;

— Подключаем каждый канал отдельно в свой Denoise, как показано на схеме ниже.

Улучшение работы деноизера в Blender

P.S. Альфа канал можно не подключать, т.к. нет смысла раскладывать его по каналам RGB — он монохромный. Хотя, я лично проводил тесты с подключённой альфой, но на результат это никак не повлияло.

Шаг 4: Финальная сборка

— Собираем все каналы обратно через ноду Combine RGBA.

Улучшение работы деноизера в Blender

Результаты моих тестов:

В тестах участвовали все известые мне методы шумоподавления, встроенные в сам Blender:

— “Default” – стандартная нодовая связка;

— “OptiX” – автоматический встроенный деноизер (albedo + normal);

— “OpenImageDenoise” - автоматический встроенный деноизер (тестировался в режиме accurate – albedo + normal);

— “TreeZod” – стандартная нодовая связка + моя доработка.

Сразу хочу отметить, что «TreeZod» улучшает работу существующего деноизера в местах, где не справляется стандартная нодовая связка, а не создает новый.

Лучше всего работа этого метода видна на рендерах большого разрешения, например 3840 x 2160.

Для удобства я оценил результативность всех деноизеров количеством звёзд.

Пример 1.

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

Улучшение работы деноизера в Blender

Для того, чтобы лучше увидеть фактуру белого материала (зернистость по высоте), я отключил глубину резкости, приблизил камеру и понизил количество семплов до 64.

Улучшение работы деноизера в Blender

Следующие примеры из других проектов, которые изначально были заточены под движок Eevee.

Пример 2.

Здесь можно оценить качество картинки целиком.

Улучшение работы деноизера в Blender

Пример 3.

Рендер 64 семпла, без глубины резкости.

Улучшение работы деноизера в Blender

Пример 4.

Здесь работа деноизера лучше всего прослеживается на тыкве.

Улучшение работы деноизера в Blender

Другие примеры.

Еще примеры в полном разрешении можно скачать по ссылке: https://disk.yandex.ru/d/VzImnaCMkXufGg . В именах файлов указаны настройки и zoom.

Заключение.

Теперь я пользуюсь только этим методом, так как работает он лучше, чем уже имеющиеся деноизеры. И рад поделиться им с вами – тестируйте, пользуйтесь и творите.

Мне бы очень хотелось, чтобы разработчики Blender обратили внимание на данный метод и на его основе изобрели еще более качественный денойз-инструмент, поэтому не жалеем сил в распространении этой статьи. Спасибо!)

2222
3 комментария

У меня старый пк и не работает Open image denoise.
Твоя связка помогла мне собрать свой простенький денойз для моего динозавра .
Спасибо.

3

Это домашнее кресло Мерси из ОВ на превьюхе? :)

1