MATERIALS

This document deals with the 3DS Max and Blender aspects of the Microsoft Flight Simulator materials. The materials listed here are the ones that should be used in all glTF files created as part of add-on assets for the simulation. It may be possible to use your own custom materials, but there is no guarantee that the engine will be able to display these properly, and as such we recommend that you only use the ones listed here. Also note that there are extra tools that can be used to make working with FlightSim Materials easier, and these are explained on the following page:

 

If you are not using 3Ds Max or Blender as your modelling tool, the SDK also comes with a set of glTF Schema files, which can be used to create your own import/export plugins for your tool of use. For more information please see here:

 

Note On Referencing Materials

It should be noted that - in some files - materials can be referenced by name, for example in the panel.cfg files. In legacy FSX aircraft, these material names were prefixed using the "$" symbol. However, in Microsoft Flight Simulator this prefix should not be used as it is an internal flag that forces the material to act like a collision material, regardless of whether the collision material option has been checked or not. As such, using this prefix can create unforeseen issues for your aircraft that may be difficult to understand or debug, and should be avoided.

 

 

Using the FlightSim Materials

The Microsoft Flight Simulator materials will be available after installing the 3DS Max plugin. It can be found in the material browser under Materials/Standard.

NOTE: The images used here are from 3DS Max, for Blender please see here: The Blender Plugin

3DS Max Material Browser

Depending on the Material Type there may be additional parameters available to you as well, and there will also be texture options listed at the bottom, for example:

Additional Material Parameters In 3Ds Max

 

Unique In Container Inheritance

When checked, makes sure the name of the material remains unique when importing materials from a container, by adding a suffix in the form of [MaterialName]_[ContainerID], where [MaterialName] and [ContainerID] are replaced by the material name and the container ID respectively.

NOTE: This is currently not supported when using The Blender Plugin.

 

 

Animated Materials

Microsoft Flight Simulator will permit you to use animated materials when used with the correct material type and parameters.

NOTE: This is currently not supported when using The Blender Plugin.To set up an animated material you need to first ensure that it follows these main rules:

  • The material must have a unique GUID
  • The material must be a FlightSim Material
  • The material must be assigned to a node
  • The material cannot be part of a multi-material

 

To set this up you should first create a "FlightSimulator Material" and assign it to a node:

The FlightSimulator Material In 3DS Max

 

Once that's been created, you need to open the Animation Groups panel from the right-click menu in the scene:

Opening The Animation Groups In 3DS Max

 

Here you should do the following:

  • Create an animation group in the "Animation Group Panel"
  • Enable "Keep Static Animation"
  • Assign the node with the animated material to the animation group:
    • Select the node with the animated material.
    • Select the "Animated Materials" area in the "Animation Group Panel" untill is highlighted.
    • Click the button "Add Viewport Selection" and Confirm.

Adding Animated Materials To The Animation Group

At this point, you would then use the standard 3Ds Max workflow to animate the material property (or properties) that you require to animate:

Animating The Material Parameters In 3DS Max

It is important to note that only the Standard material can be animated, and within that material, only the following parameters will be recognised by Microsoft Flight Simulator:

 

 

Material Types

Microsoft Flight Simulator materials can be one of several material types. These include things like geometry decals and ice. They each have varying support for different blend modes and textures. If parameters are not supported for the current type, they will be grayed out.

 

  • Standard
    The default material type. Meshes with this type will be rendered in the deferred rendering pass (Alpha Mode = OPAQUE) or in the transparent pass (Alpha Mode = MASK or BLEND).

 

  • Decal
    The Decal material type is for geometry decals, which are shapes rendered on top of another mesh. If several decals are to be rendered on top of each other, they have to be in the same sub-mesh, or it will cause rendering artifacts. The order of the sub-materials will determine the order in which they are rendered (first sub-material is rendered first). Meshes with this type will be rendered in a special pass between the deferred and the transparent pass. This type has additional parameters, explained here: Decal Per Component Blend Factors

 

  • Glass
    This material type will be used for generic glass surfaces. Glass and windshield materials are rendered on the same layer, and any number of glass materials can overlap on screen without masking each other. Note that it's more convenient to have each glass part as separate objects for the draw order sorting to work correctly (for more information see Draw Order).

 

  • Windshield
    The Windshield material type is used to identify the windshields of the aircraft. It is used mainly for rain effects, otherwise similar to the Glass material type. Meshes with this type will be rendered after the transparent pass. You can find more information here: Windshield Materials

 

  • Porthole
    This material type will be used for fake views through portholes using parallax scrolling.

 

  • GeoDecalFrosted
    The GeoDecalFrosted material type is for geometry decals used to add the frost effect, which are shapes rendered on top of another mesh. If several decals are to be rendered on top of each other, they have to be in the same sub-mesh, or it will cause rendering artifacts. The order of the sub-materials will determine the order in which they are rendered (first sub-material is rendered first). Meshes with this type will be rendered in a special pass between the deferred and the transparent pass. This type has additional parameters, explained here: Decal Per Component Blend Factors

 

  • ClearCoat
    This material type will be used to simulate vehicle paint.

 

  • ParallaxWindow
    This material type will be used to fake building interiors through parallax effects and a special texture mapping.

 

  • Anisotropic
    This material aims to model the light behavior seen in striped micro-surfaces. Such cases may be brushed metal or many types of fabrics.

 

  • Hair
    This material type will be used to simulate characters hair.

 

  • SSS
    This material type will be used to simulate skin.

 

  • Invisible
    This material will be used for non visible objects.

 

  • FakeTerrain
    The terrain material type. Meshes with this type will have the same shading system as the terrain in Microsoft Flight Simulator.

 

  • FresnelFade
    This material will be used to make an object visible based on the camera angle.

 

  • EnvironmentOccluder
    This material will be used to hide environmental meshes that eventually penetrate with a mesh with this material assigned.

 

  • Ghost
    This material is designed specifically for use with UI elements in VR (for example "hands"), but could be applied to SimObjects or Scenery elements if required.

 

 

Base Color

The base color of the material. These values are linear. If a base color texture is specified, this value is multiplied with the texel values.

 

 

Emissive

The emissive color of the material. These values are linear. If an emissive texture is specified, this value is multiplied with the texel values.

 

 

Alpha Mode

Alpha Mode Settings

  • OPAQUE
    The material is fully opaque and any alpha values are ignored.

 

  • MASK
    The material is either fully opaque or fully transparent depending on the alpha value and the specified alpha cutoff value. This mode can be used to simulate geometry such as tree leaves or wire fences. Pixels with an alpha above the alpha cutoff parameter value are discarded, the others are opaque.

 

  • BLEND
    The output is blended with the background using a traditional blend operation (i.e. the Porter and Duff over operator). This mode can be used to simulate geometry such as gauze cloth or animal fur.

 

  • DITHER
    The output is blended with the background using a dithering pattern.

 

 

Render Parameters

Render Parameters

  • Draw Order
    This value modifies the sorting order, and the value can range from from -999 to 999. In the simulation, objects are sorted from back to front using the mesh center. By "mesh center" we mean the actual mesh bounding box center, not the pivot position itself (pivot position does not affect the draw order sort algorithm). As such, the Draw Order parameter can be used to offset the distance used to sort the rendering order, for cases where the meshes center doesn't provide the correct order. This can be used to avoid rendering artifacts such as flickering when multiple transparent or decal material types are on top of each other in the rendered output. This parameter is effective for Decal, Glass and Windshield materials. In the case of decals, the value strictly specifies the order in which decals are rendered, where a higher value will be drawn above and a lower value will be drawn below. In the case of Glass and Windshield materials, the value is added as an offset to the distance used to sort the objects for rendering.

 

  • Don't Cast Shadows
    When checked, objects with this material will not cast shadows.

 

  • Double Sided
    When checked, back-face culling is disabled and double-sided lighting is enabled. Be aware that the normal of the back-side face is not flipped. If correct lighting is required, use double-sided geometry instead.

 

  • DayNightCycle
    When checked, the emissive will be linked to the day/night cycle

 

 

Gameplay Parameters

Gameplay Parameters

  • Collision Material
    When checked, meshes with this material will have collidable faces. This can be used to create precise colliders, for example for mouse interaction. Use this with low-resolution meshes. You can find more information here: Collision Handling

 

  • Road Material
    When checked, meshes with this material are considered to be a road. This can be used to define which part of an asset can be used by cars, for example. Use this with low-resolution meshes.

 

 

UV Options

UV Options

  • UV Offset
    Set the UV offset values. Note this option can be animated, for more information see: Animated Materials

 

  • UV Tiling
    Set how the UVs will be tiled. Note this option can be animated, for more information see: Animated Materials

 

  • UV Rotation
    Set an angle to rotate the UVs by. Note this option can be animated, for more information see: Animated Materials

 

  • UV Clamp
    Clamps UVs on the U and/or V axis.

 

 

General Parameters

General Parameters

  • Roughness
    The roughness of the material. A value of 1.0 means the material is completely rough. A value of 0.0 means the material is completely smooth. This value is linear. If an "Occlusion (R) Roughness(G) Metallic(B)" texture is specified, this value is multiplied with the roughness texel values. Note that this factor can be animated, for more information see: Animated Materials

 

  • Metallic
    The metalness of the material. A value of 1.0 means the material is a metal. A value of 0.0 means the material is a dielectric. Values in between are for blending between metals and dielectrics such as dirty metallic surfaces. This value is linear. If an "Occlusion (R) Roughness(G) Metallic(B)" texture is specified, this value is multiplied with the metallic texel values. Note that this factor can be animated, for more information see: Animated Materials

 

  • Normal Scale
    The scalar multiplier applied to each normal vector of the texture. This value is ignored if the "Normal" texture is not specified.

 

  • Alpha Cutoff
    When Alpha Mode is set to MASK, the Alpha Cutoff property specifies the cutoff threshold. If the alpha value is greater than or equal to the Alpha Cutoff value then it is rendered as fully opaque, otherwise, it is rendered as fully transparent. The Alpha Cutoff value is ignored for other modes.

 

  • Detail UV Scale
    UV scale factor for the detail map.

 

  • Detail UV Offset U
    Offset for the detail map along the horizontal axis.

 

  • Detail UV Offset V
    Offset for the detail map along the vertical axis.

 

  • Detail Normal Scale
    The Normal scale factor for the detail normal map.

 

  • Blend Threshold
    Defines the sharpness of the blending. The Lower the value, the sharper the blending.

 

 

Additional Parameters

The following extra parameters are only available to very specific materials. The materials that the parameters are appropriate for have been linked to each description.

 

Decal Per Component Blend Factors

(Decal, GeoDecalFrosted)

Decal Per Component Blend Factors

  • Color
    This value determine how the decal material is blended with the background. A value of 0 means the background material's color component is used. A value of 1 means the decal material's color component is used. A value between 0 and 1 will blend the two values. The components are linearly interpolated.

 

  • Roughness
    This value determine how the decal material is blended with the background. A value of 0 means the background material's roughness component is used. A value of 1 means the decal material's roughness component is used. A value between 0 and 1 will blend the two values. The components are linearly interpolated.

 

  • Metal
    This value determine how the decal material is blended with the background. A value of 0 means the background material's metal component is used. A value of 1 means the decal material's metal component is used. A value between 0 and 1 will blend the two values. The components are linearly interpolated.

 

  • Occlusion
    This value determine how the decal material is blended with the background. A value of 0 means the background material's occlusion component is used. A value of 1 means the decal material's occlusion component multiplied with the background one is used. A value between 0 and 1 will blend the two values. The components are linearly interpolated.

 

  • Normal
    This value determine how the decal material is blended with the background. A value of 0 means the background material's normal component is used. A value of 1 means the decal material's normal component is used. A value between 0 and 1 will blend the two values. The components are linearly interpolated.

 

  • Emissive
    This value determine how the decal material is blended with the background. A value of 0 means the background material's emissive is used. A value of 1 means the decal material's emissive is used. A value between 0 and 1 will blend the two values. The components are linearly interpolated.

 

 

Glass Parameters

(glass)

Glass Parameters

  • Glass Reflection Mask Factor
    This value defines the strength of reflections. The environment bitmap used for reflections is not configurable and the value only has an influence on this default cockpit reflection (screen space reflections and sky cubemaps are not influenced by this). A value of 0 means no reflection, a value of 1 means maximum reflection.

 

  • Glass Deformation Factor
    This value defines the strength of refraction. The environment bitmap used for refraction is not configurable and the value only has an influence on this default cockpit image. A value of 0 means no refraction, a value of 1 means maximum refraction.

 

 

Pearl Parameters

(Standard)

Pearlescence Parameters

This parameter can be used to add a "pearlescent" effect to the Standard material type.

 

  • Use Pearl Effect
    This can be used to enable/disable the pearlescent effect of a material.

 

  • Color Shift
    Use this value to adjust the amount of shift from the base color that the pearlescent effect will produce.

 

  • Color Range
    Use this value to adjust the range around the base color for the pearlescent effect.

 

  • Color Brightness
    Use this value to modify the brightness of the colours used for the pearlescent effect.

 

 

Parallax Parameters

(ParallaxWindow)

Parallax ParametersA parallax effect can be used to render fake interiors through a building window. It uses the second UV set (UV2) to tile the fake rooms.

 

  • Parallax scale
    A scalar multiplier applied to increase the depth of the fake rooms.

 

  • Room SizeX Scale
    A scalar multiplier applied to increase the horizontal size of the fake room, it is a multiplier for the UV2 used for the fake rooms.

 

  • Room SizeY Scale
    A scalar multiplier applied to increase the vertical size of the fake room, it is a multiplier for the UV2 used for the fake rooms.

 

  • Room number XY
    The number of rooms available on the texture.

 

  • Corridor
    Use this to not render the left and right walls of the fake interiors. This will connect rooms together on the horizontal axis and, when observed from an angle, make them look like corridors.

 

 

Fresnel Parameters

(FresnelFade)

Fresnel Parameters

  • Fresnel Factor
    Exponent factor for the opacity of the Fresnel effect.

 

  • Fresnel Opacity Bias
    This value is subtracted from the previous Fresnel opacity result. It's there to enforce the transparency effect when the previous dot product is close to zero.

 

 

Ghost Parameters

(Ghost)

The Additional Parameters For The Ghost Material

  • Bias Factor
    This value is an offset to make the object less transparent, where 0 is 100% transparent and 1 is 100% opaque.

 

  • Ghost Power
    This value is the exponent that increase the reflection at shallow angles for the material. Values are between 0 and 64 where 0 means no reflection and 64 means a very metallic reflection at shallow angles.

 

  • Ghost Scale
    This value is a proportional factor that changes the weight of the transparency gradient, where 0 means no reflection weight and 1 means full reflection weight.

 

 

Textures

Unless specified otherwise:

  • Texture formats should be *.PNG or *.JPG, but other formats may be supported.
  • Texture slots will use the same UV set (UV1).
  • Only the name of the texture is exported, the relative path is ignored. Microsoft Flight Simulator models rely on texture fallback directories to find them instead of looking relative to the *.glTF.

 

Standard, Decal, PortHole, Glass, FakeTerrain

  • Base Color
    The base color texture. The first three components (RGB) are encoded with the sRGB transfer function. They specify the base color of the material. If the fourth component (A) is present, it represents the linear alpha coverage of the material. Otherwise, an alpha of 1.0 is assumed. Microsoft Flight Simulator Albedo Texture

 

  • Occlusion(R) Roughness(G) Metallic(B)
    The occlusion-metallic-roughness texture. The metalness values are sampled from the B channel. The roughness values are sampled from the G channel. The occlusion values are sampled from the R channel. These values are linear. If an alpha channel is present (A), it is ignored for occlusion-metallic-roughness calculations.Microsoft Flight Simulator Occlusion Roughness Metallic Texture

 

  • Normal
    A tangent space normal map. Microsoft Flight Simulator Normal Texture

 

  • Emissive
    The emissive map controls the color and intensity of the light being emitted by the material. Microsoft Flight Simulator Emissive Texture

 

  • Detail Color(RGB) Alpha(A)
    When no blend mask is specified, the detail base color is interpreted as a linear texture ranging between 0 and 1 of which the channels are blended with the primary base color in a linear fashion. In this case, the detail base color textures are interpreted such that a value of 0.5 will produce no changes, values below 0.5 will darken the primary base color and values above will lighten it. Painting the vertex alpha channel allows to define how the map impacts the base color.

 

  • Detail Occlusion(R) Roughness(G) Metallic(B)
    When no blend mask is specified, the detail occlusion-roughness-metallic texture is treated as a linear texture with values ranging between 0 and 1. The values will be added to the primary Occlusion(R), Roughness(G), Metallic(B) in a linear fashion: a value of 0.5 will produce no changes, values below 0.5 will decrease the primary values and values above 0.5 will increase them. Painting the vertex alpha channel allows to define how the map impacts the occlusion-roughness-metallic texture.

 

  • Detail Normal
    When no blend mask is specified, the detail normals are added to the primary normal channels. Painting the vertex alpha channel allows to define how the map impacts the normals.

 

  • BlendMask
    When this texture is set, the detail map becomes a secondary texture that is linearly blended with the original based on the blend mask value.

 

GeoDecalFrosted

 

 

ClearCoat

 

 

Windshield

  • Base Color
  • Occlusion(R) Roughness(G) Metallic(B)
  • Normal
  • Secondary Details(A)
    A texture used to add a layer of details on top of the windshield using the Alpha channel. The uv used for this detail map are not affected by Detail UV Scale, Detail UV Offest U,Detail UV Offest V
  • Details Scratch(R), Icing Mask(G), Fingerprints(B)
    A texture used to add a layer of details on top of the windshield. Note that the "Icing Mask" is actually misnamed and is the mask used to add dirt detail to the glass it's applied to. Microsoft Flight Simulator Details Scratch-Icing Mask-Fingerprints Texture

NOTE: A secondary UV set is used to sample rain effect textures. Those textures will be applied to the windshield material by Microsoft Flight Simulator at runtime. The following images show an example of the secondary UV set. Make sure the projection follows the shown directions.

Microsoft Flight Simulator Windshield Secondary UV sample projection Microsoft Flight Simulator Windshield Secondary UV sample projection direction

 

Icing Normal

This texture is used as the normal map for the ice, when it is present. The uv set used to sample this texture is affected by the same parameters used for the detail map.

BlendMask

 

The windshield material also uses vertex color data:

  • Vertex Alpha
    This color defines the strength of the icing effect applied through the green channel of Details Scratch(R), Icing Mask(G), Fingerprints(B). A value of 0 means no icing, a value of 1 means maximum icing.

 

  • Vertex Color R
    This color defines the strength of the scratches applied through the red channel of Details Scratch(R), Icing Mask(G), Fingerprints(B). A value of 0 means no scratch, a value of 1 means maximum scratch.

 

  • Vertex Color B
    This color defines the strength of the fingerprints applied through the blue channel of Details Scratch(R), Icing Mask(G), Fingerprints(B). A value of 0 means no fingerprints, a value of 1 means maximum fingerprints.

 

  • Vertex Color G
    This color defines the strength of the opacity applied through the alpha channel of Secondary Details(A). A value of 0 means no secondary detail, a value of 1 means maximum secondary Detail.

 

 

ParallaxWindow

 

These textures must be subdivided in a grid matching the number of columns/rows specified in the "room number xy" parameters, where each cell contains an image of a room with a size relative to the cell's UV that respect the following rules

  • Vertically:
    • floor 1/4
    • roof 1/2
    • walls 1/4
  • Horizontally:
    • left wall 1/4
    • back wall 1/2
    • right wall 1/4

"Behind Glass Color (RGB), Alpha (A)" and "Emissive Ins Window (RGB), offset Time (A)" are respectively an albedo and an emissive map that respect the previous constraints.

 

 

Anisotropic

 

 

Hair

 

 

SSS

SSS stands for sub-surface scattering. This material type mimics the effect of light bouncing through a surface and coming back out, for example with skin.

 

 

FresnelFade

 

 

Ghost