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


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

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

ПримечаниеПримечание

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

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

Узел

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

Свойства

Abs

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

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

Вход:

X: float, float2, float3 или float4

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

Output:

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

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

None

Add

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

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

Вход:

X: float, float2, float3 или float4

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

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

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

Результат

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

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

None

Ceil

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

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

Вход:

X: float, float2, float3 или float4

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

Результат

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

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

None

Clamp

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

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

Вход:

X: float, float2, float3 или float4

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

Результат

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

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

Max

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

Минимум

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

Cos

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

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

Вход:

X: float, float2, float3 или float4

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

Результат

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

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

None

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

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

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

Вход:

X: float3

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

Y: float3

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

Результат

Output: float3

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

None

Расстояние

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

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

Вход:

X: float, float2, float3 или float4

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

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

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

Результат

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

Расстояние.

None

Divide

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

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

Вход:

X: float, float2, float3 или float4

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

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

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

Результат

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

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

None

Точка

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

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

Вход:

X: float, float2, float3 или float4

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

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

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

Результат

Output: float

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

None

Floor

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

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

Вход:

X: float, float2, float3 или float4

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

Результат

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

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

None

Fmod

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

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

Вход:

X: float, float2, float3 или float4

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

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

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

Результат

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

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

None

Frac

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

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

Вход:

X: float, float2, float3 или float4

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

Результат

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

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

None

Lerp

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

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

Вход:

X: float, float2, float3 или float4

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

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

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

Percent: float

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

Результат

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

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

None

Multiply Add

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

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

Вход:

M: float, float2, float3 или float4

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

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

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

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

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

Результат

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

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

None

Максимум

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

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

Вход:

X: float, float2, float3 или float4

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

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

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

Результат

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

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

None

Минимум

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

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

Вход:

X: float, float2, float3 или float4

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

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

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

Результат

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

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

None

Multiply

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

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

Вход:

X: float, float2, float3 или float4

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

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

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

Результат

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

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

None

Normalize

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

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

Вход:

X: float2, float3 или float4

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

Результат

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

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

None

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

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

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

Вход:

X: float, float2, float3 или float4

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

Результат

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

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

None

Степень

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

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

Вход:

X: float, float2, float3 или float4

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

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

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

Результат

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

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

None

Saturate

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

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

Вход:

X: float, float2, float3 или float4

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

Результат

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

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

None

Sin

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

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

Вход:

X: float, float2, float3 или float4

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

Результат

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

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

None

Sqrt

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

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

Вход:

X: float, float2, float3 или float4

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

Результат

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

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

None

Subtract

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

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

Вход:

X: float, float2, float3 или float4

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

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

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

Результат

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

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

None

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

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

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

Вход:

Vector: float3

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

Результат

Output: float3

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

Из system

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

В системе

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