^{Rollover image}

This shader will sample around the shading point within a given radius to output the curvature. You can adjust the radius, falloff and spread of the curvature sampling as well as specify a trace set to exclude or include objects. This shader is useful for creating procedural wear or dirt maps in conjunction with a noise shader.

A tutorial that covers the Curvature shader can be found here.

#### Output

Whether to output the convex (positive) curvature or concave (negative) curvature only as grayscale, or output both with the convex curvature in the red channel and concave curvature in the green channel.

#### Samples

Controls the number of rays that will be fired to compute the curvature. Increasing the number of samples will reduce noise and give a better quality result. The actual number of rays is the square of this value.

#### Radius

The radius of the sphere around the shading point within which the curvature will be estimated. Smaller values show finer details, while larger values give a smoother result.

#### Spread

Lower values of spread will shoot rays more vertically with respect to the surface, and the default value of 1 means that rays are shot in all directions. This acts as a threshold to remove unwanted small variations of the curvature.

#### Threshold

Consider only curvature above this normalized angle, with (0, 1) mapping to (0°, 180°). This parameter is useful to prune geometry "bubbles" behind the surface for convex curvature.

#### Bias

The bias will affect the falloff of the curvature. With the default of 0.5, the curvature sample importance decreases linearly with the distance to the shading point. Higher values will cover more and exaggerate the curvature, whereas smaller values will emphasize small details.

#### Multiply

Multiplies the curvature by this factor. Note that before this multiplication the output values range from 0 to 1, corresponding to angles in (0°, 90°).

#### Trace Set

For fine grained control of which geometry should be hit or avoided when sampling curvature, you can tag objects to be in a trace set. Put an existing trace set in this parameter to make the probe ray avoid or hit corresponding tagged geometry. You can control the avoidance behavior with the *Inclusive* parameter.

^{Right cube (below) has 'inclusive' Trace Set in Arnold attributes and shader}

#### Inclusive

When a trace set is *exclusive*, rays are traced against all geometry except the tagged nodes. When a trace set is *inclusive*, rays are traced against tagged nodes, but also against nodes that are not tagged at all.

#### Self Only

Limits curvature sampling to the object being shaded.

^{Further examples}