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:
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.
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.
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.
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.
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.
Here is what such a Modifier Stack might look like:
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.)
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.
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.
How far out should the maximum be? That is controlled by the 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.
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