Substance Painter - How (and why) to create a Material Preset
In this tutorial we will see how to create a Material Preset in Substance Painter, or how to define our Fill Layer (setting the Textures for Base Color, Normal and the other information channels) and save it in the Materials section of the Shelf, so that it can be used in other Substance sessions.
The tutorial was created with the 2019 version of Substance Painter but the topics covered are also valid in other versions of the program; it is an interrmediate level tutorial, which gives a note of some concepts covered in the videotutorials previously published on my channel.
Ok, we said that we want to create a Material Preset, in such a way as to find a single Material element, with a single level (and not a group of elements, possibly provided with filters, levels or generators based on textures, as happens with Smart Materials); the intention is to create such an element and drag it into the stack of layers of our project, to apply it entirely or in part (through layer masks) to our objects ...
… before proceeding, however, let's think for a moment on WHY we should do such a thing, given that we can create Smart Materials that, at least at first, seem to be decidedly more flexible (in fact, Smart Materials can include various Layers and Materials, in some cases even with filters, or map-based generators created with Bake or other tools).
The first reason that comes to my mind to create a simple Material Preset is the need to create a material starting from external Textures images; for example, Base Color, Normal and Roughness images obtained from photographs, scans or, why not, made manually, by yourself or by others (and perhaps it will be Seamless Textures, without unstitching, which can be repeated several times on a surface without giving rise to obvious seams) ...
In this and other cases there is no need to resort to a Smart Material; we can just:
- import the Textures in the Substance session (from File → import resources, specifying the type "Texture" for the files and importing in "Current Session", as there is no need to save THESE FILES in the Shelf, since we will store a Material);
- create an empty Fill Layer, selecting only the fields that interest us in the “Properties - Fill” section of the Tool Shelf; I use the PBR Metallic workflow, so I am selecting Color, Metal, Roughness, Normal, Height and Opacity, the latter just to tell Substance that my material, in this example, is not transparent;
- drag the Textures imported a little while ago into the Fill Layer (in the corresponding boxes, of course) or set values to be applied uniformly to the entire surface (for example, in my case, the value 1 for the Opacity parameter) ...
- … and, finally, right-click on an empty area of the Properties - Fill tab and then click on “Create Material Preset” in the window that will appear on the screen: done!
The Material thus created will be available immediately in the Materials section of the Shelf and can be used, like any other Substance Base Material, in this and other projects.
A Material can also be created starting from a Smart Material, thus obtaining a "packed" version of the same (a bit like it happens in the drawing and photo editing programs by "collapsing" the stack of layers, merging them into a single layer); this can be useful, for example, to save computing resources (and even disk space in the project file, in fact) in very complex scenes ... and here is the second reason covered in this tutorial, for which I will use an example a little more complex.
Suppose we have many individual 3D objects available, each with its Substance project (containing in turn one or more materials and Smart Materials) and we want to compact everything into a single object with a single Texture Set; this is an operation that I have personally done several times, combining many Assets into single elements (or, in any case, with a single Textures Set), to use fewer resources in real-time applications.
In this case, I start with a 3D graphics program (Blender, in my case), with these operations: I...
- insert the 3D models in a Blender scene, remove all the original materials and assign a new material to the objects (the same material, shared by all);
- subsequently, I resize and move the UV unstitches of these objects so that they fit into a single UV space, in order not to create overlaps; in this phase, it is advisable to resize the various UV maps proportionally to the size of the objects in the scene, so for example a pen can occupy a considerably smaller UV surface than that dedicated, for example, to a table;
- before exporting, I decide whether to merge all the objects into one or whether to leave them separate (but by letting them share the same UV space and the same Material, anyway); the choice is dictated by the use that I will have to make of this set of objects: if, for example, in the final application the whole set will be in the background (and it will never happen that you have to move, rotate or remove the elements individually), then I merge all the objects into a single Object, otherwise I leave them as they are;
- finally, I export everything to disk in FBX format.
In Substance Painter, now, I will have to proceed in several stages, because first I will have to create Materials for each individual object, as seen in the first example of this tutorial, after which I will have to insert these Materials into the project and transform them to adapt them to the new UV Layout.
The first phase of the work can be a bit boring, as I will have to open every single Substance project and export the set of PBR Metallic Textures as images on disk, in a temporary folder; this will have to be done for each project, but there is a positive note: when I create the Material Preset starting from these Textures, I will do it once and I will find it in the library also in the future, so this operation must basically be done once for each Asset in your library!
Once you have made all the exports you need, you can finally create a new Substance project with the set that we want to texturize and which will be equipped with a single Material, obtained by assigning the various materials (resized, moved and without UV Wrap repetition, in the Properties - Fill) to parts of the UV Layout.
Even if the various layers and effects of the original materials of the individual objects are no longer available, we can still add filters and other effects to these Fill Layers; in the end, we will be able to export the whole Texture Set, obtaining a model and the Textures images for a single material.
Well, that's all for this videotutorial! See you soon!