Узел Math

Узел "Math".

Узел Math позволяет выполнять математические операции.

Входы

Входы узла являются динамическими. Некоторые входы доступны только в определённых операциях. Например, вход Addend доступен только в операторе Multiply Add.

Value

Входное значение. Тригонометрические функции читают это значение как радианы.

Addend

Вход Addend.

Base (основание)

Вход основания.

Exponent (экспонента)

Вход экспоненты.

Epsilon

Вход Эпсилон.

Distance (расстояние)

Вход расстояния.

Min

Вход минимума.

Max

Вход максимума.

Increment (увеличение)

Вход инкремента.

Scale (масштаб)

Вход масштаба.

Degrees (градусы)

Вход градусов.

Radians (радианы)

Вход радиан.

Свойства

Операция

Математическая операция, применяемая к входным значениям:

Functions (функции)
Add:

Сумма двух значений.

Subtract:

Разность между двумя значениями.

Multiply:

Произведение двух значений.

Divide (деление):

Деление первого значения на второе значение.

Multiply Add:

Сумма произведения двух значений со значением Addend.

Power:

Возведение базы (Base) в степень экспоненты (Exponent).

Logarithm (логарифм):

Логарифм значения с базой (Base) в качестве основания.

Square Root (квадратный корень):

Квадратный корень значения.

Inverse Square Root (обратный квадратный корень):

Единица, делённая на квадратный корень значения.

Absolute:

Входное значение читается без учёта его знака. Это превращает отрицательные значения в положительные значения.

Exponent (экспонента):

Возводит число Эйлера в степень значения.

Comparison (сравнение)
Minimum (минимум):

Выводит наименьшее из входных значений.

Maximum (максимум):

Выводит наибольшее из двух входных значений.

Less Than (меньше чем):

Выводит 1.0, если первое значение меньше второго. В противном случае вывод равен 0.0.

Greater Than (больше чем):

Выводит 1.0, если первое значение больше второго. В противном случае вывод равен 0.0.

Sign (знак числа):

Извлекает знак входного значения. Все положительные числа выведут 1.0. Все отрицательные числа выведут -1.0. И значение 0.0 выведет 0.0.

Compare (сравнение):

Выводит 1.0, если разница между двумя входными значениями меньше или равна Epsilon.

Smooth Minimum (сглаженный минимум):

Smooth Minimum.

Smooth Maximum (сглаженный максимум):

Сглаженный максимум.

Rounding (округление)
Round:

Округляет входное значение до ближайшего целого числа.

Floor:

Округляет входное значение в меньшую сторону до ближайшего целого числа.

Ceil:

Округляет входное значение в большую сторону до ближайшего целого числа.

Truncate (отсечение):

Выводит целую часть значения.

Fraction:

Returns the fractional part of the value.

Modulo:

Выводит остаток после деления первого значения на второе значение.

Wrap:

Выводит значение между Min и Max на основе абсолютной разницы между входным значением и ближайшим целым числом, кратным Max, меньшему, чем значение.

Snap:

Округляет входное значение в меньшую сторону до ближайшего целого числа, кратного Increment.

Ping-pong:

Выходное значение перемещается между 0.0 и Scale в зависимости от входного значения.

Trigonometric (тригонометрические функции)
Sine:

Синус.

Cosine:

Косинус.

Tangent:

Тангенс.

Arcsine:

Арксинус.

Arccosine:

Арккосинус.

Arctangent:

Арктангенс.

Arctan2:

Выводит арктангенс первого значения, делённого на второе значение, измеренное в радианах.

Hyperbolic Sine:

Гиперболический синус.

Hyperbolic Cosine:

Гиперболический косинус.

Hyperbolic Tangent:

Гиперболический тангенс.

Преобразование
To Radians (в радианы):

Преобразует вход из градусов в радианы.

To Degrees (в градусы):

Преобразует входные данные из радианов в градусы.

Clamp

Ограничивает вывод диапазоном от 0.0 до 1.0. См. Clamp.

Выходы

Value

Выход числового значения.

Примеры

Ручная Z-маска

../../../_images/compositing_types_converter_math_manual-z-mask.png

Пример функции минимума и максимума.

В этом примере есть одна сцена, ввёденная верхним узлом Render Layers, который имеет куб, расположенный примерно в 10 единицах от камеры. Нижний узел Render Layers вводит сцену с плоскостью, которая покрывает левую половину вида и находится в 7 единицах от камеры. Оба передаются через соответствующие узлы Map Value для деления Z-буфера на 20 (умножьте на 0.05, как показано в поле Size) и ограничиваются минимумом/максимумом 0.0/1.0 соответственно.

Для функции minimum узел выбирает те значения Z, где соответствующий пиксель находится ближе к камере; поэтому он выбирает значения Z для плоскости и части куба. Фон имеет бесконечное значение Z, поэтому оно зафиксировано на 1.0 (показано белым цветом). В максимальном примере значения Z куба больше, чем у плоскости, поэтому они выбраны для левой стороны, но слои рендеринга Z плоскости бесконечны (отображены в 1.0) для правой стороны, поэтому они выбраны.

Использование функции синуса для пульсаций

../../../_images/compositing_types_converter_math_sine.png

Пример использования функции синус.

В этом примере узел Time выводит линейную последовательность от 0 до 1 в течение 101 кадра. В кадре 25 выходное значение равно 0.25. Это значение умножается на 2 × пи (6.28) и преобразуется в 1.0 с помощью функции синуса, поскольку \(sin(2 × pi/ 4) = sin(pi/ 2) = +1.0\).

Поскольку функция синуса может выводить значения в диапазоне от (-1.0 до 1.0), узел Map Value масштабирует это значение до 0.0–1.0, беря входные данные (от -1 до 1), добавляя 1 (превращая 0 в 2) и умножая результат наполовину (таким образом масштабируя вывод от 0 до 1). Узел Color Ramp по умолчанию преобразует эти значения в оттенки серого. Таким образом, средне-серый соответствует выходному сигналу синуса 0.0, черный -1.0, а белый 1.0. Как видите, \(sin(pi/ 2) = 1.0\). Как иметь свой собственный визуальный калькулятор цвета! Анимация этой настройки узла обеспечивает плавную циклическую последовательность в диапазоне оттенков серого.

Используйте эту функцию для изменения, к примеру, альфа-канала изображения, чтобы реализовать эффект затухания/проявления. Изменяйте Z-канал, чтобы переместить сцену в фокус / из фокуса. Изменяйте значение цветового канала, чтобы заставить цвет «пульсировать».

Осветление (масштабирование) канала

../../../_images/compositing_types_converter_math_multiply.png

Пример масштабирования канала.

В этом примере узел Math (Multiply) увеличивает канал яркости (Y) изображения, чтобы сделать его светлее. Обратите внимание, что следует использовать узел Map Value с активными параметрами min() и max(), чтобы усечь выходной диапазон до допустимых значений. При таком подходе для создания изображения с высоким динамическим диапазоном можно использовать логарифмическую функцию. В этом конкретном примере также можно использовать узел Bright/Contrast, который позволяет упростить управление яркостью изображения.

Ограничение выбора цвета (постеризация)

../../../_images/compositing_types_converter_math_posterization.png

Пример постеризации.

В этом примере мы ограничиваем значения цвета одним из шести значений: 0, 0.2, 0.4, 0.6, 0.8, 1.

Чтобы разбить непрерывный диапазон значений от 0 до 1 на определённый набор значений, используется следующая функция: \(round(x × n - 0.5) / (n - 1)\), где «n» — количество возможных выходных значений, а «x»» — цвет входного пикселя. Подробнее об этой функции.

Чтобы реализовать эту функцию в Blender, рассмотрите настройку узла выше. Мы связываем математические узлы в функцию, которая принимает каждый цвет (значения от 0 до 1), умножает его на шесть, желаемое количество делений (значения становятся от 0 до 6), смещает его на 0.5 (от -0.5 до 5.5) , округляет значение до ближайшего целого числа (выдает 0, 1, 2, 3, 4, 5), а затем делит цвет пикселя изображения на пять (0.0, 0.2, 0.4, 0.6, 0.8, 1.0).

В случае с цветным изображением необходимо разбить его на отдельные каналы RGB с помощью узлов Separate/Combine RGBA и выполнить эту операцию на каждом канале независимо.