Нода «Математика» (math node)

Нода ":abbr:`Математика (Math)`".

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

Входы (inputs)

The inputs of the node are dynamic. Some inputs are only available in certain operations. For instance, the Addend input is only available in the Multiply Add operator.

Значение (value)

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

Слагаемое (addend)

Ввод слагаемого.

Основа (base)

Ввод базы.

Экспонента (exponent)

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

Эпсилон (epsilon)

Ввод эпсилона.

Расстояние (distance)

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

Минимум (min)

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

Максимум (max)

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

Инкремент (increment)

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

Масштаб (scale)

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

Градусы (degrees)

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

Радианы (radians)

Ввод радиан.

Свойства (properties)

Операция (operation)

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

Функции (functions)
Добавить (add):

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

Вычесть (subtract):

Разность двух значений.

Перемножить (multiply):

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

Разделить (divide):

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

Умножить и сложить (multiply add):

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

Мощность / Возвести в степень (power):

Возведение основы в степень экспоненты.

Логарифм (logarithm):

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

Квадратный корень (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 maximum):

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

Скругление (rounding)
Округлить (round):

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

Пол / Округлить вниз (floor):

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

Округлить вверх (ceil):

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

Обрезать (truncate):

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

Дробная часть (fraction):

Возвращает дробную часть значения.

Остаток деления (modulo):

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

Обернуть (wrap):

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

Привязать (snap):

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

Пинг-понг (ping-pong):

The output value is moved between 0.0 and the Scale based on the input value.

Тригонометрические (trigonometric)
Синус (sine):

Синус вводного значения.

Косинус (cosine):

Косинус вводного значения.

Тангенс (tangent):

Тангенс вводного значения.

Арксинус (arcsine):

Арксинус вводного значения.

Арккосинус (arccosine):

Арккосинус вводного значения.

Арктангенс (arctangent):

Арктангенс вводного значения.

Арктан2 (arctan2):

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

Гиперболический синус (hyperbolic sine):

Гиперболический синус вводного значения.

Гиперболический косинус (hyperbolic cosine):

Гиперболический косинус вводного значения.

Гиперболический тангенс (hyperbolic tangent):

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

Преобразование (conversion)
В радианы (to radians):

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

В градусы (to degrees):

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

Ограничение (clamp)

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

Выходы (outputs)

Значение (value)

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

Примеры

Ручная сборка Z-маски

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

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

This example has one scene input by the top Render Layers node, which has a cube that is about 10 units from the camera. The bottom Render Layers node inputs a scene with a plane that covers the left half of the view and is 7 units from the camera. Both are fed through their respective Map Value nodes to divide the Z-buffer by 20 (multiply by 0.05, as shown in the Size field) and clamped to be a min/max of 0.0/1.0 respectively.

For the minimum function, the node selects those Z values where the corresponding pixel is closer to the camera; so it chooses the Z values for the plane and part of the cube. The background has an infinite Z value, so it is clamped to 1.0 (shown as white). In the maximum example, the Z values of the cube are greater than the plane, so they are chosen for the left side, but the plane Render Layers Z are infinite (mapped to 1.0) for the right side, so they are chosen.

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

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

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

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

Since the sine function can put out values between (-1.0 to 1.0), the Map Value node scales that to 0.0 to 1.0 by taking the input (-1 to 1), adding 1 (making 0 to 2), and multiplying the result by one-half (thus scaling the output between 0 to 1). The default Color Ramp converts those values to a gray-scale. Thus, medium gray corresponds to a 0.0 output by the sine, black to -1.0, and white to 1.0. As you can see, \(sin(pi/ 2) = 1.0\). Like having your own visual color calculator! Animating this node setup provides a smooth cyclic sequence through the range of grays.

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

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

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

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

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

Ограничить выделение цвета

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

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

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

To split up a continuous range of values between 0 and 1 to certain set of values, the following function is used: \(round(x × n - 0.5) / (n - 1)\), where «n» is the number of possible output values, and «x» is the input pixel color. Read more about this function.

Чтобы реализовать эту функцию в 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).

In the case of a color image, you need to split it into separate RGB channels using Separate/Combine RGBA nodes and perform this operation on each channel independently.