Поделиться через


Математические узлы

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

Примечание

При работе с математическими узлами в конструкторе шейдеров, повышение типа особенно явно.Чтобы получить сведения о том, как продвижение типа затрагивает входные параметры, см. в разделе «Продвижение входных данных» в Узлы конструктора шейдеров.

Ссылка на математический узел

Узел

Подробные сведения

Свойства

Abs

Вычисляет абсолютное значение заданных входных данных для каждого компонента.

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

Вход:

X: float, float2, float3 или float4

Значения для которых определить абсолютное значение.

Output:

Output: аналогично вводу X

Абсолютное значение для каждого компонента.

Нет

Add

Вычисляет покомпонентную сумму заданных входных данных для каждого компонента.

Каждый компонент результата получается сложением соответствующих компонентов входных значений X и Y.

Вход:

X: float, float2, float3 или float4

Одно из значений для добавления.

Y: аналогично вводу X

Одно из значений для добавления.

Выходные данные:

Output: аналогично вводу X

Сумма по компонентам.

Нет

Ceil

Вычисляет наименьшее целое число заданных входных данных для каждого компонента.

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

Вход:

X: float, float2, float3 или float4

Значения, для которых вычисляется потолок.

Выходные данные:

Output: аналогично вводу X

Наименьшее целое число для каждого компонента.

Нет

Clamp

Изменяет все компоненты заданных входных данных, чтобы они попадали в заранее определенный диапазон значений.

Для каждого компонента результата значения, расположенные ниже определенного диапазона, становятся равными его минимальному значению, значения, расположенные выше диапазона, становятся равными его максимальному значению, а значения, лежащие внутри диапазона, не изменяются.

Вход:

X: float, float2, float3 или float4

Привязываемые значения.

Выходные данные:

Output: аналогично вводу X

Ужатое значение для каждого компонента.

Максимум

Максимально возможное значение в диапазоне.

Минимум

Минимально возможное значение в диапазоне.

Cos

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

Для каждого компонента результата вычисляется косинус соответствующего компонента, представленного в радианах. Результат содержит компоненты, значения которых лежат в диапазоне [-1, 1].

Вход:

X: float, float2, float3 или float4

Значения для вычисления косинуса в радианах.

Выходные данные:

Output: аналогично вводу X

Косинус для каждого компонента.

Нет

, разделяемый

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

Векторное произведение можно использовать для вычисления нормали к поверхности, определяемой двумя векторами.

Вход:

X: float3

Вектор, который находится слева от продукта пересечения.

Y: float3

Вектор, который находится справа от продукта пересечения.

Выходные данные:

Output: float3

Векторное произведение.

Нет

Расстояние

Вычисляет расстояние между указанными точками.

В результате получается положительное скалярное значение.

Вход:

X: float, float2, float3 или float4

Одна из точек, расстояние между которыми требуется определить.

Y: аналогично вводу X

Одна из точек, расстояние между которыми требуется определить.

Выходные данные:

Output: аналогично вводу X

Расстояние.

Нет

Divide

Вычисляет покомпонентное частное двух заданных входных значений.

Каждый компонент результата получается делением соответствующего компонента входного значения X на соответствующий компонент второго входного значения Y.

Вход:

X: float, float2, float3 или float4

Значения делимого.

Y: аналогично вводу X

Значения делителя.

Выходные данные:

Output: аналогично вводу X

Частное по компонентам.

Нет

Точка

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

В результате получается скалярное значение. Скалярное произведение можно использовать для определения угла между двумя векторами.

Вход:

X: float, float2, float3 или float4

Одно из условий.

Y: аналогично вводу X

Одно из условий.

Выходные данные:

Output: float

Скалярное произведение.

Нет

Floor

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

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

Вход:

X: float, float2, float3 или float4

Значения, для которых вычисляется пол.

Выходные данные:

Output: аналогично вводу X

Наибольшее меньшее целое для каждого компонента.

Нет

Fmod

Вычисляет покомпонентный модуль (остаток) заданных входных данных.

Каждый компонент результата равен остатку, получающемуся после вычитания некоторого целочисленного кратного числа (m) соответствующего компонента входного значения Y из соответствующего компонента входного значения X. Кратное число m выбирается таким образом, чтобы остаток был меньше соответствующего компонента входного значения Y и имел один знак с соответствующим компонентом входного значения X. Например, результат fmod(-3.14, 1.5) равен -0,14.

Вход:

X: float, float2, float3 или float4

Значения делимого.

Y: аналогично вводу X

Значения делителя.

Выходные данные:

Output: аналогично вводу X

Остаток деления для каждого компонента.

Нет

Frac

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

Для каждого компонента результата удаляется целочисленная часть соответствующего компонента входного значения с сохранением дробной части и знака. Это дробное значение находится в диапазоне [0, 1). Например, значение -3,14 преобразуется в значение -0,14.

Вход:

X: float, float2, float3 или float4

Значения, для которых вычисляется дробная часть.

Выходные данные:

Output: аналогично вводу X

Дробная часть для каждого компонента.

Нет

Lerp

Линейная интерполяция. Вычисляет покомпонентное взвешенное среднее заданных входных данных.

Каждый компонент результата равен средневзвешенному значению соответствующих компонентов входных значений X и Y. В качестве веса используется скалярное значение Percent, которое одинаково применяется ко всем компонентам. Эту функцию можно использовать для интерполяции точек, цветов, атрибутов и других значений.

Вход:

X: float, float2, float3 или float4

Исходное значение. Если Percent — ноль, результат равен этому входу.

Y: аналогично вводу X

Конечное значение. Если Percent — один, результат равен этому входу.

Percent: float

Скалярный вес, который выражается в процентах от расстояния от ввода X до ввода Y.

Выходные данные:

Output: аналогично вводу X

Значение, коллинеарное с указанными входными данными.

Нет

Multiply Add

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

Каждый компонент результата представляет собой сумму произведения соответствующих компонентов входных значений M и A с соответствующим компонентом входного значения B. Эта последовательность операций часто используется в общих формулах, например для определения прямой по точке и углу наклона или для масштабирования и последующего смещения входного значения.

Вход:

M: float, float2, float3 или float4

Одно из значений для умножения.

A: аналогично вводу M

Одно из значений для умножения.

B: аналогично вводу M

Значения, добавляемые к продукту других 2 входов.

Выходные данные:

Output: аналогично вводу M

Результат операции умножения-сложения по компонентам.

Нет

Максимум

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

Каждый компонент результата равен большему из двух соответствующих компонентов входных значений.

Вход:

X: float, float2, float3 или float4

Одно из значений, для которых требуется вычислить максимум.

Y: аналогично вводу X

Одно из значений, для которых требуется вычислить максимум.

Выходные данные:

Output: аналогично вводу X

Максимальное значение для каждого компонента.

Нет

Минимум

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

Каждый компонент результата равен меньшему из двух соответствующих компонентов входных значений.

Вход:

X: float, float2, float3 или float4

Одно из значений, для которых требуется вычислить минимум.

Y: аналогично вводу X

Одно из значений, для которых требуется вычислить минимум.

Выходные данные:

Output: аналогично вводу X

Минимальное значение для каждого компонента.

Нет

Multiply

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

Каждый компонент результата получается умножением соответствующих компонентов входных значений X и Y.

Вход:

X: float, float2, float3 или float4

Одно из значений для умножения.

Y: аналогично вводу X

Одно из значений для умножения.

Выходные данные:

Output: аналогично вводу X

Произведение для каждого компонента.

Нет

Normalize

Нормализует заданный вектор.

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

Вход:

X: float2, float3 или float4

Вектор для нормализации.

Выходные данные:

Output: аналогично вводу X

Нормализованный вектор.

Нет

Минус единица

Вычисляет разность между 1 и указанным входным значением для каждого компонента.

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

Вход:

X: float, float2, float3 или float4

Значения, которые следует вычесть из 1.

Выходные данные:

Output: аналогично вводу X

Разность между 1 и указанным входным значением для каждого компонента.

Нет

Степень

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

Для каждого компонента результата соответствующий компонент входного значения X возводится в степень соответствующего компонента входного значения Y.

Вход:

X: float, float2, float3 или float4

Значения основания

Y: аналогично вводу X

Значения экспоненты.

Выходные данные:

Output: аналогично вводу X

Возведение в степень для каждого компонента.

Нет

Saturate

Изменяет все компоненты заданных входных данных, чтобы они попадали в диапазон значений [0, 1].

Этот диапазон можно использовать для представления процентов и других относительных измерений в вычислениях. Для каждого компонента результата значения соответствующего компонента входного значения, меньшие 0, становятся равными 0, значения, которые больше 1, становятся равными 1, а значения, лежащие в этом диапазоне, не изменяются.

Вход:

X: float, float2, float3 или float4

Насыщаемые значения.

Выходные данные:

Output: аналогично вводу X

Насыщенное значение по компонентам.

Нет

Sin

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

Для каждого компонента результата вычисляется синус соответствующего компонента, представленного в радианах. Результат содержит компоненты, значения которых лежат в диапазоне [-1, 1].

Вход:

X: float, float2, float3 или float4

Значения для вычисления синуса в радианах.

Выходные данные:

Output: аналогично вводу X

Синус по компонентам.

Нет

Sqrt

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

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

Вход:

X: float, float2, float3 или float4

Значения, для которых вычисляется квадратный корень.

Выходные данные:

Output: аналогично вводу X

Квадратный корень по компонентам.

Нет

Subtract

Вычисляет покомпонентную разность заданных входных данных.

Каждый компонент результата получается вычитанием соответствующего компонента входного значения Y из соответствующего компонента входного значения X. Эту функцию можно использовать для построения вектора из первого входного значения до второго входного значения.

Вход:

X: float, float2, float3 или float4

Значения, которые следует вычесть.

Y: аналогично вводу X

Значения для вычитания из вводного X.

Выходные данные:

Output: аналогично вводу X

Разность для каждого компонента.

Нет

3D-вектор преобразования

Преобразует указанный трехмерный вектор в другое пространство.

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

Вход:

Vector: float3

Преобразуемый вектор.

Выходные данные:

Output: float3

Преобразованный вектор.

From System

Собственное пространство вектора.

To System

Пространство, в которое преобразуется вектор.