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
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:
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:
Once that's been created, you need to open the Animation Groups panel from the right-click menu in the scene:
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.
At this point, you would then use the standard 3Ds Max workflow to animate the material property (or properties) that you require to animate:
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
-
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
-
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
-
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 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
-
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 toMASK
, 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 Normal Scale
The Normal scale factor for the detail normal map.
-
Blend Threshold
Defines the sharpness of the blending. T he 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
-
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 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 of0
means no reflection, a value of1
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 of0
means no refraction, a value of1
means maximum refraction.
Pearl Parameters
(Standard)
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
A 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
-
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)
-
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.
-
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.
-
Emissive
The emissive map controls the color and intensity of the light being emitted by the material.
-
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
- Base Color
- Occlusion(R) Roughness(G) Metallic(B)
- Normal
- Emissive
- Detail Color(RGB) Alpha(A)
-
Melt pattern(R) Roughness(G) Metallic(B)
The Metallic (B) channel is not used. The Melt Pattern(R) and Roughness(G) channels are blended with the primary Occlusion(G) and Roughness(B) channels in the same way as the Detail Occlusion(R) Roughness(G) Metallic(B) texture. - Detail Normal
ClearCoat
- Base Color
- Occlusion(R) Roughness(G) Metallic(B)
- Normal
- Emissive
- Detail Color(RGB) Alpha(A)
- Detail Occlusion(R) Roughness(G) Metallic(B)
- Detail Normal
- BlendMask
-
Clearcoat amount (R), Clearcoat rough (G)
The ClearCoat material type creates a lacquered effect, like a layer of varnish on top of another material. Red Channel controls the amount of varnish, green channel controls the roughness of varnish.
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.
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.
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.
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
- Base Color (Front Glass Color)
- Occlusion(R) Roughness(G) Metallic(B)
- Normal (Front Glass Normal)
-
Emissive Ins Window (RGB) offset Time (A)
-
Behind Glass Color (RGB) Alpha (A)
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
- Base Color
- Occlusion(R) Roughness(G) Metallic(B)
- Normal
- Emissive
- Detail Color(RGB) Alpha(A)
- Detail Occlusion(R) Roughness(G) Metallic(B)
- Detail Normal
- BlendMask
-
Anisotropic Direction (RG)
This texture controls the shape of the specular highlights from real-time lights. The red and green channels represent the horizontal and vertical direction of the distortion of the specular highlights.
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