Математические выражения в Unreal Engine 4

0
75
Математические выражения в Unreal Engine 4

Abs

Abs – это аббревиатура для математического термина «абсолютное значение». Выражение Abs выводит абсолютное или неподписанное значение принимаемого им ввода. По сути, это означает, что он превращает отрицательные числа в положительные числа, отбрасывая знак минус, а положительные числа и ноль остаются неизменными.

Примеры: Abs числа -0,7 является 0,7; Abs числа -1,0 является 1,0; Abs числа 1,0 также 1,0

Пример использования: Abs обычно используется с DotProduct. DotProduct идет от -1..0..1, в то время как Abs от DotProduct будет идти от 1..0.1.

Пример Abs UE4

Add

Выражение Add принимает два входа, объединяет их и выводит результат. Эта операция добавления выполняется для каждого канала, что означает, что добавляются R-каналы, добавляются G-каналы, добавляются B-каналы и т.д. Оба входа должны иметь одинаковое количество каналов, если только один из них не является единственным значением Constant. Constants могут быть добавлены к вектору с любым количеством входов.

НазваниеОписание
Свойства
Const AПринимает значение (я), которое нужно добавить. Используется только в том случае, если вход A не используется.
Const BПринимает значение (я), которое нужно добавить. Используется только в том случае, если вход B не используется.
Входы
AПринимает значение (я), к которому нужно добавить.
BПринимает значение (я), которое нужно добавить.

Примеры: Add чисел 0,2 и 0,4 составляет 0,6; Add чисел (0,2, -0,4, 0,6) и (0,1, 0,5, 1,0) равна (0,3, 0,1, 1,6); Add чисел (0,2, -0,4, 0,6) и 1,0 равно (1,2, 0,6, 1,6)

Пример использования: Add часто используется для ярких / темных цветов или для смещения UV текстурных координат.

Добавить пример UE4

AppendVector

Выражение AppendVector позволяет объединить каналы для создания вектора с большим количеством каналов, чем имеет оригинал. Например, вы можете взять два отдельных значения Constants и добавить их для создания двухканального значения Constant2Vector. Это может быть полезно для переупорядочения каналов внутри одной текстуры или для объединения нескольких оттенков серого в одну текстуру цвета RGB.

НазваниеОписание
Входы
АПринимает значение (я), к которому нужно добавить.
ВПринимает значение (я), которое нужно добавить.

Примеры: Append чисел 0,2 и 0,4 является (0,2, 0,4); Append чисел (0,2, 0,4) и (1,0) составляет (0,2, 0,4, 1,0).

Пример Добавления Вектора UE4

ArcSine

Синус дуги людей UE4

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

ArcSineFast

Синус дуги людей быстрый UE4

Выражение ArcsineFast выводит примерную обратную синусоидальную функцию. Вход должен быть между -1 и 1.

ArcCosine

Мужчины-Косинус UE4

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

ArcCosineFast

Мужчины быстро Косинус UE4

Выражение ArccosineFast выводит примерную функцию обратного косинуса. Вход должен быть между -1 и 1.

ArcTangent

Мужчины дуги касательной UE4

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

ArcTragnetFast

Мужчины арктангенс быстро UE4

Выражение ArctangentFast выводит приближенную обратную касательную функцию.

ArcTangent2

MENArc Касательная 2 UE4

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

ArcrTangent2Fast

Мужчины арктангенс 2 быстро UE4

Выражение Arctangent2Fast представляет собой приблизительную обратную касательную X / Y, где входные знаки используются для определения квадранта.

Ceil

Выражение Ceil принимает значение (я), округляет их до следующего целого и выводит результат. См. также Floor and Frac.

Примеры: Ceil чисел 0,2 равна 1,0;  Ceil (0,2, 1,6) равна (1,0, 2,0).

Пример Ceil UE4

Clamp

Выражение Clamp принимает значение (я) и ограничивает их заданным диапазоном, определяемым минимальным и максимальным значением. Минимальное значение 0.0 и максимальное значение 0,5 означает, что результирующее значение (я) никогда не будет меньше 0,0 и не больше 0,5.

НазваниеОписание
Свойство
Clamp ModeВыбирает тип замыкания, который будет использоваться. CMODE_Clamp будет смыкать оба конца диапазона. CMODE_ClampMin и CMODE_ClampMax будут только зажимать их соответствующие концы диапазона.
Min DefaultПринимает значение, которое следует использовать как минимум при зажатии. Используется только тогда, когда вход Min не используется.
Max DefaultПринимает значение, которое следует использовать в качестве максимума при зажатии. Используется только, когда вход Max не используется.
Входы
MinПринимает значение, которое следует использовать как минимум при зажатии.
MaxПринимает значение, которое следует использовать в качестве максимума при смыкании.

Примеры: Зажим диапазона ввода от (0,0) до (1,0) 0,3 с Min 0,0 и Max 1.0 дает 0,3; Зажим 1.3 с Min 0.0 и Max 1.0 дает 1.0.

Пример зажима UE4

ComponentMask

Выражение ComponentMask позволяет вам выбрать конкретное подмножество каналов (R, G, B и/или A) с входа для перехода к выходу. Попытка пропустить канал через то, что не существует на входе, приведет к ошибке, если только вход не является единственным постоянным значением. В этом случае одно значение передается каждому каналу. Текущие каналы, выбранные для передачи, отображаются в строке заголовка выражения.

НазваниеОписание
Свойство
RЕсли этот флажок установлен, красный (первый) канал входного значения будет передан на выход.
GЕсли флажок установлен, зеленый (второй) канал входного значения будет передан на выход.
BЕсли этот флажок установлен, синий (третий) канал входного значения будет передан на выход.
AЕсли флажок установлен, альфа (четвертый) канал входного значения будет передан на выход.

Примеры: ComponentMask с входом (0,2, 0,4, 1,0) и G каналом будет выдавать результат (0,4), который отображается как 40% яркое значение оттенков серого при использовании в качестве цветового вектора.

Пример маски компонента UE4

Cosine

Выражение Cosine выводит значение косинусоидной волны во входном диапазоне [0, 1] и выходной диапазон [-1, 1], оба повторяющиеся. Чаще всего это используется для вывода непрерывной осциллирующей формы сигнала путем подключения выражения Time к его входному сигналу, но его также можно использовать для создания ряби в пространстве мира или экранах или в любом другом приложении, где необходим непрерывный, плавный цикл. Ниже представлено визуальное представление волны, масштабированное до диапазона выходного сигнала [0, 1]:

Косинусоиды UE4

НазваниеОписание
Свойство
PeriodОпределяет период результирующей волны. Другими словами, это то, как долго происходит одно колебание.

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

Пример Косинуса UE4

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

CrossProduct

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

НазваниеОписание
Свойство
AПринимает трехканальное значение вектора.
BПринимает трехканальное значение вектора.

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

Пример Перекрестного Продукта UE4

Divide

Выражение Divide принимает два входа и выводит результат первого, деленного на второе. Разделение происходит на канал, что означает, что канал R первого делится на второй, канал G первого делится на второй и т.д. Оба входа должны иметь одинаковое количество значений, если делитель не является одним значением с плавающей точкой. Деление на ноль в любом канале приведет к тому, что канал, содержащий реализацию «бесконечности» локального аппаратного обеспечения, обычно является очень большим положительным значением.

НазваниеОписание
Свойство
Const AПринимает значение (я), которое нужно разделить, дивиденд. Используется только в том случае, если вход A не используется.
Const BПринимает значение (я) для деления на, делитель. Используется только в том случае, если вход B не используется.
Входы
АПринимает значение (я), которое нужно разделить, дивиденд.
ВПринимает значение (я) для деления на, делитель.

Примеры: использование Divide с выводами A = (1.0) и B = (5.0) дает результат (0.2), которое выглядит как темно-серый.

Разделите Пример UE4

DotProduct

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

НазваниеОписание
Входы
AПринимает значение или вектор любой длины.
BПринимает значение или вектор той же длины, что и A.

Пример Скалярное Произведение UE4

Floor

Выражение Floor принимает значения (я), округляет их до предыдущего целого числа и выводит результат. См. также Ceil и Frac.

Примеры: Floor 0,2 равен 0,0; Floor (0,2, 1,6) равен (0,0, 1,0).

Пример пола UE4

FMod

Выражение FMod возвращает остаток с плавающей запятой операции деления двух входов. Дивиденд (ввод «А») может быть любым значением, но отрицательные дивиденды приведут к отрицательным результатам. Делитель (второй вход) не должен быть равен нулю, так как это означает деление на ноль, но независимо от того, отрицательный или положительный делитель не повлияет на результат. Обычный пример использования – это сделать яркость материала максимального значения, затем сразу же вернуть ее к минимальному значению на следующем кадре, только чтобы снова начать восхождение к максимуму.

FMOD По Примеру UE4
В этом примере FMod принимает нулевую UV прогрессию и преобразует ее в повторяющийся цикл каждые 0,2 UV-единицы по оси X в зеленом канале.

Frac

Выражение Frac принимает значения и выводит дробную часть этих значений. Другими словами, для входного значения «X» результатом является «X minus Floor of X». Выходное значение будет варьироваться от нуля до единицы, включительно на нижнем конце, но не высокого уровня. См. также Ceil and Floor.

Примеры: Frac (0.2) равен (0.2). Frac (-0,2) равен (0,8). Frac (0,0, 1,6, 1,0) составляет (0,0, 0,6, 0,0).

Пример ГРП UE4

В этом примере узел Frac преобразует время в последовательность повторяющихся 0 – 1 прогрессий, заставляя цвет исчезать (через Lerp) от зеленого до красного, а затем привязывается к зеленому, бесконечно повторяя.

If

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

НазваниеОписание
Входы
AПринимает одно значение с плавающей запятой.
BПринимает одно значение с плавающей запятой.
A > BПринимает значение (я) для вывода, если значение A больше, чем значение B.
A = BПринимает значение (я) для вывода, если значение A равно значению B.
A < BПринимает значение (я) для вывода, если значение A меньше значения B.

Если Пример UE4

В этом примере выражение If принимает значение heightmap (карта высоты) и выводит либо красный, либо зеленый, исходя из того, падает ли высота или превышает значение 0.2.

LinearInterpolate

Выражение LinearInterpolate смешивается между двумя входными значениями на основе третьего входного значения, используемого в качестве маски. Это можно рассматривать как маску для определения переходов между двумя текстурами, например, в маске слоя в Photoshop. Интенсивность маски Alpha определяет отношение цвета к двум входным значениям. Если Alpha 0.0/black, то используется первый вход. Если Alpha 1.0/white, используется второй вход. Если Alpha серый (где-то между 0.0 и 1.0), выход представляет собой смесь между двумя входами. Имейте в виду, что смесь происходит на канал. Итак, если Alpha является цветом RGB, значение красного канала Alpha определяет смесь между красными каналами A и B независимо от зеленого канала Alpha, который определяет смесь между зелеными каналами A и B.

НазваниеОписание
Свойство
Const AЗначение, отображаемое на черный (0.0). Используется только в том случае, если вход A не подключен.
Const BЗначение, отображаемое на белый (1.0). Используется только в том случае, если вход B не подключен.
Const AlphaПринимает значение для использования в качестве маски альфа. Используется только в том случае, если вход Alpha не подключен.
Входы
АПринимает значение (я), отображаемое на черный (0.0).
ВПринимает значение (я), отображаемое на белый (1.0).
AlphaПринимает значение для использования в качестве маски альфа.

Программисты: LinearInterpolate делает канал для каждого канала между A и B на основе параметрического значения Alpha.

Пример Lerp UE4

Max

Выражение Max принимает два входа и выводит их выше.

Этот узел похож на Lighten в Photoshop.

Максимальный Пример UE4

В приведенном выше примере A является «0», а B «1»; поэтому «1» (белый) является итоговым базовым цветом.

НазваниеОписание
Свойство
Const AПринимает первое значение (я). Используется только в том случае, если вход A не используется.
Const BПринимает второе значение (я). Используется только в том случае, если вход B не используется.
Входы
АПринимает первое значение (я) для сравнения.
BПринимает второе значение (я) для сравнения.

Min

Выражение Min принимает два входа и выводит нижний из двух.

Этот узел похож на Darken (затемнение) от Photoshop.

Минимальный пример UE4

В приведенном выше примере A является «0», а B – «1»; поэтому «0» (черный) является результатом базового цвета.

НазваниеОписание
Свойство
Const AПринимает первое значение (я). Используется только в том случае, если вход A не используется.
Const BПринимает второе значение (я). Используется только в том случае, если вход B не используется.
Входы
АПринимает первое значение (я) для сравнения.
BПринимает второе значение (я) для сравнения.

Multiply

Выражение Multiply принимает два входа, умножает их вместе и выводит результат. Подобно многослойному смешиванию в Photoshop. Умножение происходит на канал, что означает, что канал R первого умножается на R канал второго; G канал первого умножается на G канал второй и т.д. Оба входа должны иметь одинаковое количество значений, если одно из значений не является одним значением с плавающей запятой.

НазваниеОписание
Свойство
Const AПринимает первое значение (я) для умножения. Используется только в том случае, если вход A не используется.
Const BПринимает второе значение (я) для умножения. Используется только в том случае, если вход B не используется.
Входы
АПринимает первое значение (я) для умножения.
BПринимает второе значение (я) для умножения.

Не забывайте, что материалы в UE4 не ограничены [0,1]. Если цвета/значения больше 1, то Multiply на самом деле будет ярче цветов.

Примеры:  Multiply 0,4 и 0,5 составляет 0,2;  Multiply (0,2, -0,4, 0,6) и (0,0, 2,0, 1,0) составляет (0,0, -0,8, 0,6);  Multiply (0,2, -0,4, 0,6) и 0,5 равно (0,1, -0,2, 0,3).

Пример использования: Multiply часто используется для яркого или темного цвета / текстуры.

Пример умножения UE4

Normalize

Выражение Normalize вычисляет и выводит нормированное значение его ввода. Нормализованные векторы (также называемые «единичные векторы») имеют общую длину 1,0. Это означает, что каждая компонента входа делится на общую величину (длину) вектора.

Примеры: При прохождении (0,2,0) или (0,0,2,0) через Normalize выдается (0,1,0). Вывод (0,1, -1) через Normalize будет выводиться (0, 0.707, -0.707). Единственный частный случай – это полностью нулевой вектор, который не изменится.

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

OneMinus

Выражение OneMinus принимает входное значение «X» и выводит «One Minus X». Эта операция выполняется для каждого канала.

Примеры: OneMinus 0,4 составляет 0,6; OneMinus (0,2,0,5,1,0) составляет (0,8,0,5,0,0);  OneMinus (0,0, -0,4,1,6) равен (1,0,1,4, -0,6).

Пример использования: Когда входные цвета находятся в диапазоне [0,1], OneMinus имеет тот же эффект, что и обычно называемое действие «инвертировать», то есть OneMinus возвращает дополнительный цвет, который при добавлении на вход будет выдавать белый.

Один Минус Пример UE4

Power

Выражение Power принимает два входа, повышает Base до мощности Exp и выводит результат; другими словами, Base умножил на себя Exp раз.

НазваниеОписание
Свойство
Const ExponentПринимает значение экспоненты. Используется, только если вход Exp не используется.
Входы
BaseПринимает базовое значение.
ExpПринимает значение экспоненты.

Примеры: Power для Base 0.5, Exp 2.0 равна 0,25.

Пример использования: Если цвета, которые вы передаете Power, находятся в [0,1], Power может вести себя как своего рода регулировка контрастности, где очень яркие значения немного затемнены, но более темные значения резко уменьшаются.

Пример питания UE4

Round

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

До Round UE4До RoundПосле Round UE4После Round

Примеры:

  • Значение 1.1 будет округлено до значения 1.
  • Значение 1.4 будет округлено до значения 1.
  • Значение 1.5 будет округлено до значения 2.
  • Значение 1.85 будет округлено до значения 2.

Saturate

Узел Saturate фиксирует значение от 0 до 1. Стоимость инструкции для Saturate практически бесплатна для большинства современных графических аппаратных средств.

Насытить пример 00 UE4

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

Sine

Выражение Sine выводит значение синусоидальной волны во входном диапазоне [0, 1] и выходном диапазоне [-1, 1], при том оба повторяются. Разница между этим и выходом выражения Cosine заключается в том, что выходная форма волны смещается на четверть периода, что означает, что Cos(X)равно Sin(X + 0.25). Чаще всего это используется для вывода непрерывной осциллирующей формы сигнала путем подключения выражения Time к его входному сигналу, но его также можно использовать для создания ряби в пространстве мира или экранах или в любом другом приложении, где необходим непрерывный, плавный цикл. Ниже представлено визуальное представление волны, масштабированное до диапазона выходного сигнала [0, 1]:

синусоидальная волна UE4

НазваниеОписание
Свойство
PeriodОпределяет период результирующей волны. Другими словами, это то, как долго происходит одно колебание.

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

Пример синуса UE4

SquareRoot

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

Функция Sqrt UE4

Subtract

Узел Subtract принимает два входа, вычитает второй вход из первого и выводит разницу. Вычитание происходит на канал, что означает, что канал R второго входа вычитается из первого; канал G второго входа вычитается из первого и т.д. Оба входа должны иметь одинаковое количество каналов, если второй вход не равен одному постоянному значению. Константы можно вычесть из вектора с любым количеством входов.

НазваниеОписание
Свойство
Const AПринимает значение (я) уменьшаемого. Используется только в том случае, если вход A не используется.
Const BПринимает значение (я) вычитаемого. Используется только в том случае, если вход B не используется.
Входы
AПринимает значение (я) уменьшаемого.
BПринимает значение (я) вычитаемого.

Примеры: Subtract 0,5 и 0,2 равно 0,3; Subtract (0,2, -0,4,0,6) и (0,1,0,1,1,0) составляет (0,1, -0,5, -0,4); Subtract (0,2,0,4,1,0) и 0,2 составляет (0,0,0,2,0,8).

Пример использования: Subtract может использоваться для затемнения цветов и смещения UV.

Пример Вычитания UE4

Tangent

MEN Tangent UE4

Узел Tangent выводит тангенс указанного значения.

Truncate

До Truncate UE4

До Truncate

После Truncate UE4После Truncate

Узел Truncate обрезает значение, отбрасывая дробную часть, оставляя целое число нетронутым.

Примеры:

  • Значение 1.1 будет усечено до значения 1.
  • Значение 1.4 будет усечено до значения 1.
  • Значение 2.5 будет усечено до значения 2.
  • Значение 3.1 будет усечено до значения 3.