Skip to main content

Vector nodes

Press Shift+A, or release a dragged wire on empty canvas, to open the node search ("Search nodes…").

In the tables, drag scale N means a 200-pixel drag moves the value across the span from the minimum to N; keep dragging, or double-click and type, to reach the full registered numeric range. A dash in the bounds column means no scalar range is listed; it does not promise that every input type accepts unrestricted values.


Mapping​

Transforms a texture coordinate vector by applying translation (Location), rotation, and scale. Type controls how the transform is applied: point moves, rotates and scales the coordinates; texture applies the inverse, so the texture itself appears to move; vector applies only rotation and scale (Location is ignored); normal transforms as a surface normal. Rotation is in radians (90° ≈ 1.5708).

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
TypeChoicepoint—point, texture, vector, normal
VectorVector0, 0, 0——
LocationVector0, 0, 0——
RotationVector0, 0, 0——
ScaleVector1, 1, 1——

Outputs

SocketType
VectorVector

Bump​

Perturbs the shading normal to simulate surface bumps without moving geometry. Wire a height map (e.g. Noise Texture Fac) into Height. Strength scales the effect (0–1); Distance multiplies Height to set how deep the bumps look. Invert flips the bump direction. Wire the Normal output into a shader's Normal input.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
InvertBooleanOff——
StrengthFloat10 to 1—
DistanceFloat0.10 to 1000—
HeightFloat10 to 1—
NormalVector0, 0, 0——

Outputs

SocketType
NormalVector

Normal​

Outputs Direction, normalised, as Normal, and the dot product of Direction with whatever is connected to the Normal input as Dot. For example, wire Geometry › Normal into Normal to measure the angle between a fixed direction and the surface. Both inputs default to 0, 0, 0, and the renderer cannot normalise a zero vector, so set Direction and connect Normal before using either output.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
DirectionVector0, 0, 0——
NormalVector0, 0, 0——

Outputs

SocketType
NormalVector
DotFloat

Vector Math​

Performs a vector or scalar operation selected by Operation. The third Vector input (Vector (3) in the table) is used only by multiply_add, faceforward and wrap. Scale is used by scale, and as the IOR by refract. Use the Value output for dot_product, distance and length; use the Vector output for the rest.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
OperationChoiceadd—add, subtract, multiply, divide, cross_product, project, reflect, refract, faceforward, multiply_add, dot_product, distance, length, scale, normalize, snap, round, floor, ceil, modulo, wrap, fraction, absolute, power, sign, minimum, maximum, sine, cosine, tangent
Vector (1)Vector0, 0, 0-10000 to 10000—
Vector (2)Vector0, 0, 0-10000 to 10000—
Vector (3)Vector0, 0, 0-10000 to 10000—
ScaleFloat1-10000 to 10000—

Outputs

SocketType
ValueFloat
VectorVector

Vector Rotate​

Rotates a vector around a Center point using the axis and angle specified by Type. Invert reverses the rotation direction. Angle is in radians (90° ≈ 1.5708). For euler_xyz, use Rotation instead of Angle. Axis is used only by axis; x_axis, y_axis and z_axis rotate about the X, Y or Z axis of the incoming vector's own space. Every type rotates about Center.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
TypeChoiceaxis—axis, x_axis, y_axis, z_axis, euler_xyz
InvertBooleanOff——
VectorVector0, 0, 0——
RotationVector0, 0, 0——
CenterVector0, 0, 0——
AxisVector0, 0, 1——
AngleFloat0-10000 to 10000—

Outputs

SocketType
VectorVector

Vector Transform​

Converts a vector between world, object, and camera coordinate spaces. Type specifies the interpretation (point, direction vector, or normal).

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
TypeChoicevector—vector, point, normal
Convert FromChoiceworld—world, object, camera
Convert ToChoiceobject—world, object, camera
VectorVector0, 0, 0——

Outputs

SocketType
VectorVector

Vector Curves​

Applies separate user-defined curves to each XYZ component of a vector within [Min X, Max X]. The curve editor shows C (acts on all components) and R/G/B (act on X/Y/Z individually). Curves span 0–1, so negative components (for example in a normal vector) are not shaped below 0. Click the curve strip under the node's rows to open the editor. Fac blends the result with the input vector (0 = original, 1 = full curve). Fac starts at 0, so the curve has no effect until you raise it to 1. In the editor, click to add a point, drag to move it, then click a point and press Backspace to remove it (two points always remain). Pick C, R, G or B first to choose which channel to edit.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
CurvesCurve data———
Min XFloat00 to 1—
Max XFloat10 to 1—
ExtrapolateBooleanOn——
FacFloat00 to 1—
VectorVector0, 0, 0——

Outputs

SocketType
VectorVector

Normal Map​

Converts a tangent-space (or object/world-space) normal map colour into a shading normal vector. Attribute names the UV map channel; leave empty to use the active UV map. Convention: opengl for maps whose green channel points up; directx for DirectX-style maps (green flipped). Base: original reads the map against the surface before displacement; displaced reads it against the displaced surface. blender_object / blender_world: object- or world-space maps baked with Blender's axis convention.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
SpaceChoicetangent—tangent, object, world, blender_object, blender_world
ConventionChoiceopengl—opengl, directx
BaseChoiceoriginal—original, displaced
AttributeText(empty)——
StrengthFloat10 to 10—
ColorColour0.5, 0.5, 1——

Outputs

SocketType
NormalVector

Displacement​

Wire this node's Displacement output into Material Output › Displacement. On its own it changes shading only (like Bump). The surface moves only when the same displacement branch contains a Wood Texture, or a Displace node with Method set to true. Space controls whether the displacement is in object or world space. A Height equal to Midlevel gives no offset; offset = (Height − Midlevel) × Scale. With the defaults (Height 0, Midlevel 0.5), an unconnected node pushes the surface inward by 0.5 × Scale whenever the surface moves (see above).

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
SpaceChoiceobject—object, world
HeightFloat00 to 1000—
MidlevelFloat0.50 to 1000—
ScaleFloat10 to 1000—
NormalVector0, 0, 0——

Outputs

SocketType
DisplacementVector

Set Normal​

Overrides the surface's shading normal with Direction (for example from a Normal Map). Connect Direction; left at 0, 0, 0 it gives no usable normal. Wire its Normal output into a shader's Normal input.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
DirectionVector0, 0, 0——

Outputs

SocketType
NormalVector