Skip to content

Master material

Unless you pick your own master, Material Smith makes every material instance a child of M_Smith_Standard, a master material it creates in your project. It is an ordinary material asset built from standard material nodes, so your instances depend on it, not on the plugin.

  • Folder: the Master Material Folder setting, /Game/MaterialSmith by default.
  • When: the first time Create needs it, that is when the Master option is empty and the master does not exist yet. The preview only announces it: The master material M_Smith_Standard will be created in /Game/MaterialSmith. From Python, get_master_material() creates it too.
  • Saving: the master and its default textures are saved right away, even when Save assets is off.
  • Usage: the Skeletal Mesh and Instanced Static Meshes usage flags are turned on when it is created, so assigning instances to skeletal meshes or foliage doesn’t have to change the master later.

If an asset that is not a material already uses the name, Material Smith reports … exists but is not a material. Rename it or pick another Master Material Folder in Project Settings.

The parameters are in numbered groups, so the material instance editor lists them in this order. Every static switch is off in the master; Material Smith turns on the ones a set needs in each instance.

Parameter Type Default Notes
Use Base Color Map Static switch Off Off: the base color is Base Color Tint alone.
Base Color Map Texture, Color sampler Engine default texture Multiplied by Base Color Tint.
Base Color Tint Vector White
Parameter Type Default Notes
Use Normal Map Static switch Off Off: a flat normal.
Normal Map Texture, Normal sampler Engine default normal map
Normal Strength Scalar 1 (slider 0–2) Scales the X and Y of the normal.
Parameter Type Default Notes
Use Roughness Map Static switch Off Off: the Roughness value is used.
Roughness Map Texture, Alpha sampler T_Smith_Default_Mask Red channel.
Roughness Scalar 0.5 Used without a roughness map.
Roughness From Packed Map Static switch Off Reads roughness from Packed Map instead of Roughness Map.
Invert Roughness (Glossiness) Static switch Off Uses 1 − value, for glossiness or smoothness maps.
Roughness Min Scalar 0 The map value is remapped to the range Roughness Min to Roughness Max.
Roughness Max Scalar 1
Parameter Type Default Notes
Use Metallic Map Static switch Off Off: the Metallic value is used.
Metallic Map Texture, Alpha sampler T_Smith_Default_Mask Red channel.
Metallic Scalar 0 Used without a metallic map.
Metallic From Packed Map Static switch Off Reads metallic from Packed Map.
Metallic Intensity Scalar 1 Multiplies the map value.
Parameter Type Default Notes
Use Ambient Occlusion Map Static switch Off Off: no occlusion (1).
Ambient Occlusion Map Texture, Alpha sampler T_Smith_Default_Mask Red channel.
Ambient Occlusion From Packed Map Static switch Off Reads occlusion from Packed Map.
Ambient Occlusion Strength Scalar 1 Blends from no occlusion (0) to the full map value (1).
Parameter Type Default Notes
Packed Map Texture, Masks sampler T_Smith_Default_Packed One texture with several data maps (ORM, MRA …).
Packed AO Channel Vector (1, 0, 0, 0): red Picks the channel that holds ambient occlusion.
Packed Roughness Channel Vector (0, 1, 0, 0): green Picks the roughness channel.
Packed Metallic Channel Vector (0, 0, 1, 0): blue Picks the metallic channel.
Packed Opacity Channel Vector (0, 0, 0, 1): alpha Picks the opacity channel.

Each channel parameter has 1 in the channel to read and 0 in the others (red, green, blue, alpha). Material Smith sets them from the channel layout of the set’s packed texture, so ORM, MRA, RMA and ORD textures all work with the same master. Height is not read from packed textures: the blue channel of an ORD texture is not used.

Parameter Type Default Notes
Use Emissive Map Static switch Off Off: no emission (black).
Emissive Map Texture, Color sampler Engine default texture Multiplied by Emissive Color and Emissive Intensity.
Emissive Color Vector White
Emissive Intensity Scalar 1 (slider 0–50)
Parameter Type Default Notes
Use Opacity Map Static switch Off Off: fully opaque (1).
Opacity Map Texture, Alpha sampler T_Smith_Default_Mask Red channel.
Opacity From Packed Map Static switch Off Reads opacity from Packed Map.
Opacity From Base Color Alpha Static switch Off Reads opacity from the alpha channel of Base Color Map. Takes effect while Use Opacity Map is on.
Opacity Strength Scalar 1 Multiplies the opacity.

The result drives both the Opacity and the Opacity Mask input of the material. The master itself is opaque; Material Smith gives instances with an opacity map a Masked blend mode override.

Parameter Type Default Notes
Use Height Map (Parallax) Static switch Off On: the texture coordinates of every map are offset with a Bump Offset node (reference plane 0.5).
Height Map Texture, Alpha sampler T_Smith_Default_Mask Red channel.
Height Ratio Scalar 0.02 (slider 0–0.2) Strength of the parallax effect.

The height map is only used for parallax. It is assigned to every instance whose set has one, but the switch is turned on only with the Parallax for height maps option.

Parameter Type Default Notes
UV Tiling Vector (1, 1, 0, 0) Red and green scale U and V.
UV Offset Vector (0, 0, 0, 0) Red and green offset U and V.

All maps use the same texture coordinates: UV channel 0, multiplied by UV Tiling, plus UV Offset, and then the parallax offset if it is on.

On every run, Material Smith sets the texture parameters of the detected maps and these switches in the instance:

Switch On when
Use Base Color Map The set has a base color map.
Use Normal Map The set has a normal map.
Use Emissive Map The set has an emissive map.
Use Height Map (Parallax) The set has a height map and Parallax for height maps is on.
Use Roughness Map, Use Metallic Map, Use Ambient Occlusion Map, Use Opacity Map The set has a separate map for it, or a packed texture with that channel.
Roughness From Packed Map, Metallic From Packed Map, Ambient Occlusion From Packed Map, Opacity From Packed Map The set has no separate map for it, but its packed texture has the channel. The matching Packed … Channel parameter is set to that channel.
Invert Roughness (Glossiness) The roughness map is marked as glossiness.

A separate map wins over a packed channel. Opacity From Base Color Alpha is never turned on by Material Smith; it is turned off when the set has an opacity map and otherwise left as it is.

Only the switches a set needs are on, so the instance compiles only the parts of the graph it uses.

M_Smith_Standard_VT has the same graph and parameters with virtual texture samplers (Virtual Color, Virtual Normal, Virtual Masks, Virtual Alpha). It is created and used automatically when every map of a set (except Not Used textures) already streams as a virtual texture.

If only some maps of a set are virtual textures, the regular master is used and What will happen says Some maps are virtual textures and some are not. The regular master is used and virtual texture streaming is turned off for them. With Fix texture settings on, virtual texture streaming is then turned off for those textures. See Texture settings.

Unreal checks the default texture of every texture parameter against its sampler type, even when an instance overrides the texture. A parameter whose default texture doesn’t fit breaks every instance of the material. Each parameter of the master therefore has a default texture that fits:

Sampler Regular master Virtual texture master
Color (Base Color Map, Emissive Map) /Engine/EngineResources/DefaultTexture T_Smith_Default_Color_VT
Normal (Normal Map) /Engine/EngineMaterials/DefaultNormal T_Smith_Default_Normal_VT
Masks (Packed Map) T_Smith_Default_Packed T_Smith_Default_Packed_VT
Alpha (Roughness, Metallic, Ambient Occlusion, Opacity and Height Map) T_Smith_Default_Mask T_Smith_Default_Mask_VT

The T_Smith_Default_* textures are created in the Textures subfolder of the master’s folder (/Game/MaterialSmith/Textures) when they don’t exist yet; existing ones are reused. If one of the engine textures doesn’t fit its sampler type, T_Smith_Default_Color or T_Smith_Default_Normal is created instead.

  • T_Smith_Default_Packed: no occlusion, medium roughness, not metallic (red 255, green 128, blue 0), linear, Masks compression, no alpha.
  • T_Smith_Default_Mask: white, linear, Alpha compression.
  • The regular textures are 8 × 8 pixels; the virtual texture ones are 256 × 256 so they fill a whole virtual texture tile.

The master and its default textures are regular assets of your project. You can open, edit and version them like any other material.

  • Editing: Material Smith never rebuilds an existing master. Keep the parameter names listed above: instances are filled by those names.
  • Moving or renaming: Material Smith looks for M_Smith_Standard (and M_Smith_Standard_VT) by name in the Master Material Folder. After moving the master, set Master Material Folder to the new folder, otherwise the next run creates a new master in the old one. Default textures are looked for in the Textures subfolder of that folder.
  • Picking it explicitly: a renamed copy of the master, or an instance of it, can be picked in Options > Master or Default Master. Material Smith recognizes it as a Material Smith master by its Packed AO Channel and Packed Roughness Channel parameters and fills it the same way.
  • Starting fresh: set Master Material Folder to an empty folder. The next run creates a new master there, and instances updated by that run are re-parented to it.
  • Replacing it: pick your own material in Options > Master, or set Default Master in Project Settings. See Custom master materials.