Worn edges texturing tricks from Neil Blevins

I wonder if that can be directly translated into Blender using pointiness attribute (not sure how to mask edges with noise texture after using pointiness):

http://www.neilblevins.com/cg_education/vertex_map_wear/vertex_map_wear.htm

Great article! Pointiness works but it is not curviature based. Ideally one needs python script to detect curviature and assign black/white vertex paint values such as here: https://vimeo.com/53471980 . After that attribute node can fetch that value and you can further multiply it by noise or some other textures.

Python should not be too difficult as you can easily select sharp edges already bpy.ops.mesh.edges_select_sharp(sharpness=…). Anyone up to it?

I did a weak imitation here

Nice! So how do we use it in a way that edges are masked with some procedural noise (or some tiling grunge map) texture ? I don’t recall if it’s possible with vertex colors :confused:

Mine uses procedural musgrave to mask part of it, you could use a similar approach with internal as well I think. My object there is using vertex dirt as a stencil between shaders there.

Can you mix a base normal map, and edge wear on a model and then bake out the new normal as a single map?

Yeah, if you have normal map for edge.

The only limitation I can see with baking is that your worn edges shader is then dependent on the resolution of a texture.

Ideally, we would have a way in Cycles to create a Vray-style edge shader that has little impact on performance and allows for deep coloring (which is harder than it looks in a pathtracer like Cycles).

In contrast, I would not mind seeing a few extra seconds in the pre-render stage for Cycles if it means allowing for a true distance parameter for the pointiness attribute (which then you can at least work around the lack of a true dirt shader by simply upping the mesh resolution).

I made a quick proof of concept what’s possible. Note that the addon doesn’t actually calculate the absolutely real curvature. The values depend also on edge length. I might get into it later if there’s need for it.


Ohh, that’s soo cool! Thanks!

I updated the addon to 1.1.0. It now normalized according to edge length and seems to remove a lot of the artifacts that the previous version had. Smoother surfaces that have bigger faces don’t now have the same curvature as edgier surfaces with smaller faces.



Looking really good, thank you for this

One more fun thing that you can do with curvatures is a inner glow type of effect, that some lamps and burning coals have.


The pointiness does not exactly the needed thing when the matter is about having thin worn edges on a sharp edged hard surface object. It just gives an ao like fading effect on the edges. The needed thing is having a way describing the sharp edges on the objects… something as the results that appear with freestyle but obtainable in shading. A line attribute with options as to the edges’ sharpness degree maybe. Such an attribute could be used as a function-mask between two shaders (as in the case of pointiness), the one combined with a texture, so that it can create thin worn edges on the sharp edges of the objects.