Material Types

From TrainzOnline
(Difference between revisions)
Jump to: navigation, search
m
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[[Material]]s 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.
 
[[Material]]s 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 [["Trainz-build" number|content format v4.6]].
+
This page describes [["Trainz-build" number|content format v4.6]] and assumes that the [[FBX file format]] is used as a data source for any meshes.
  
  
 
=Material Naming=
 
=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'. All material types begin with 'm.' 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.
+
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]].
 
For more info about configuring materials see [[Exporting with 3D Studio Max]].
  
=Material Examples=
+
=PBR Material Types=
Download example assets below and drop them into Trainz to see what effect can be created using the Materials listed below:
+
 
+
- Rust - [http://download.trainzportal.com/tutorials/16_1_trainz_material_rust.zip Download Asset]. View the tutorial video for this asset [https://youtu.be/ymfWeaPLIEk HERE]
+
- Paint - [http://download.trainzportal.com/tutorials/16_2_trainz_material_paint.zip Download Asset]. View the tutorial video for this asset [https://youtu.be/YGGkb6nvg5I HERE]
+
- Creating Specular Maps - [http://download.trainzportal.com/tutorials/16_3_trainz_material_specular.zip Download Asset]. View the tutorial video for this asset [https://youtu.be/bR3l1LgHSAk HERE]
+
 
+
=Material Types=
+
 
Trainz uses a Metallic/Roughness style [[Physically Based Rendering|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.
 
Trainz uses a Metallic/Roughness style [[Physically Based Rendering|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.
  
Line 23: Line 16:
 
==m.pbrmetal==
 
==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.
 
[[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==
 
[[m.pbrmetalmasked]] gives identical results to m.pbrmetal but adds masked opacity support.
 
[[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==
 
[[m.pbrmetaldetail]] gives identical results to m.pbrmetal but adds support for a detail map.
 
[[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 Layer]]s.
 +
 +
* Albedo (RGB)
 +
* Masked Opacity (A)
 +
* Normal (XYZ)
 +
* Emissive
 +
* Roughness
 +
* Ambient Occlusion
 +
* Metallicity
 +
 +
==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==
 
==m.notex==
Line 108: Line 169:
 
[[Image:mat_tbumpenv.jpg]]
 
[[Image:mat_tbumpenv.jpg]]
  
==Ground Texture Material==
+
=Material Examples=
[[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.
+
Download example assets below and drop them into Trainz to see what effect can be created using the Materials listed below:
 
+
[[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.
+
  
 +
These examples don't use the new PBR shaders:
 +
- Rust - [http://download.trainzportal.com/tutorials/16_1_trainz_material_rust.zip Download Asset]. View the tutorial video for this asset [https://youtu.be/ymfWeaPLIEk HERE]
 +
- Paint - [http://download.trainzportal.com/tutorials/16_2_trainz_material_paint.zip Download Asset]. View the tutorial video for this asset [https://youtu.be/YGGkb6nvg5I HERE]
 +
- Creating Specular Maps - [http://download.trainzportal.com/tutorials/16_3_trainz_material_specular.zip Download Asset]. View the tutorial video for this asset [https://youtu.be/bR3l1LgHSAk HERE]
  
 
[[Category:Material types| ]]
 
[[Category:Material types| ]]
 +
[[Category:Modeling]]
 +
[[Category:Content creation]]

Revision as of 21:53, 19 January 2018

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

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

Mat notex.jpg

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

Mat onetex.jpg

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

Mat reflect.jpg

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

Mat gloss.jpg

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

Mat tbumptex.jpg

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

Mat tbumpgloss.jpg

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

Mat tbumpenv.jpg

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
Personal tools