scratches around relflection

I saw that in a lot of real world metal materials. and I wonder how can achive this in cycles:
As you can see, the scraches is showed just around a reflection of strong light source.
(Sorry of my bad enlish)

It can be done with a black and white bump/spec/scratch map. You feed that into a bump node, and you can also use it a bit for specularity control. In this version I created the big scratches with too thick of a brush, and the material needs work, but you get the idea.

Packed blend

I use only a small amount of displacement (thinner lines = finer scratches)

Blend link (w/o environment map):

Good tutorial on Anisotropic Shading, which I think is what you were asking about. Otherwise its just like the two above said, a bump map for the more random scratches.

No. You all didn’t understand. I will try to explain again: Glossy have relflection right? The scratches apear only around strong light source reflections, like the sun in the example. No around a certain point. if I will move the light source, the scratches will apear around diffrent point acording to the reflection point of the light source. (hope you got it… sory of my bad english)


Just to be clear: So, in your picture we are actually looking into a concave metal dish, like e. g. a salad bowl or the backside of an old hub cap?

Utilizing a scratches map, increase just slightly the roughness where the scratch is located. Scratches will be everywhere, but the increased roughness will make it more likely the bright object will be reflected rather than the darker surroundings.

Which is kind of the same deal as burnin shows (with displacement). I can see scratches everywhere in both his and your image, but appears “brighter” (in both) because those scratches reflect the bright object.

Unfortunatly the effect you’re looking for is not easy. the best i can think would be lots of anisotropic shaders, each with different tangents and masks, all added together. But it seems a nightmare to deal with this… maybe in osl can be easier to do it… :frowning:

here’s my sugestion in practice:

Probably it won’t look good for animations as the noise map is not fixed to the surface, (but in reality you normally just see each scratch just from one angle, so maybe it can work)

I’ve just used 8 directions, but you can add more. The scratches’ size can be controlled by the size value from the noise texture, and for the quantity just change the RGBCurve node. Changing the roughness and the anisotropy values in the anisotropic shader can lead you to some glossy stars. Just play with it and change it as you need.
Maybe you can even throw away the bump node, i think its effect is quite superfluous.

BrushedMetal.blend (564 KB)

edited: for the diffraction grating effect that you can see in your picture, i still haven’t found a good solution… :frowning:

Hi all. I did this scratched metal sometime ago:

It is completely procedural and you can find the explanation here.

Is this something along the lines you want?

If so, I’ll clean up the project and upload. The highlight on the sphere should give a basic idea what it’s all about, although I mix in some bumpmapping and normal maps. The actual scratches happen to be those in the post above this, just rendered out at various densities and noised up coordinates (to make them non straight). It’s a very nice procedural pattern, that (as usual) tend to be too slow (for me anyways). Better and more complex pattern generators in Cycles would have been much welcome, since it would speed things up (construction time and render time wise).

Other than that, Blender/Cycles doesn’t really support the concept of microgrooves very well.
Here is a paper on microgrooves, scratches and so on. Maybe some day in blender? :slight_smile:

Again, I’m not sure if this is what you’re looking for, and my approach might not work well in all circumstances.

secrop-- You were the closenst. The idea works technicaly thoug it is not looking as good as I wanted. I mean the scratches are around the reflection point but they are not looking as in my picture.
I stil need to understand what exactlly you did there any way…
I don’t know what about you, but as I see until now - It seems like cycles can’t make this effect! do someone saw a CGI work with this material before? If so, what is the render engine?

As far as i know, there’s no algorithm for this kind of effect in any physically based render. :frowning:
Until now, i’ve only seen textured based materials for this specific reflection…
Maybe i can improve my first shader… I’ve some ideas that may turn it a bit faster, instead of using a huge amount of different Anisotropic shaders, for each direction…

Thank you. I will try to take a closer look photo of the bowl. maybe it will help.

A video might be better. I just have a hard time understanding how random scratches would form circular highlights. Not saying it isn’t so, just that I’ve never observed it myself. And your initial image does to me indicate productional grains/lay pattern (circular grooves) mixed in with wear and tear scratches. What material is it, what surface finish is it, and what surface roughness would you estimate (not sure it would help, but…)?

@Secrop: I like the material setup, but I’m not following what’s actually going on. I don’t think I have ever made use of vector cross products myself, other than happy little accidents. :slight_smile:

@CarlG, this is something very common, not only with metals, but also in other materials like plastic, glass, etc. Normally you’ll see it better when the light that’s shinning is very strong. The great problem for making this material is that it lies between a very localized anisotropy and a simple gloss with roughness. Statistically (because cycles loves statistics!) It looks as a gloss from the distance, and if you look very close you can define that each scratch can be represented with an anisotropic model. But in the middle you get the image ShacharHarshuv posted, and there’s no mathematical model to represent that. (that i know, at least).

About the shader i’ve posted,

The small nodegroup, is just a 2d vector creator, using a sine and a cosine of an angle to make the coordinates.

The cross product, between two vectors returns a vector perpendicular to both of the vectors. If one of the vectors is the surface normal, than the result is a tangent vector, but rotated around the normal, to be perpendicular to the other given vector.
This resulted tangent is what i use as the main ‘tangent’ for the anisotropic node, and as the coordinate system for the noise node which gives me those streched lines.

What i tried to simplify a bit, was to group every scratch with the same direction in just one anisotropic node, instead of calculating each scratch on its own. (that is what the noise texture is doing)
But this is still a lot for cycles, as we need different directions, and therefore, lots of anisotropic shaders. :frowning:

One idea that I came to mind, to simplify things even further, was to make each anisotropic shader to represent more than just one direction, so that we need a smaller number of them… But i haven’t spent any time testing this… It might work, but for now it’s just theory.

Found It! (go to 0:22)
someone has program it, for cycles! And it’s looking great. Now, how can I use it?

1 Like

I don’t know how they did it in the movie, but i remembered that Michel J. Anders (aka varkenvarken) wrote once this osl ‘Hagelslag’ script that could be used for scratches. I did a very tiny modification to the script so it also outputs the tangent vector corresponding to each scratch, that can be plug into the anisotropic shader. And the results are quite similar.

scratches.blend (431 KB)

1 Like

Hey, this may be useful for you, even if it’s not Blender:

Anyone saw this:Siggraph 2014: Rendering Glints on High-Resolution Normal-Mapped Specular Surfaces
Papers here:
Would it be viable with cycles?