Material Types
Materials describe how a modelled surface will appear in the game. They specify a range of configurations and resources including classic material properties, textures and shaders. Each Material is an instance of a particular preset Material Type, from the selection described on this page.
This page describes content format v4.6 and assumes that the FBX file format is used as a data source for any meshes.
Contents |
Material Naming
A material name consists of a creator-supplied given name and a material type suffix. The material type is one of a set of supported types defined below, eg. 'm.onetex'. The material type is manually appended to the name of the material within the creation program eg. Autodesk 3ds Max, it is not implied by the configuration of the material. Material type names in Trainz are not case sensitive. In creation programs which do not support the period (".") character within a user-supplied material name, the underscore character ("_") may be used instead. (Note: in modern Trainz, the "m" may be omitted to leave "name.type" rather than the unsightly "namem.type".)
For more info about configuring materials see Exporting with 3D Studio Max.
PBR Material Types
Trainz uses a Metallic/Roughness style PBR workflow. All materials are expressed in these terms, or (in the case of legacy materials) are converted into these terms using a best-effort approximation. PBR and the Metallic/Roughness workflow are discussed in great detail online, with a number of freely available presentations and demonstrations ranging from beginner material to advanced math. It is recommended that content creators read up on the subject before attempting to configure Trainz materials.
m.pbrmetal
m.pbrmetal is a generic opaque PBR material. This should be considered the starting point for any Trainz content creation which has no special needs.
- Albedo (RGB)
- Normal (XYZ)
- Height
- Emissive
- Roughness
- Ambient Occlusion
- Metallicity
For .CDP example files visit the m.pbrmetal page and look under the example section.
m.pbrmetalmasked
m.pbrmetalmasked gives identical results to m.pbrmetal but adds masked opacity support.
- Albedo (RGB)
- Masked Opacity (A)
- Normal (XYZ)
- Height
- Emissive
- Roughness
- Ambient Occlusion
- Metallicity
For .CDP example files visit the m.pbrmetalmasked page and look under the example section.
m.pbrmetaldetail
m.pbrmetaldetail gives identical results to m.pbrmetal but adds support for a detail map.
- Albedo (RGB)
- Opacity (A)
- Detail (RGB)
- Normal (XYZ)
- Height (A)
- Detail Normal (RGB)
- Emissive (R)
- Roughness (G)
- Ambient Occlusion (B)
- Metallicity (A)
For .CDP example files visit the m.pbrmetaldetail page and look under the example section.
m.glass
m.glass is a transparent PBR material. This enables glass-like substances to be rendered but has a number of peculiarities that make it inappropriate for other purposes.
- Albedo (RGB)
- Opacity (A)
- Normal (XYZ)
- Height
- Emissive
- Roughness
- Ambient Occlusion
- Metallicity
For .CDP example files visit the m.glass page and look under the example section.
m.clutter
m.clutter gives similar results to m.pbrmetalmasked but adds support for cross-faded LOD transitions and does not include support for parallax mapping. This is intended for use with Clutter Effect Layers.
- Albedo (RGB)
- Masked Opacity (A)
- Normal (XYZ)
- Emissive
- Roughness
- Ambient Occlusion
- Metallicity
m.foliage
m.foliage gives similar results to m.clutter but adds support for per-vertex procedural wind animation and ground alignment. This material is intended for use with Clutter Effect Layers and is supported in content format v5.4 and later.
- Albedo (RGB)
- Opacity (A)
- Normal (XYZ)
- Emissive
- Roughness
- Ambient Occlusion
- Metallicity
For .CDP example files visit the m.foliage page and look under the example section.
Ground Texture Material
KIND Groundtexture assets make use of a custom material which offers features equivalent to m.pbrmetal. It is not possible to override the ground texture material.
Surveyor allows the user to paint multiple layers of ground texture with automated blending. Historically, this capability was used extensively to help hide the fact that ground textures were low resolution and tiled heavily. Overuse of this approach may induce substantial blurriness and reduce performance. Current-generation ground materials are high resolution and should not tile noticeably. For best performance and visuals, blending should be reserved for actual changes in surface material (eg. grass vs rocks vs mud) rather than to simulate texture detail.
Legacy Material Types
The material types here are intended for backwards-compatibility with older versions of Trainz. They are not PBR materials and offer the content creator less control over the end result. It is recommended that the PBR materials are used instead.
m.notex
This is a legacy material, and should only be used where compatibility with older versions of Trainz is required.
m.notex is a non-textured material.
Opacity = Uniform opacity can be controlled in the material settings.
Full details here: m.notex
m.onetex
This is a legacy material, and should only be used where compatibility with older versions of Trainz is required.
m.onetex is a diffuse texture mapped material.
Opacity = Per-texel opacity can be controlled via the diffuse texture's alpha channel.
Full details here: m.onetex
m.reflect
This is a legacy material, and should only be used where compatibility with older versions of Trainz is required.
m.reflect is a reflective material.
Full details here: m.reflect
m.gloss
This is a legacy material, and should only be used where compatibility with older versions of Trainz is required.
m.gloss is a glossy reflective material.
Opacity = Uniform opacity can be controlled in the material settings.
Full details here: m.gloss
m.tbumptex
This is a legacy material, and should only be used where compatibility with older versions of Trainz is required.
m.tbumptex is a bump mapped material.
Opacity = Per-texel opacity can be controlled via the diffuse texture's alpha channel.
Specular = Per-texel specular strength can be controlled via the normal texture's alpha channel.
Full details here: m.tbumptex
m.tbumpgloss
This is a legacy material, and should only be used where compatibility with older versions of Trainz is required.
m.tbumpgloss is a bump mapped reflective material.
View the tutorial video on tbumpgloss HERE and download an example asset HERE to drop into Trainz to see what effect can be created using this material. The example asset is a "rust" type material.
Opacity = Uniform opacity can be controlled in the material settings.
Specular = Per-texel specular strength can be controlled via the normal texture's alpha channel.
Reflection = Per-texel blend strength of the reflection can be controlled via the diffuse texture's alpha channel.
Full details here: m.tbumpgloss
m.tbumpenv
This is a legacy material, and should only be used where compatibility with older versions of Trainz is required.
m.tbumpenv is a bump mapped environment reflective material. In current versions of Trainz this is the preferred material for most models lit by world lighting, unless a particular effect is desired. Exceptions include tunnels and interiors.
View the tutorial video on tbumpenv HERE and download an example asset HERE to drop into Trainz to see what effect can be created using this material. The example asset is a "paint" type material.
Opacity = Uniform opacity can be controlled in the material settings.
Specular = Per-texel specular strength can be controlled via the normal texture's alpha channel.
Reflection = Per-texel blend strength of the environment map can be controlled via the diffuse texture's alpha channel.
Full details here: m.tbumpenv
Material Examples
Download example assets below and drop them into Trainz to see what effect can be created using the Materials listed below:
These examples don't use the new PBR shaders:
- Rust - Download Asset. View the tutorial video for this asset HERE - Paint - Download Asset. View the tutorial video for this asset HERE - Creating Specular Maps - Download Asset. View the tutorial video for this asset HERE