Ноды композиции/Фильтрующие ноды композиции

Материал из Blender3D.

Перейти к: навигация, поиск

Перевод: Striver

Оригинал здесь

Содержание

Фильтры обрабатывают пиксели изображения, чтобы выделить дополнительные детали или выполнить какой-нибудь эффект постобработки на изображении.

От переводчика: Несколько раз в тексте встречается слово Bokeh, которое было оставлено без перевода. Словари не дают перевод этого слова. Тем не менее, поиск в Яндексе помогает. Этим словом называется описание части изображения, не попадающей в фокус. Подробно это явление описано, например, тут.

Нод Filter (Фильтр)

Панель: Node EditorNode Composition

Меню: Shift A → Filters → Filter

Нод Filter
Нод Filter

Нод Filter осуществляет различные общие фильтры улучшения изображения. Поддерживаемые фильтры, если их названия не очевидны, названы в честь математического гения, который нашел их:

  • Soften (Мягче) - Немного смазывает изображение.
  • Sharpen (Острее) - Увеличивает контраст, особенно на краях
  • Laplace - Смягчает области вокруг краев
  • Sobel - Создает негативное изображение, на котором выделены края
  • Prewitt - Пытается делать Sobel чуть лучше.
  • Kirsch - Улучшает работу, сделанную посредством тех двух других лакеев, давая лучшее смешивание на краях.
  • Shadow (Тень) - Выполняет рельефную гравировку/bumpmap, с затемнением на внешних краях.
Нод Filter имеет семь режимов, показанных здесь.
Нод Filter имеет семь режимов, показанных здесь.


Ноды Soften, Laplace, Sobel, Prewitt и Kirsch выполняют обнаружение краёв (немного различными путями), основанное на векторном исчислении и множестве теоретических уравнений, которые запросто заполнят шесть школьных досок с gobbledy gook (Яндекс-словарь переводит это словосочетание как "белиберда с кучей непонятных терминов" - прим. пер.). Рекомендуется для чтения при бессоннице.

Нод Blur (Размывание)

Панель: Node EditorNode Composition

Меню: Shift A → Filters → Blur

Нод Blur
Нод Blur

Нод Blur размывает изображение, используя один из семи способов размывания (выбираемых, используя левую верхнюю выпадающую кнопку), а радиус определяется числовыми полями X и Y. По умолчанию они установлены в нуль, таким образом, чтобы задействовать нод, Вы должны установить одну или обе величины на значение больше, чем 0. Вы можете дополнительно подключить карту величин к нодовому входу Size (размер), чтобы управлять радиусом размывания с помощью маски. Величины должны быть отображены на диапазон между 0 и 1 для наилучшего эффекта, так как они будут умножаться на величины числовых полей X и Y.

Опции

Величины X и Y являются количеством пикселей, над которыми распространяется размывающий эффект.

Кнопка Bokeh (видимая только как Bok или Bo при некоторых настройках экрана), заставит нод размывать, используя круговой размывающий фильтр. Это дает более высокие результаты качества, но медленнее, чем использование нормального фильтра. Кнопка Gam (для "гаммы"), делает в ноде Blur гамма-коррекцию изображения перед его размытием.

Способы размывания нода Blur, используется 15% размера изображения как XY, Bokeh/Gamma не включены. Щелчок расширит, чтобы видеть детали.
Увеличить
Способы размывания нода Blur, используется 15% размера изображения как XY, Bokeh/Gamma не включены. Щелчок расширит, чтобы видеть детали.


Различие между ними - то, как они оперируют острыми краями, разглаживают градиенты, и сохраняют высокие и низкие уровни. В частности (и Вы можете внимательно изучить изображение в полном разрешении, чтобы увидеть это):

  • Flat (плоский) просто размывает всё единообразно
  • Tent (Палатка) сохраняет высокие и низкие уровни, лучше делая линейный спад
  • Quadratic (Квадратичный) и CatRom сохраняет остро-контрастные края жесткими
  • Cubic (Кубический) и Mitch сохраняет уровни, но дает out-of-focus размытие (??) при сглаживании острых краёв

Пример

Пример blend-файла, фактически использованного, чтобы создать вышеприведенное изображение, доступен здесь. .blend файл берет одно изображение из RenderLayer "Blurs" и размывает его со сдвигами (Translate), и затем объединяя их (AlphaOver), чтобы строить прогрессивную последовательность размытий. Поиграйте с Value и Multiply нодами, чтобы изменять размер размытия, которое применяет каждый алгоритм.

Нод Bilateral Blur (Двухстороннее размытие)

Панель: Node EditorNode Composition

Меню: Shift A → Filters → Bilateral Blur

нод Bilateral Blur
нод Bilateral Blur

Нод bilateral blur выполняет высококачественное адаптивное размытие в исходном изображении. Может быть использован для различных целей, например:

  • сглаживание результатов raytraced ambient occlusion (AO трассировкой лучей) Блендера
  • сглаживание результатов от различных объективных рендереров,
  • чтобы подделывать некоторые тяжелые-для-исполнения процессы, например размытые преломления/отражения, мягкие тени,
  • чтобы делать не-фотореалистичные эффекты композиции.



Входы

Bilateral blur имеет 2 входа:

  • Image, для изображения, которое нужно размыть.
  • Determinator (определитель), который не является обязательным, и используется только, если подключен.

Если подключен только 1-й вход, нод размывает изображение в зависимости от присутствующих краев в исходном изображении. Если Determinator подключен, он служит в качестве источника для определения краёв/границ для размывания в изображении. Это имеет большое преимущество в случае, если исходное изображение слишком зашумлено, но нормали в комбинации с z-буфером могут все же определить точные границы/края объектов.

Опции

Iterations (итерации)
определяет, сколько раз следует выполнить действие фильтра на изображении. Это практически определяет радиус размытия.
Color Sigma
определяет порог, для которого различия цвета в изображении должно быть принято за края.
Space sigma
тонкая настройка переменной для радиуса размытия.

Примеры

Bilateral сглаживание буферных теней
Bilateral сглаживание буферных теней


Bilateral сглаживание AO
Bilateral сглаживание AO


Bilateral фальшивое размытие результатов преломления и смягчённых теней от трассировки лучей
Bilateral фальшивое размытие результатов преломления и смягчённых теней от трассировки лучей


Нод Vector (Motion) Blur (Векторное размытие, смазывание при движении)

Панель: Node EditorNode Composition

Меню: Shift A → Filters → Vector Blur

нод Vector Blur
нод Vector Blur

Motion blur (размытое движение) - эффект, когда очень быстро перемещающиеся объекты размываются. Поскольку анимация в CG работает через визуализацию отдельных кадров, у них нет реального знания о том, где что было в последнем кадре, и где теперь.

В Блендере, есть два пути произвести motion blur. Первый метод (который производит наиболее правильные результаты), работает через рендеринг единичного кадра вплоть до 16 раз с небольшим смещением времени, затем собирает эти изображения вместе; это называется Motion Blur и активизируется на панели Render. Второй метод (и значительно более быстрый) является нодом композиции Vector Blur.

Для использования нода, соедините соответствующие проходы из нода Render Result.

Примечание: Убедитесь, что включили проход Скорости (называемый Vec) на панели Render Layers для слоя рендера, на котором Вы хотите выполнить motion blur.

Maximum Speed (Максимальная Скорость): Поскольку vector blur работает, он может произвести полоски, линии и другие артефакты. Это по большей части происходит от пикселей, перемещающихся слишком быстро; для того, чтобы бороться с этой проблемой, фильтр имеет настройки минимальной и максимальной скорости, которые могут быть использованы для ограничения того, какие пиксели надо размыть (напр. если пиксель перемещается действительно, действительно быстро, но была установлена максимальная скорость на умеренное значение, он не размоется).

Minimum Speed (Минимальная Скорость): Особенно когда камера сама перемещается, маска, создаваемая нодом vectorblur может стать целым изображением. Очень простое решение - это ввести небольшой порог для движущихся пикселей, который может эффективно выделить едва- движущиеся пиксели от действительно движущихся объектов, и таким образом, создать мило выглядящие маски. Вы можете найти эту новую опцию как 'min speed'. Эта минимальная скорость в количестве пикселей. Величина 3 уже ясно отделит фон от переднего плана.

Подсказка: Вы можете сделать результаты vector blur немного мягче, передавая проход Скорости через нод blur (но заметьте, что это может привести к странным результатам, так что это действительно подходит только для неподвижных изображений с кучей motion blur).

Примеры

Глубокий обзор того, как использовать нод Vector Blur, можно найти здесь.

Насколько нам известно, этот нод представляет новый метод для расчета motion blur. С уверенностью используйте vector blur в нодах композиции вместо motion blur. На лице (??), при композиции изображений, необходимо использовать vector blur, поскольку там нет "реального" движения. В этом blend файле примера, Вы найдёте rigged руку, двигающуюся вниз для поднятия шара. Основываясь на том, как рука перемещается (на этих векторах), картинка смазывается в этом направлении. Пальцы, ближайшие к камере (наименьшая величина Z), размываются больше, а те, которые дальше (предплечье), размываются слабее.

Известные баги

V.: 2.44

Не работает при чтении из последовательности многослойных OpenEXR

Нод Dilate/Erode (расширять/разрушать)

Панель: Node EditorNode Composition

Меню: Shift A → Filters → Dilate/Erode

Нод Dilate/Erode
Нод Dilate/Erode

Этот нод размывает индивидуальные цветовые каналы. Цветовой канал (или черно-белое изображение), подключается к входному сокету Mask, и вручную устанавливается Distance (Расстояние) (щелкая на стрелках или на величине) или автоматически из нода величины или time-and-map-value (время-и-отображение-величины) макарон. Положительная величина Distance расширяет влияние пикселя на окружающих его пикселей, таким образом, размывая цвет наружу. Отрицательная величина разрушает свое влияние, таким образом, увеличивается контраст этого пикселя относительно окружающих его пикселей, и увеличивается его резкость относительно окружающих пикселей того же самого цвета.

Пример

Пурпурная примесь
Пурпурная примесь


На изображении примера выше, мы взяли довольно скучный массив шариков от подшипников и захотели принарядить их; сделай это горячим, детка (??). Так, мы расширили (dilated) красный и разрушили (eroded) зеленый, оставляя синий в одиночестве. А если бы мы расширили как красный так и зеленый...(намек: красный и зеленый делают желтый). Количество влияния повышено увеличением Distance. Blend файл доступен здесь.

Нод Defocus (Расфокусировка)

Панель: Node EditorNode Composition

Меню: Shift A → Filters → Defocus

Этот единственный нод может быть использован для эмуляции эффекта depth of field (глубина резкости), используя метод постобработки. Это может также использоваться для размывания изображения другим способом, не обязательно основываясь на 'глубине', при подсоединении чего-то кроме Z-буфера. В сущности, этот нод размывает области изображения, основываясь на карте/маске, подаваемой на вход Z-буфера.

Настройки камеры

настройка камеры DofDis.
настройка камеры DofDis.

Нод Defocus использует фактические данные камеры на вашей сцене, если они поставляются нодом RenderLayer.

Для того, чтобы установить точку фокуса, камера теперь имеет параметр DoFDist - это условное обозначение для Дистанции Depth of Field. Используйте этот параметр камеры, чтобы установить фокальную плоскость камеры (объекты DoFDist дальше от камеры - в фокусе). Установите DofDist на панели редактирования основной Камеры; кнопка находится ниже кнопки величины Lens (Линзы).

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

Входы нода

Нод Defocus
Нод Defocus

Нод требует два входа, изображение и Z-буфер, последний не обязан быть на самом деле Z-буфером, но может быть также любым другим (полутоновым) изображением, используемым как маска, или единственной входной величиной, например от нода time (времени), чтобы менять эффект со временем.

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

Настройки для этого нода:

Меню Bokeh Type (тип Bokeh)
Здесь Вы устанавливаете количество лопастей виртуальной диафрагмы камеры. Можно настроить в эмуляцию отличного круга (Disk), или может быть установлено, чтобы иметь 3 (Triangle, Треугольник), 4 (Square, Квадрат), 5 (Pentagon, Пятиугольник), 6 (Hexagon, Шестиугольник), 7 (Heptagon, Семиугольник) или 8 лопастей (Octagon, Восьмиугольник). Причина того, что нет большего количества углов, чем 8 - в том, что при этом результат становится практически неотличимым от круговой формы.
Rotate (поворот)
Эта кнопка не отображается, если Bokeh Type установлен на Disk. Можно использовать, чтобы добавлять дополнительное смещение вращения к форме Bokeh. Величина является углом в градусах.
Gamma Correct (Гамма-коррекция)
Точно такая же опция Гаммы, как ноде Blur Блендера (смотри #нод Blur). Это может быть полезным, чтобы в дальнейшем полировать части изображения, не попадающие в фокус, подчеркиваемые эффектом Bokeh.
fStop
Это - наиболее важный параметр, чтобы управлять количеством фокусного размытия: он имитирует апертуру f реальной линзы (диафрагма), тем не менее, не модифицируя освещенность изображения! Давайте напомним, что чем более открытое f, тем более закрыта диафрагма и шире область фокуса (область, в которой считается, что резкость изображения будет достаточно хорошей). Значение по умолчанию принято 128, обозначающее бесконечность, все в отличном фокусе. Половина величины удвоит количество размывания. Эта кнопка не доступна, если включено No zbuffer.
Maxblur (Максимум размытия)
Используйте это, чтобы ограничить количество размытия наиболее выходящих за пределы фокуса частей изображения. Величина является максимальным допускаемым радиусом размытия. Это может быть полезным, поскольку фактический процесс размытия может быть иногда очень медленным, чем больше размытие, тем медленнее он становится. Так установка этой величины может помочь снизить время обработки, например, когда видно мировой фон, который в общих чертах стремится быть точкой максимума размытия (это не всегда так, очень близкие к линзе объекты могут быть размыты ещё больше). Значение по умолчанию 0 означает, что нет предела на максимум количества размытия.
BThreshold (Порог размытия)
Нод defocus не идеален, и могут проявиться некоторые артефакты. Один из таких примеров - это объекты в-фокусе на смазанном фоне, который имеет тенденцию просачиваться на краях острого объекта. Неблагоприятным сценарием является объект в фокусе против самого отдаленного мирового фона, различия в расстояниях очень большие и результат может выглядеть совсем плохо. Нод пытается предотвращать это появление с помощью тестирования, при котором различия размытия между пикселями не слишком большие, эта величина регулирует, как много различия в размытии может рассматриваться как 'безопасное'. Это все вероятно совсем запутано, и к счастью, обычно, нет необходимости изменять настройку по умолчанию 1. Попробуйте изменить это, только если у Вас появились проблемы вокруг какого-нибудь объекта в-фокусе.
Нод Defocus, использующий Z-буфер
Нод Defocus, использующий Z-буфер
Preview (Предпросмотр)
Как уже упомянуто, обработка может занимать много времени. Так, чтобы помочь сделать редактирование параметров частично 'интерактивным', есть режим предварительного просмотра, который Вы можете включить этой кнопкой. Режим предварительного просмотра даст результат, используя ограниченное количество (квази)случайных образцов, что значительно быстрее, чем при использовании 'отличного' режима в противном случае. Дискретный режим также имеет тенденцию выглядеть, как что-то похожее на производимое типичным raytracer'ом (трассировщиком лучей) подобно yafray - зернистые, шумные изображения (все же, чем больше образцов Вы используете, тем менее зашумлённый результат). Эта опция включена по умолчанию, играйте с другими параметрами пока Вы не будете довольны результатами, только затем выключайте режим предварительного просмотра для финального рендера.
Samples (Образцы)
Отображается только тогда, когда нажат Preview. Устанавливает количество образцов для использования в выборке изображения. Более высокое значение разглаживает изображение, но также удлиняет время обработки. Для предварительного просмотра, 16 образцов по умолчанию должно быть достаточным и, это также самое быстрое.
No zbuffer (Без Z-буфера)
Иногда Вы можете захотеть иметь больше управления, размывая изображение, например, размазывать только один объект, оставляя всё остальное, или наоборот, Вы хотите размыть целое изображение равномерно все сразу.

Следовательно, нод позволяет Вам использовать что-то кроме фактического Z-буфера на входе Z. Например, Вы могли бы подсоединить нод изображения и использовать изображение в градациях серого, чтобы цвет определял, как сильно размывать изображение в этой точке, при этом белый - максимум размытия, а черный - без размытия. Или Вы могли бы использовать нод time (времени), чтобы равномерно размывать изображение, а величина времени будет регулировать максимум размытия для текущего кадра. Это можно также использовать для возможно немного лучшего DoF размывания, при этом используя фальшивую глубину затенённого изображения вместо Z-буфера. (Типичный метод создания фальшивой глубины затенённого изображения - используя линейную смесь текстуры для всех объектов на сцене или используя затеняющий метод 'fog/mist' ('туман') фальшивой глубины ??). Это также имеет то преимущество, что фальшивая глубина изображения может иметь антиалиасинг, который не возможен с реальным Z-буфером.
No zbuffer включится автоматически всякий раз, когда Вы соединяете нод, который - не основан на изображении (напр. нод time/нод величин и т.п.)

Zscale
Отображается только тогда, когда включен No zbuffer. Когда No zbuffer нажато, вход используется непосредственно, чтобы управлять радиусом размытия. И поскольку обычно текстура находится в дипазоне только от 0 до 1, этот дипазон слишком узкий, чтобы управлять размытием правильно. Этот параметр можно использовать для расширения входного дипазона, или, если уж на то пошло, сужать его также, устанавливая эту величину меньше единицы. Так что для No zbuffer, этот параметр, следовательно, становится основным для управления размытием, подобно fStop при использовании Z-буфера.

Примеры

В этом blend файле примера, изображение массива шариков размыто так, как будто оно было снято камерой с f-stop 2.8, что приводит к достаточно узкой области глубины резкости, отцентрированной на 7.5 единицах Блендера от камеры. Когда шары удаляются на расстояние, они получают размытие.

Подсказки

Preview (предварительный просмотр)
Обычно стоит использовать режим предварительного просмотра, изменяя параметры как Вам нравится, и только потом отключить режим preview для окончательного рендера. Этот нод применяет интенсивные вычисления, так что следите за вашим консольным окном, и будете видеть статус вычислений, какая линия в данный момент сканируется и рендерится.
Edge Artifacts (Краевые Артефакты)
Для минимизации артефактов, пытайтесь настраивать вашу сцену так, чтобы различия в расстояниях между двумя объектами, которые могут перекрывать друг друга в некоторых точках, были не слишком большие. Имейте в виду, что этот нод - не 'реальный' DoF, а только симуляция во время постобработки. Некоторые вещи невозможно сделать, при этом они бы совсем не были проблемой для реального DoF. Типичным примером является изображение с некоторым объектом, очень близким к камере, и камерой, сфокусированной в некоторую точку дальше за ним. В реальном мире, используя небольшую глубину резкости (плоскую), есть возможность для близлежащих объектов стать полностью невидимыми, по сути, это позволяет камере видеть 'за' ними. Это просто невозможно сделать в текущем методе постобработки в один проход. Если Вы действительно хотите, или Вам нужно эмулировать такой эффект, единственный путь сделать это - разбить вашу сцену на близкие и дальние объекты, рендерить в два прохода, затем провести постобработку каждого в отдельности и объединить результаты.
Aliasing (эффект наложения) при низких значениях f-Stop: При очень низких величинах, менее чем 5, нод начинает удалять любую передискретизацию (oversampling, OSA) и приводить объекты в DoFDist очень резко в фокус. Если объект напротив контрастного фона, это может провести к видимой ступенчатости (эффекту наложения), для избегания которой предназначена OSA. Если Вы встретили эту проблему:
  • Сделайте ваше собственное OSA, отрендерив в удвоенном размере и, затем, пропорционально уменьшив, чтобы смежные пиксели были размыты вместе
  • Используйте нод blur с настройками 2 для x и y
  • Установите DoFDist меньше, чтобы объект в фокусе был размыт в мельчайшем количестве.
  • Используйте более высокий f-Stop, который запустит размытие, затем используйте сокет Z с нодами *Map Value и Blur, чтобы повысить размывающий эффект.
  • Перестройте объекты на вашей сцене, чтобы использовать более низкоконтрастный фон
No ZBuffer
Последнее слово предупреждения: поскольку нет способа обнаружить, подключен ли настоящий Z-буфер к ноду, будьте ОЧЕНЬ осторожными с переключателем No zbuffer. Если величина Zscale окажется большой, и Вы забудете перевести её в некоторую низкую величину, величины могут вдруг оказаться интерпретированными как огромный радиус размытия, это заставит взрывообразно увеличить время расчёта.
Личные инструменты