Procedural materials tutorial — Substance in Unity
This guide is designed to briefly explain what Substance is, how to create new substance materials from a substance material asset, apply them to a mesh and edit parameters.
What are Substance Materials?
Substance materials are procedurally generated assets, from technology developed by Allegorithmic. A ‘substance’ is basically a set of maps, defining a whole material with all channels: Diffuse, Normal, Specular, Bump, etc. 3DS Max and Maya have substance support for rendering, but now with Unity implementation we can make use of them in real-time applications.
Why use Substance materials?
There are a number of reasons to use of procedural materials:
- Dynamically updateable in game
- Resolution independent
- Animation supported
- Tiny file size
- Really fast to create textures, especially bricks, tiles and other tileable surfaces, that are otherwise time consuming to generate from photographic source
- Fast to duplicate and create library of unique material
- They are cool
Where do I get Substance Materials?
The Asset Store in unity (Window > Asset Store) includes free and paid substance packages available to browse.
How do I use them?
To customise a substance material and apply in Unity follow these steps:
- Import or create a mesh onto which you want to apply materials;
- Make sure it is UV’d evenly, or as desired — use a checkerboard or dummy material (Currently unity cannot import subtance materials assigned in external packages)
- Create a fairly even topology, polygons spread to rule out kinks etc.
- Apply relevant smoothing as required
- Check FBX import settings for the Mesh, Select Materials Generation ‘Per Material’ esp if using multiple materials per object
- Drag object into hierarchy or viewport and save scene
- Find Substance material asset you want to use (the square substance icons)
- Select + to ‘Add substance from prototype’ or to create a substance material (spherical icon)
- Name the new material
- Apply to object by dragging directly onto the mesh in the viewport or with multi material meshes to the element (shown below)
- Edit the parameters for your material instances;
- Randomise seed to create variations on the patterns
- Adjust sliders for other parameters such as colour, dirt amount, normal strength or whatever your substance has exposed in the inspector
- Change shader if required to add reflections and other fx
- View the results in the viewport — can be useful to create shader spheres in your scene for representative lighting