The single nodes (shaders, textures, input, or whatever) can be grouped together and this is probably one of the best optimizations we can use to organize our workflow.
Thanks to node groups it's easy to store complex materials in ready-to-use libraries. It's possible to share or reuse them in other files or they can also be used to build handy shader interfaces, for easier tweaking of a material properties.
1301OS_02_09_basicshader.blend
:The node group is still showing the two BSDF outputs (actually connected to the input sockets of the Mix Shader node), the name data block and the Fake User button; this last one is the same as in Blender Internal, it prevents the user count from ever becoming zero and therefore any non-assigned material to be deleted when you close Blender or the file. By assigning the Fake User to a material you are sure that it will not be deleted. Particularly handy when you build your material library.
I think you get the picture: basically any input or output socket of the nodes wrapped in a group can be piped to the outside of the node group itself to be tweaked; for example, we could also have made an input socket for the Diffuse roughness, or better, an input for the Fac of the inner Mix Shader, to change the reflectivity of the shader.
Another good thing about a node group is that you can make (Shift + D) instances of that node. Note that as you modify the inner structure of a node group, the modifications get reflected in all the group instances; conversely, the outer (exposed) values on the node group interface are local to each instance and can be individually tweaked.
Every newly created node group is available both in the Shift + A | Add menu and in the slots in the Material window of the Properties panel as well, under the voice Group, to be added to the network on-the-fly.
To remove a node group select it and press Alt + G; this will break the node envelope, keeping the content intact and connected.
3.133.129.97