Curvature
Curvature reads a surface’s edges and cavities out as a mask, for the two effects every worn material needs: paint rubbed off the raised edges, and dirt settled into the creases. Wire a normal map into the Normal input, a height map into Height, or a whole texture set into Texture so the node reads the set’s own Normal or Height.
The three outputs
Section titled “The three outputs”- Curvature holds both signs at once: midgray is flat, brighter is a raised edge, darker is a crease. Grade it with Levels or a Gradient Map, or use it as a factor that pushes two ways from the middle.
- Convexity is the raised half alone, black where the surface is flat or hollow. This is the edge wear mask: reveal a scratched metal through a painted base with it.
- Concavity is the hollow half alone, black where the surface is flat or raised. This is the grime mask: darken Base Color and raise Roughness in the cracks with it.
The halves are views of the same measurement, so they never disagree with each other or with Curvature, and neither is thresholded: both keep the full soft gradient.
Output
Section titled “Output”Output changes what the Curvature pin carries, which is also what the node body, the Preview, and a Viewer slot show. Convexity and Concavity always carry their own half.
- Signed (default) is the two-way reading above.
- Convex and Concave put one half on the main pin, when you would rather not wire a second output.
- Both is how sharply the surface bends either way, black where it is flat: a general wear mask where every edge matters and direction does not.
Switching never changes how strong the mask is, only which part you get. Uncovered areas publish midgray under Signed and black under the other three.
Where the reading comes from
Section titled “Where the reading comes from”Curvature uses the first source it finds, in this order:
- a map wired into the Normal input,
- a map wired into the Height input,
- the connected texture set’s Normal,
- the connected texture set’s Height.
The node body says which one it used. A normal map is the better source when the asset has one: it carries the surface’s slopes directly, at the precision it was authored at.
Radius is the feature size
Section titled “Radius is the feature size”Radius is not a search distance. It is the size of the features the mask picks out: the surface is smoothed over that scale before the bend is measured, so small values find the finest creases and larger values gather broad swells and hollows. Radius Unit sets it as a percentage of the image’s shorter side (default 0.1%) or in exact pixels.
Zero is the sharpest reading the map can give, and fine for a clean, high-resolution map. Raise it when the source is noisy, or when the mask should follow the shape of a panel rather than the grain of its surface. A wider Radius widens the mask rather than fading it, so you never have to chase Strength back up.
The rest of the controls
Section titled “The rest of the controls”- Strength scales the measurement: 1 (default) leaves it alone, and 0 is flat midgray with both halves empty. Nothing is measured from the picture, so one extreme pixel never rescales a map and two tiles of one material agree.
- Height Depth says how tall a height map is, as on Ambient Occlusion. It applies only when the reading comes from a height map; a normal map carries its own slopes.
- Normal Format must match the file on the Normal input. With the wrong convention, a round bump nearly cancels and a feature running across the image gets the wrong sign. A texture set carries its own Normal convention, and this setting never overrides it.
- Edge Mode says what lies outside the map: Repeat (default) for a tiling material, Open where the surface simply ends, or Clamp to extend the border pixels.
Curvature or Ambient Occlusion
Section titled “Curvature or Ambient Occlusion”Curvature is local: how sharply does the surface bend right here. Ambient Occlusion is about the neighborhood: how much of the sky can this point see. A crease is dark in both, but a wide, shallow bowl is dark only in occlusion, and a razor-thin scratch is strong only in curvature.
Parameters
Section titled “Parameters”Pins
Curvature
What the Curvature output carries. The Convexity and Concavity outputs always carry their own half.
- Signed: midgray is flat, raised edges brighter, creases darker.
- Convex: raised edges only, black elsewhere. An edge wear mask.
- Concave: creases only, black elsewhere. A grime mask.
- Both: every edge and crease, black where flat.
How Radius is measured.
- Percent: percent of the shorter side, so one number means the same feature size on any size of map.
- Pixels: an exact size in pixels.
How large a feature the mask picks out, as a percentage of the shorter side of the map. Small values pick out fine creases; large values gather broad swells and hollows. 0 = sharpest
How large a feature the mask picks out, in pixels. Small values pick out fine creases; large values gather broad swells and hollows. 0 = sharpest
Scales the measured curvature. Raise it to bring a shallow surface up into a usable mask, lower it to calm a sharp one. 1 = unchanged, 0 = flat
Source
How tall the height map really is: a height difference of 1 stands this many percent of the shorter side out of the surface. Has no effect when the curvature is read from a normal map
Green-channel convention of the normal map on the Normal input. Set it to match the file.
- OpenGL: +Y is up. The usual choice for Blender, Unity, Godot and glTF.
- DirectX: +Y is down. The usual choice for Unreal and 3ds Max.
A Texture carries its own convention, so this has no effect on one.
What lies outside the map.
- Repeat: the map tiles, so the surface carries across the seam. Use it for a tiling material.
- Clamp: the border pixels extend outward.
- Open: nothing outside, so the surface simply ends at the border.
Usage Tips
Section titled “Usage Tips”- Wire a normal map straight into Normal when the asset has one. Going through Normal to Height first is rarely worth it.
- Both halves are soft gradients. Put the threshold in a Levels or Curves node downstream, where it stays editable.
- A hole in a cutout (an image’s alpha, or a texture set’s Opacity) raises no halo around its edge: an absent part of the surface is absent, not a cliff.
- A flat 8-bit area reads as flat, with no false edges from quantization steps. A 32-bit (Float) document, the default for new projects, keeps full precision throughout.
- Search the node library for “curvature”, “edge wear”, “cavity”, “convexity”, “concavity”, or “dirt mask”.