I'd like to create model of a ring with a relief for 3D printing. The relief should be a raised, but degrading text (like its very old and used).

I'd imagine to create a grayscale image and use the gray values as height information to extrude the outer surface of the ring, but don't see how this would work. A bump map doesn't help, because 3D printing needs real 3D structures.

Image to extrude the ring's surface

My questions:

  • Is it possible to do so and how?
  • If not, what would be the best way to achieve the effect?
  • 3
    $\begingroup$ use a displace modifier blender.org/manual/modeling/modifiers/deform/… $\endgroup$
    – user1853
    Mar 27, 2016 at 21:05
  • 3
    $\begingroup$ And make sure to subdivide the mesh for displacement to work. $\endgroup$
    – Mr Zak
    Mar 27, 2016 at 21:07
  • $\begingroup$ One more step: be sure to apply the displacement modifier to finalize your mesh for 3D printing. $\endgroup$
    – Rick Riggs
    Mar 28, 2016 at 2:44

2 Answers 2


You have the right idea! Adding "bump" doesn't change the geometry, it only gives the illusion of surface detail. So instead we need to use a Displace Modifier.

As others have stated, you need a sufficiently subdivided mesh and a carefully prepared displacement texture. I will go into some of the details of setting this up.

Here is an example result:

Example result of using a Displacement Modifier with a texture on a mesh

Type your text

You can create the text in whichever software you are most comfortable with. If you want to do this in Blender, the steps are as follows:

Add a Text Object, Tab into it, and type your message.

Set the Extrude value to give the text some Z depth.

Text Extrude setting

You can add Bevel to your text if you want, but adding some Blur later when compositing gives a similar result while requiring much less geometry.

Place your camera facing the text and set it to Orthographic mode. Set the Orthographic Scale to fit the text, with some extra padding.

Add a plane just behind your text that will represent the Z depth of 0 (flat).

Prepare a noise texture

This can be done in Blender, of course. Or you can use an image editor.

Noise texture

Composite the noise into your text

This also could be done in an image editor, but why not use Blender?

Here is an example. The Normalize and Invert nodes are a standard setup for grabbing Z depth with black as farthest and white as closest. The blur node is being used to round off the text edges. The color ramp partially flattens the noise to create parts of the text that won't be worn. Multiply is subtracting the dark parts of the noise from the already light text. This creates the indentation we want in the displacement map.

Text and noise compositing

Create a part of your mesh with dense, even geometry

Here is a grid of quads in the cylinder. Only add density to the region where the displacement is to be applied, otherwise you'll be looking at much larger file sizes and slowed Viewport performance.

A dense area of the mesh created for displacement

UV unwrap the dense region of your mesh

When UV unwrapping you will want to Hide all other geometry and use Follow Active Quads (Length mode). Scale the UV layout as needed, but keep it square in proportion to match your grid of quads.

UV layout


Here is what such a Modifier Stack might look like:

Modifier stack for displacement

Notice that Subdivisions for the View are set to a low value to keep the Viewport manageable, while for the Render they are set high. When your model is all done and ready to export, you will want to set the View Subdivisions to something high like 5 or 6 for maximum detail in your geometry and then Apply the Modifiers. (When Applied, Modifiers use the setting of the View, not the Render.)

Subdivision settings for View and Render

In this example the displacement relies on a UV map to get the texture coordinates, so in the Displace Modifier the Texture Coordinates should be set to "UV". If you only have one UV map on your mesh you don't need to specify the UV Map name, but it never hurts to do so.

Specifying UV coordinates

The value for "Midlevel" should be set to 0 in this sort of use case, because the black areas are considered "flat" - not displaced at all. The white areas on the other hand represent the areas of maximum displacement.

Midlevel set to zero

How far out should the maximum be? That is controlled by the Strength slider.

The Displace Modifier's Strength slider

If this is for 3D printing you will want to keep your object's shading Flat while you work so that you can see all the imperfections and address those issues before you print. If it is for rendering you can go ahead and use Smooth shading for better render results.

Shading - Smooth or Flat

Below is a link to a .blend that contains Scenes for:

  • Rendering the noise texture
  • Compositing a displacement map from the noise and text
  • Displacing a cylinder using that displacement texture


You can do this with a displacement modifier. A displacement modifier displaces the vertices based on the color of a texture.

For example, with a plane:

enter image description here

Subdivide it lots (more than in the picture)

enter image description here

Add your texture in the texture panel (the red and white checker tab)

enter image description here

Add the displacement modifier to your object. Choose your texture, and make sure to manipulate the strength value to your liking. You can use a vertex group to make the modifier affect only certain vertices.

enter image description here

The unpolished result. (Thanks to Rick Riggs for reminding to apply the modifier before 3D printing)


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .