Skip to content

Bevel, Extrude and Lighting

The two effects that make flat text look solid. Bevel raises each letter’s edge and lights it, Extrude gives the letters depth with lit side walls. Both are in the material’s Lighting group, and both can take their light from one object in the scene, so every title in a game shares the same light.

The demo's Metallic showcase: MECHA STRIKE FORCE with a reflective bevel and extruded sides
Gold letters with a lit bevel and a specular highlight
PropertyWhat it does
Bevel StyleClassic lights one side of each stroke and shades the other. Symmetric lights both sides of every stroke the same way, for an embossed look with no shadow side
Bevel SizeHow smooth the relief is. Higher values average a wider area, for rounder and softer bevels

How wide the bevel is comes from the font asset, not from Bevel Size: the relief covers the font’s padding, the band around each letter its atlas stores. A font asset with more padding gives a wider bevel. See Fonts and Font Assets.

PropertyWhat it does
Light SourceMaterial uses the values below. Global takes them from the scene’s Bevel Light Controller
Light AngleWhere the light comes from, in degrees around the text
Light ElevationHow high the light is. At 0 it skims the text and the far edges are fully dark. At 90 it shines straight at the text and every edge is lit, with no shadow

The light is set in the text’s own frame. A letter turned by a spline, a warp or a motion effect keeps the text’s light instead of turning its light with it.

Under Light Color, the lit edges:

PropertyWhat it does
Light BlendingHow the light color is applied: Multiply, Additive or Replace
Light ColorThe light’s color. Its alpha scales the light
Light CutoffWhere the lit band starts
Light Smoothness1 is a soft falloff, near 0 a hard edge, for a toon look
Light IntensityMultiplies Light Color

Under Shadow Color, the edges facing away, with the same Blending, Color, Cutoff and Smoothness.

The Bevel section set to Global with no controller in the scene, showing the warning and the Create Bevel Light Controller button

Three toggles under the light add surface detail. They only work on the bevel itself: the flat middle of each letter never takes a highlight.

PropertyWhat it does
Normal MapA normal map that adds texture to the bevel, such as scratches or hammered metal
Face AttenHow much of it shows on the letters
Outline AttenHow much of it shows on the outlines. Shown with Affect Outlines on
SpecularA highlight where the bevel catches the light
Specular ColorThe highlight’s color
ShininessHigher is a smaller, tighter highlight
Specular Cutoff, Specular SmoothnessShape the highlight. Smoothness 1 is soft, near 0 gives hard toon spots
IntensityThe highlight’s strength
ReflectionsA cubemap reflected in the bevel, for chrome and metal
Reflections MapThe cubemap
AttenuationHow strong the reflection is

Straight strokes sit at one slope, so a highlight runs along their whole length. Separate glints form on curves, where the edge turns through the light.

Off by default: the bevel stays on the letters and the outlines keep their flat color. On, the outlines get the bevel too, and letter and outline read as one continuous bevel.

Very wide outlines go flat in places with Affect Outlines on, on round parts and inside closed letters like O. That happens once Face Dilate plus the outline’s thickness passes about 1, the edge of what the font atlas stores.

White letters extruded toward the bottom right with orange sides
PropertyWhat it does
DepthHow deep the letters are, in font atlas pixels, so it scales with the letter
AngleWhich way the depth goes, in degrees. 270 is straight down
Side ColorThe color of the side walls
Letter Color TintHow much the sides take the letter’s own color. At 1, color tags and the typewriter’s Rainbow carry onto the sides
Depth ShadeDarkens the sides toward the back

Like the bevel’s light, the angle is set in the text’s frame, so every letter extrudes the same way even when a spline or a warp turns them.

An outside outline extrudes with its letter: the depth is cut from the letter plus its outlines.

PropertyWhat it does
Light SourceMaterial or Global, as for the bevel
Light Angle, Light ElevationThe light’s direction, as for the bevel
Light ColorThe sides facing the light
Shadow ColorThe sides facing away
Light Smoothness1 blends the two across the walls, near 0 splits them hard for a toon look

The side walls stand at right angles to the letters, so a light at elevation 90, shining straight at the text, leaves every wall halfway between Shadow Color and Light Color.

PropertyWhat it does
Outline ThicknessDraws an outline around the letter and its sides together
Outline ColorIts color

The section ends with a note when the outline reaches past the font’s padding, see Fonts and Font Assets.

The Extrude section of the material inspector

Deep extrusions reach into the next letter, and with text on a curve or a diagonal angle there is no drawing order that puts every side behind every letter. So while a material on the text has Extrude on, each letter gets a second copy that draws the sides and the drop shadows first, and the letters are drawn after all of them. It stays one draw call, but the text has twice the vertices. A text so long that its copies would pass TextMeshPro’s limit of 16383 quads gets no copies, and then draws no extrusion and no shadows.

This works within one text. Two separate texts close enough for their sides to reach into each other can still draw in the wrong order, see Troubleshooting.

The Bevel Light Controller lights every bevel and extrusion whose Light Source is Global, in every open scene. Change its angle and every title turns its light together.

To add one, set a material’s Light Source to Global and press Create Bevel Light Controller under it. That makes a Bevel Light Controller object in the open scene and selects it. Once there is one, the material shows Select Bevel Light Controller instead, and hides the values the controller now drives.

SectionProperties
Light Direction (Bevel and Extrude)Light Angle, Light Elevation
Light ColorLight Blending, Light Color, Light Cutoff, Light Smoothness, Light Intensity
Shadow ColorShadow Blending, Shadow Color, Shadow Cutoff, Shadow Smoothness
ExtrudeExtrude Light Color, Extrude Shadow Color, Extrude Light Smoothness
The Bevel Light Controller in the Inspector, with its four sections and R buttons

They work like the material properties of the same names, and each has an R button that resets it to its default. The defaults match a new material’s, so switching a material to Global on a fresh controller keeps its look.

What stays on the material in Global mode: for the bevel, Bevel Style, Bevel Size and the Normal Map, Specular, Reflections and Affect Outlines toggles (Specular uses the controller’s direction with its own color and shape); for Extrude, the shape, the side color and the outline.

  • One at a time. The shader reads a single light: with several controllers enabled, the last one enabled or edited drives it, and the controller’s inspector warns that there are more.
  • No controller, no problem. A Global material with no enabled controller falls back to its own values, and its inspector says so.
  • It animates. The controller sends its values every frame, so an Animator or a script can move the light at runtime: a light sweeping across every title at once.