Bevel
Bevel turns a mask or grayscale shape into a beveled height ramp and a matching normal map. Wire a white shape on black into the Shape input and take the Height and Normal outputs into a Relight node, a 3D Render material, or an export. A color image is read through Mask From (Luminance by default).
It is built for trimsheets: every distance is a real pixel count or a percentage of the image, the normal’s steepness is an exact angle, and the shape can wrap across the sheet’s seam.
It reads your antialiasing
Section titled “It reads your antialiasing”A bevel measured from a thresholded mask inherits the mask’s pixel grid: a curved edge becomes a staircase, and the normal map shows radial streaks around a circle. No bit depth fixes that, because the defect is in the raster boundary.
Bevel never thresholds. It reads the fractional coverage of the edge pixels as the boundary’s sub-pixel position. The height at an edge pixel is the average over the part of the pixel the shape covers, and the normal comes from the exact profile slope at that distance rather than from a derivative of the height raster. The normal’s direction is also smoothed along the outline, so a smooth curve shows no radial streaks or fans, while creases and tips keep their own direction. A smooth input gives a smooth bevel, on curves, on creases, and at the rim.
- Feed it antialiased shapes. Output from Shape or Text, a soft-edged brush, or an imported vector render carries the sub-pixel information Bevel reads. A hard-edged pixel-art shape has none, so its bevel is exactly as stepped as the shape. That is the correct result.
- Do not blur the shape to smooth the bevel. Blurring moves the boundary and rounds off corners you meant to keep. A blurred mask still works (the edge is wherever coverage crosses Threshold), but smoothness never needs it.
Result
Section titled “Result”Result picks what the Height output carries; the Normal output is always derived from it.
- Bevel (default) is the shaped ramp. Offset is a flat plateau at zero height before the ramp starts, Width is how far the ramp takes to reach full Height, and Profile is the cross-section: Linear (a straight chamfer), Smooth (an S-curve with no creases), Rounded (a convex quarter circle), Ridge (a peak at the middle of Width), Groove (a valley), or Custom (an editable curve). Curve Interp makes a Custom curve a spline (Smooth) or straight segments (Linear), where every control point is a crease. Switching from a preset to Custom seeds the curve with that preset’s shape, in one undo step.
- Distance is the raw distance field. Distance Units is Normalized (distance divided by Range, so Range reads as white) or Pixels (the actual, unbounded distance). Pixels needs a 32-bit (Float) document; in an 8-bit document the node warns rather than silently clipping.
- Band is an antialiased ring between Start and End, with optional extra Softness on each edge. The band always keeps at least a one-pixel soft edge.
Side applies to every result:
- Inside grows the distance into the shape, the usual bevel.
- Outside puts the bevel around the shape.
- Both is unsigned distance on either side.
- Signed is positive inside and negative outside, so Start, End, and Offset can straddle the boundary.
Pixels or percent
Section titled “Pixels or percent”Every distance control (Range, Start, End, Softness, Offset, Width) has a px / % toggle. Percent is measured against the image’s shorter side, as on every px / % slider in ArcBrush, so a bevel authored at 2% survives an upstream resize. Dragging reaches 512 px or 25%; type a value to go up to 2048 px.
Normal map
Section titled “Normal map”Normal Mode decides how steepness is set.
- Slope (default) is an exact angle in degrees: a fully formed ramp reads at that angle whatever Width and Height are, so 45 degrees on one strip is 45 degrees on every strip of the sheet.
- Intensity is a freeform multiplier on the height gradient, like the Normal Map node’s Strength.
Method picks the derivative kernel that reads the distance field’s direction. Invert Y flips the green channel for DirectX-convention engines such as Unreal; leave it off for OpenGL-convention targets such as Unity, Godot, and glTF. The Normal output is packed like the Normal Map node’s, in 8-bit and float documents alike, so Relight reads it with no setup.
Tiling
Section titled “Tiling”Tiling wraps the shape on the Horizontal axis, the Vertical axis, or Both, so a shape crossing the seam is beveled as one continuous shape. A trimsheet usually tiles on one axis and cuts hard on the other, which is why the axes are separate. With None, the canvas edge is a hard boundary and a shape touching it is beveled as if cut there.
Parameters
Section titled “Parameters”Pins
Bevel
What the height output carries.
- Distance: the raw distance from the shape boundary.
- Band: an antialiased ring between Start and End.
- Bevel: the shaped bevel ramp.
Which side of the shape boundary is measured.
- Inside: distance grows into the shape; outside reads zero.
- Outside: distance grows away from the shape; inside reads zero.
- Both: distance to the boundary on either side.
- Signed: positive inside, negative outside, so a band or bevel can straddle the boundary.
Distance
What one unit of the output means.
- Pixels: the actual distance in pixels. Needs 32-bit (Float) Mode.
- Normalized: the distance divided by Range, so Range reads as white.
The distance that reads as full white when Distance Units is Normalized. With Side set to Signed, the boundary sits at midgray in an 8-bit document and at 0 in 32-bit (Float) Mode
Band
Inner edge of the ring, as a distance from the boundary
Outer edge of the ring, as a distance from the boundary. At or below Start the band is empty
Extra fade width on each edge of the band. At 0 the edge is still antialiased over one pixel
Profile
The cross-section shape applied across Width.
- Linear: a straight ramp.
- Smooth: an S-curve with no creases.
- Rounded: a convex quarter circle.
- Ridge: rises to a peak mid-Width, then falls to zero.
- Groove: falls to a valley mid-Width, then rises to full.
- Custom: the editable Profile Curve.
The custom cross-section. Left to right is the position across Width, bottom to top is height
How Profile Curve runs between its control points.
- Smooth: a smooth curve with no creases in the normal.
- Linear: straight segments, so each point is a crease. Use it for chamfers and faceted edges.
Flat distance from the boundary before the ramp begins. It does not move the boundary itself
Distance the ramp takes, starting at Offset, to reach full Height
Height at the top of the ramp. 1 = full white
Normal Map
How the steepness of the normal output is set.
- Slope: an exact angle in degrees, whatever Width and Height are, so a bevel is repeatable across a sheet.
- Intensity: a freeform multiplier, like the Normal Map node's Strength.
The angle, in degrees, a fully formed ramp makes with the flat surface. 45 is the trimsheet standard
Multiplier on the slope of the height. Higher values exaggerate the surface detail
How the slope of the height is measured.
- Sobel 3x3: slightly smoothed. The usual choice.
- Scharr 3x3: more even on diagonals.
- Central Difference: no smoothing, sharpest response.
Flip the normal map's green (Y) channel.
- Off (OpenGL, +Y up): the default. Blender, Unity, Godot and glTF.
- On (DirectX, -Y down): Unreal and 3ds Max.
Mask
Which axes wrap, so a shape crossing the seam is beveled as one continuous shape.
- None: the canvas edge is a hard boundary on both axes.
- Horizontal / Vertical: that axis wraps, the other cuts. The usual trimsheet setup.
- Both: the image tiles in every direction.
Coverage level that separates inside from outside. An antialiased edge keeps its sub-pixel position, so the bevel stays smooth
How the connected color image is read as a mask
Usage Tips
Section titled “Usage Tips”- Slope at 45 degrees is the trimsheet standard, and it stays 45 degrees however you change Width and Height.
- Leave Threshold at 0.5 for antialiased input. Move it only when a soft or blurred mask’s edge should sit at a different level.
- A shape that covers nothing warns on the node (
Nothing in the shape reaches Threshold, so there is nothing to bevel. Lower Threshold.): lower Threshold, or read a dark color with another Mask From channel. - A shape that covers everything bevels in from the image border, which is what an opaque trim read with Mask From Alpha should do, so with Side Inside the node says nothing. Both and Signed give the same result as Inside, with a note under Side. Side Outside and Tiling Both leave no edge to bevel, and warn on the node.
- Reach for Mask Refine when you are reshaping the mask itself, and Bevel when the ring must sit an exact number of pixels from an antialiased edge.
- Search the node library for “bevel”, “distance”, “sdf”, or “chamfer”.