PBR Base: This is just a basic breakdown of organizing materials through material functions as layers and consolidating parameters into their own custom node structures for better UI Layouts.
PBR Base: Organizing the material architecture through layers as functions. This structure allows for easy management of parameters and provides a 'standardized' layout for other material creations.
Albedo Layer: The basic Material Layer Format for our Albedo. The key boolean switch selects either our default color or our albedo texture path.
Albedo Layer: The organized parameter inputs using reroute nodes as 'local variables' for a cleaner graph. We have 2 special custom nodes that hold our categorized parameter inputs, either a common SHARED set or CUSTOM albedo set of parameters.
Albedo Layer: And finally, the core function of the Albedo Texture Layer. A Texture Sampler, a desaturation scalar, and a Tint Color, all collected in a simple custom node.
Albedo Layer: Default Color vs Enabled Albedo. We can select either the default color OR an albedo texture.
Albedo Layer: (Shared UV Settings): Unified or Split Tiling options - gives control over the X and Y coordinates.
Albedo Layer: (Shared UV Settings): Auto UV Scaling off/on - good for objects that share the same material instance, but may have different scale values - eg rock cliffs.
A mixed geo example of UV scaling.
Normal Layer: with Detail Normal Options
Normal Layer: similar to the Albedo layer setup, but with the new boolean option to enable detail normals.
Normal Layer: Again, a similar layer structure, but with the normal blend option IF detail normals are enabled.
Normal Layer: And a basic layout for getting the core normal values. The Detail normals have an additional control for smoothing with the AO Input.
PBR Mask Layer: A familiar layout for our PBR ORM parameter setup.
PBR Mask Layer: Similarly, the standard layer layout that takes in the material attributes then applies each of the PBR channels to the material attributes output.
PBR Mask Layer: At its core, it's a very basic parameter selection for choosing which RGBA channel you want to output
PBR Advanced Controls: similar to our previous parameter layouts but now its for each of the 4 PBR channels.
PBR Advanced Controls: with the standard layer layout we pass the material inputs into custom nodes that remap the values for more advance control.
PBR Advanced Controls: parameter remapping example. All the PBR channels are passed through these custom nodes so we have a clean parameter UI.
Modular Materials in Unreal: PBR Base with Advanced Controls.
I started a little blog series about creating modular materials in the unreal engine:
This is an example of the common controls you may want for a basic PBR Material setup, with each section of the material broken out into smaller material functions for easy iteration when working between teams. All these options cleanly layout parameters in the UI for artists to tweak their PBR material to the heart's content. But fair warning, while it is a modular and customizable setup, it does come at the cost of creating tons of shader variants and being a performance hit, so it's not exactly something you would want to ship in a release build. It's intended use is to allow artists to iterate design options and find their desired output so that TAs can hone the final shader design output.