MathNode

Last modified: Jun 30, 2024

This node represents a variety of mathematical methods available in shaders. They are divided into three categories:

  • Methods with one input like sin , cos or normalize .
  • Methods with two inputs like dot , cross or pow .
  • Methods with three inputs like mix , clamp or smoothstep .

Constructor

new MathNode(method, aNode, bNode?, cNode?, args)
ParameterTypeDefault Value
methodstring
aNodeNode
bNode?null | Nodenull
cNode?null | Nodenull
argsArray<any>

Constructs a new math node.

AccessorType

Properties

PropertyTypeDefault Value
methodstring
aNodeNode
bNodenull | Node
cNodenull | Node
isMathNodeboolean
MethodType

Extends

TempNode

EPSILON

A small value used to handle floating-point precision errors.

Type

Node<float>

INFINITY

Represents infinity.

Type

Node<float>

PI

Represents PI.

Type

Node<float>

PI2

Represents PI * 2. Please use the non-deprecated version TWO_PI.

Type

Node<float>

TWO_PI

Represents PI * 2.

Type

Node<float>

HALF_PI

Represents PI / 2.

Type

Node<float>

all

Returns true if all components of x are true.

ParameterTypeDefault Value
xNode | number

Returns

Node<bool>

any

Returns true if any components of x are true.

ParameterTypeDefault Value
xNode | number

Returns

Node<bool>

radians

Converts a quantity in degrees to radians.

ParameterTypeDefault Value
xNode | number

Returns

Node

degrees

Convert a quantity in radians to degrees.

ParameterTypeDefault Value
xNode | number

Returns

Node

exp

Returns the natural exponentiation of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

exp2

Returns 2 raised to the power of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

log

Returns the natural logarithm of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

log2

Returns the base 2 logarithm of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

sqrt

Returns the square root of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

inverseSqrt

Returns the inverse of the square root of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

floor

Finds the nearest integer less than or equal to the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

ceil

Finds the nearest integer that is greater than or equal to the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

normalize

Calculates the unit vector in the same direction as the original vector.

ParameterTypeDefault Value
xNode

Returns

Node

fract

Computes the fractional part of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

sin

Returns the sine of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node
N E W

sinh

Returns the hyperbolic sine of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

cos

Returns the cosine of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node
N E W

cosh

Returns the hyperbolic cosine of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

tan

Returns the tangent of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node
N E W

tanh

Returns the hyperbolic tangent of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

asin

Returns the arcsine of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node
N E W

asinh

Returns the inverse hyperbolic sine of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

acos

Returns the arccosine of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node
N E W

acosh

Returns the inverse hyperbolic cosine of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

atan

Returns the arc-tangent of the parameter. If two parameters are provided, the result is atan2(y/x).

ParameterTypeDefault Value
yNode | number
xNode | number

Returns

Node
N E W

atanh

Returns the inverse hyperbolic tangent of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

abs

Returns the absolute value of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

sign

Extracts the sign of the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

length

Calculates the length of a vector.

ParameterTypeDefault Value
xNode

Returns

Node<float>

negate

Negates the value of the parameter (-x).

ParameterTypeDefault Value
xNode | number

Returns

Node

oneMinus

Return 1 minus the parameter.

ParameterTypeDefault Value
xNode | number

Returns

Node

dFdx

Returns the partial derivative of the parameter with respect to x.

ParameterTypeDefault Value
xNode | number

Returns

Node

dFdy

Returns the partial derivative of the parameter with respect to y.

ParameterTypeDefault Value
xNode | number

Returns

Node

round

Rounds the parameter to the nearest integer.

ParameterTypeDefault Value
xNode | number

Returns

Node

reciprocal

Returns the reciprocal of the parameter (1/x).

ParameterTypeDefault Value
xNode | number

Returns

Node

trunc

Truncates the parameter, removing the fractional part.

ParameterTypeDefault Value
xNode | number

Returns

Node

fwidth

Returns the sum of the absolute derivatives in x and y.

ParameterTypeDefault Value
xNode | number

Returns

Node

transpose

Returns the transpose of a matrix.

ParameterTypeDefault Value
xNode<mat2|mat3|mat4>

Returns

Node

determinant

Returns the determinant of a matrix.

ParameterTypeDefault Value
xNode<mat2|mat3|mat4>

Returns

Node<float>

inverse

Returns the inverse of a matrix.

ParameterTypeDefault Value
xNode<mat2|mat3|mat4>

Returns

Node<mat2|mat3|mat4>

min

Returns the least of the given values.

ParameterTypeDefault Value
values...Node | number

Returns

Node

max

Returns the greatest of the given values.

ParameterTypeDefault Value
values...Node | number

Returns

Node

step

Generate a step function by comparing two values.

ParameterTypeDefault Value
xNode | number
yNode | number

Returns

Node

reflect

Calculates the reflection direction for an incident vector.

ParameterTypeDefault Value
INode<vec2|vec3|vec4>
NNode<vec2|vec3|vec4>

Returns

Node<vec2|vec3|vec4>

distance

Calculates the distance between two points.

ParameterTypeDefault Value
xNode<vec2|vec3|vec4>
yNode<vec2|vec3|vec4>

Returns

Node<float>

difference

Calculates the absolute difference between two values.

ParameterTypeDefault Value
xNode | number
yNode | number

Returns

Node

dot

Calculates the dot product of two vectors.

ParameterTypeDefault Value
xNode<vec2|vec3|vec4>
yNode<vec2|vec3|vec4>

Returns

Node<float>

cross

Calculates the cross product of two vectors.

ParameterTypeDefault Value
xNode<vec2|vec3>
yNode<vec2|vec3>

Returns

Node<float|vec3>

pow

Return the value of the first parameter raised to the power of the second one.

ParameterTypeDefault Value
xNode | number
yNode | number

Returns

Node

pow2

Returns the square of the parameter.

ParameterTypeDefault Value
xnumber | Node

Returns

Node

pow3

Returns the cube of the parameter.

ParameterTypeDefault Value
xnumber | Node

Returns

Node

pow4

Returns the fourth power of the parameter.

ParameterTypeDefault Value
xnumber | Node

Returns

Node

transformDirection

Transforms the direction of a vector by a matrix and then normalizes the result.

ParameterTypeDefault Value
directionNode<vec2|vec3|vec4>
matrixNode<mat2|mat3|mat4>

Returns

Node

cbrt

Returns the cube root of a number.

ParameterTypeDefault Value
anumber | Node

Returns

Node

lengthSq

Calculate the squared length of a vector.

ParameterTypeDefault Value
aNode<vec2|vec3|vec4>

Returns

Node<float>

mix

Linearly interpolates between two values.

ParameterTypeDefault Value
aNode | number
bNode | number
tNode | number

Returns

Node

clamp

Constrains a value to lie between two further values.

ParameterTypeDefault Value
valuenumber | Node
low?number | Node0
high?number | Node1

Returns

Node

saturate

Constrains a value between 0 and 1.

ParameterTypeDefault Value
valuenumber | Node

Returns

Node

refract

Calculates the refraction direction for an incident vector.

ParameterTypeDefault Value
INode<vec2|vec3|vec4>
NNode<vec2|vec3|vec4>
etaNode<float>

Returns

Node<vec2|vec3|vec4>

smoothstep

Performs a Hermite interpolation between two values.

ParameterTypeDefault Value
lowNode | number
highNode | number
xNode | number

Returns

Node

faceForward

Returns a vector pointing in the same direction as another.

ParameterTypeDefault Value
NNode<vec2|vec3|vec4>
INode<vec2|vec3|vec4>
NrefNode<vec2|vec3|vec4>

Returns

Node<vec2|vec3|vec4>

rand

Returns a random value for the given uv.

ParameterTypeDefault Value
uvNode<vec2>

Returns

Node<float>

mixElement

Alias for mix() with a different parameter order.

ParameterTypeDefault Value
tnumber | Node
e1number | Node
e2number | Node

Returns

Node

smoothstepElement

Alias for smoothstep() with a different parameter order.

ParameterTypeDefault Value
xnumber | Node
lownumber | Node
highnumber | Node

Returns

Node

stepElement

Alias for step() with a different parameter order.

ParameterTypeDefault Value
xnumber | Node
edgenumber | Node

Returns

Node

faceforward

Type

any

inversesqrt

Type

any