Nodegroups to ship with Blender 2.8x

I’ll propose my physically based PBR shader ‘mix modes’ such as ‘fill’ and ‘erode’ later today. They use the height map of two materials along with the shader of those materials and blend them based on some rules about the two height maps, then outputs the mixed shader and new height map.

I have found this very helpful for layering PBR materials. You can easily ‘fill in’ the crevasses of a rock material with dirt or ‘hack away’ at a coated metal with deep scratches and gouges.

The one technical improvement which would help with the usefulness of this shader is being able to see real-time displacement changes on geometry. I expect there are some significant issues to address here though since I believe BVH has to be recalculated.

1 Like

Yeah you are right - I changed it to output the masks separately instead with an additional height gradient. This way the result is the same - the node setup afterwards gets a bit more complicated though. Now you can still access the masks after the nodegroup to add occlusion or whatever.
This example isn’t very realistic of course, but if you don’t just mix simple diffuse shaders with it, i think it could be helpful.
terrain_mask_group



.blend File

1 Like

I would find this version more versatile. I like it!

1 Like

I think with all of these it is important to apply some software design principles, since in reality they aren’t a whole lot different.

These node groups should favour composability over extensive settings. The unix philosophy of doing one thing and doing it well applies here.

While this isn’t a necessity, having defined interfaces can help with interoperability. Blends should be from 0 to 1, if there are distances or other standard measurements involved, they should be specified in SI units or the appropriate unit for the job.

Input and output node types should represent the data they carry, while (purple) vectors and (yellow) colours can be used interchangably, I think these should have the correct type on the node group boundary for self-documentation. Values should not be stored in a colour, and you should not accept a colour then convert it to a value unless it is also being used as a colour.

Edit: @SimonStorl-Schulke I’m not talking about your node groups here, just as a general rule of thumb for future contributions from myself and others. Sorry, I forgot you have covered most of what I’ve pointed out at the top of the thread!

1 Like

Someone has written a nice addon to collect presets …
let’s start to collect many presets ^______^

2 Likes

Blender 2.8 - Procedural Fire In Under 9 Minutes by masterxeon1001