How to make this watchmaking metal finish (perlage)

I am working on a mechanical watch model and I would like to finish some of the surfaces with the traditional perlage pattern, like the image below. Any ideas?


(Image credit: https://monochrome-watches.com/a-technical-perspective-all-you-want-to-know-about-finishing-in-haute-horlogerie/)

You probably be best just trying to achieve that with a bump or normal map. I only spent a couple of minutes in Photoshop so it’s a bit rough and ready.

  1. Use filter>noise to generate some noise
  2. Use blur>radial blur on it
  3. Then use selection tools and feathering until you have a single “piece”… i.e. a feathered half circle with the radial pattern.
  4. Scale appropriately and duplicate to give yourself the required overlapping pattern.

Obviously it would take a bit more time and effort to create a seamless pattern but it wouldn’t take much

just find a high res pic for this pattern and use it as a UV map

may be one like this

radial metal pattern - Bing images

happy bl

I was wondering if this could be done procedurally in Blender. A Voronoi (Smooth F1, Random 0.00) plugged into a Principled BSDF’s Anisotropic Rotation maybe? If that made the right circular effect then some mix noding to get the layering . . .


AnisotropicPatternTest005.blend (1.7 MB)

Nope! :scream:

This is how far I got (Cycles):

The tricky part is in the “GetPerlageCenter” node, though, which computes the “active center” of the concentric rings.

perlage.blend (172.9 KB)

how bout this one

happy bl

another way would be to make a 3D model for the pattern
to get more 3D effect and then bake it to a normal map in blender

then can be re use as a UV map

happy bl

I find that on things like this a quick grab of a texture image, and then run it through Materialize for the rest of the maps does a real good job…simple and quick…

I like it, but I’ve modified it to use voronoi → separate HVS.H → Subtract 0.5 → Multiply 0.02 to drive rotation. But same problem as I have with all my anisotropics, how do you manipulate/create tangents in such a way it conforms to orientation? All my stuff break apart when mapped (using UVs) to front and side faces.

Yeah, I think I’d have to update the tangent computation for my node setup to work. Normal cross product with coordinate minus center should work.

Edit: I just realized that the situation is more complicated: the anisotropic calculations requires normal vectors in global/object space, but if the texture is evaluated in UV coordinates, the connection to global coordinates is lost…

Edit 2: I think using the Tangent node set to UV makes it possible to compute a correct tangent in global coordinates. The output of the Subtract node in the lower left is the vector pointing from the perlage center to the surface point in UV coordinates I took the output of the tangent node to be one basis vector, the normal vector to be the second and computed the third basis vector with the cross product. I interpreted the UV coordinates to be the first and third coordinates in this coordinate system (the coordinate related to the normal direction being zero). I have no idea whether this is correct, but it works for anisotropy:



perlage_2.blend (174.6 KB)

1 Like

Thanks. Downloaded. Will give it a try. This is something I’ve struggled like crazy with on Secrop’s various anisotropic shaders as well.

Oh wow. Yeah this is looking extremely promising. All objects in the same mesh.
Left - no bumps. Right - some bumps.
Top - no rotation modulation. Bottom - maximum rotation modulation (0, 0.02, 0.05 I think).
Added the tangent calculation to Secrop’s aniso material and it worked very well.