Worn edges material with Cycles (2.74) - how ?

I recall Blender 2.74 has a nice feature to create worn edges / creases on objects procedurally. Are there any tutorials explaining how to make that?

I simply need to have basic diffuse material (most likely either flat color or an image) as base and similar material for worn edges / creases. And I’d need to bake out resulting diffuse map.

How do I go about all that? Thanks!

What do you mean? The new “Pointiness” feature?

Left: Just plain grey diffuse color / Right: “Pointiness” used to drive diffuse color


Nodes:


Of course you could also use the “Pointiness” to drive a mix factor between different shaders or to control the roughness of a glossy shader or… You get the idea.

The effect of the “Pointiness” is quite subtle, you will most likely need a ColorRamp to increase the contrast.

Thanks! So I tried it and I must say Blender failed me again (to a degree):

Hi-poly with Sub-Surf not applied (sucks because it’s extremely inaccurate):


Hi-poly with Sub-Surf applied (sucks because I can not longer modify the mesh):


And pointiness attribute doesn’t work on low poly meshes :confused:

Is there any better way of procedurally generating worn edges in low poly meshes ?

The reason you’re getting such results is because it’s done as a per-vertex approach (the attribute values are baked in before the render starts).

The advantage is that it’s very fast and is essentially a free effect performance-wise. The downside is that it’s dependent on geometry (but true curvature calculation is quite slow and the method used in the Octane engine makes it difficult for really deep mask coloration).

That’s why I am wondering if there is another way that can be baked with finer results.

as someone mentioned before pointiness is based off vertices… if you want finer resolution to the pointiness output, add more verts.

“…Because you’re cookin’ 'em wrong” ©

It’s not a Blender problem, it’s a baking problem :slight_smile: Smooth interpolated normals on the low-poly are to blame for this result. If you want your final low-poly to be smooth-shaded, it’ll need to have supporting edges around the corners for a better bake (and a better look). If, however, you’re planning on making it flat-shaded, then you can bake via the intermediate “mid”-poly: a low-poly with supporting edges.

Also note that baking as-is will give you artifacting on the corners, due to ray misses. Ideally, you’d need to tweak the ray distance, or better yet, use a cage to bake such corners.

Attached is a blend illustrating baking using the “mid”-poly helper. I didn’t use a cage, so you’ll see some artifacts on the indent’s inner corners.

Attachments

bake_pointiness.blend (318 KB)

Looking at the gun model - a nice enhancement to this attribute would be to indicate how convex or concave the “pointiness” is.

For wear - you want it on the convex points, whereas for dirt you want it on the concave points. If the attribute output a value that ranged from -1 for concave through zero for flat and +1 for convex - it would give a lot more control.

On the gun model - there is wear both on the convex and concave pointy bits.

Thanks, I’ll test .blends after I get off work.

I guess could live with the results on my second image (although maybe when applied in practice I will not think so) if I didn’t have to apply Subsurf on high-poly.

The point I am making is I need efficient workflow. Having to apply subsurf or having mid-poly helper or higher poly low-poly models is not efficient workflow. Otherwise I might as well stick with my buddy GIMP and use inverted Blue channel of the normal map for edge mask (or decompose normal map through nodes if possible).

:frowning:

EDIT: http://www.blenderartists.org/forum/showthread.php?291104-AddOn-Create-Worn-Edges-Map&p=2405511&viewfull=1#post2405511 I wonder if this requires supporting edges on low poly too (and if it still works on 2.74 and bakable)

You can already separate the effect between convex and concave surfaces, the midpoint between them is 0.5 due to the idea of making it easier to use.