UV

Generate, keep, and lay out UV coordinates on 3D geometry by projection or automatic unwrapping, with a UV-space layout overlay.

What it does

UV generates texture coordinates for 3D geometry, using either a projection (Planar, Cylindrical, Spherical, Box, Camera, Normal) or an automatic unwrap that segments the mesh into charts and packs them into a texture atlas. A UV-space layout overlay draws the flattened islands on a grid in the viewport, showing seams and coverage without leaving the graph.

The node has two outputs: the original 3D geometry with a fresh UV set, and a flattened 2D UV mesh, which can be fed into another modifier, or edited directly and routed back in, to nudge individual UV points.

When to use it

ParameterTypeDefaultWhat it does
geometryCollection——
methodString"Box"UV generation method. 'Box' and 'Normal' pick the dominant normal axis per element. 'Keep Existing' skips unwrapping and preserves the input geometry's UVs (and writes back edits from a modified uv_mesh). One of: Planar, Box, Cylindrical, Spherical, Camera, Normal, Auto, Keep Existing.
projection_axisString"Y"Projection axis (Planar mode only). One of: X, Y, Z.
scaleNumber100World-space size that maps to one UV tile. Applies to world-space projections (Planar/Box/Normal and the height of Cylindrical); the angular components of Cylindrical/Spherical and the normalized Camera projection are unaffected.
offsetVec2(0, 0)UV coordinate offset
camera_positionVec3(0, 0, 500)Camera position for projection
camera_targetVec3(0, 0, 0)Camera look-at target
fovNumber50Field of view in degrees. 0 for orthographic projection.
atlas_resolutionNumber1024Target atlas resolution for UV packing
paddingNumber2Padding between UV charts in texels
angle_thresholdNumber88Chart segmentation angle threshold (degrees). Lower values create more charts.
display_scaleNumber500World-space size of the UV grid in the viewport
show_wireframeBooleantrueShow the UV triangle wireframe
show_gridBooleantrueShow the 0-1 UV space grid
grid_subdivisionsNumber4Grid subdivision count
edited_uvsString""UV edits from the viewport (edited via the layout gizmo)
opacityNumber1Layer opacity (0 = transparent, 1 = opaque). Editable, wirable, keyframable.

Gotchas

Scale (world units per UV tile) affects only the world-space parts of a projection: Planar, Box, Normal, and the vertical axis of Cylindrical. Cylindrical's angle-around and both axes of Spherical are already normalised 0–1, so Scale does nothing there and only Offset moves them.

Box and Normal produce the same mapping, both picking the dominant surface normal axis per face. Pick whichever name fits how you are thinking about the mesh.

A Field of View of 0 switches Camera projection to orthographic, parallel rays instead of perspective.

Keep Existing generates nothing. It passes the input geometry's current UVs straight through. To write hand-edits back onto the 3D geometry, feed the modified uv_mesh output back into this node's geometry input with Keep Existing selected.

Worked example

  1. Add a UV node and feed it a mesh. It defaults to Box projection, which gives every mesh a reasonable starting UV set.

  2. Switch Method to Cylindrical or Spherical for a wrap-around surface, or Camera to project from a specific viewpoint.

  3. Adjust Scale to change how much world-space area maps to one UV tile, and Offset to shift the whole layout.

  4. Turn on the UV layout overlay (Show Wireframe / Show Grid) to check island seams and coverage in the viewport.

  5. For a hard case, switch to Auto and tune Angle Threshold, Atlas Resolution, and Padding until the charts pack cleanly.

See also

Smooth · Normals · Transform · Geometry (meshes)