Skip to content

Material Property Matrix

bsupnik edited this page Dec 9, 2015 · 11 revisions

There are four over-all material-classes:

  1. A standard textured material, e.g. with an albedo, optional normal/emissive, etc. Most attributes are legal!

  2. An instance-friendly textured material. This is a standard textured material that does not use certain "instance-unfriendly" attributes. For example, instance-friendly textures cannot use ATTR_emissive_rgb or ATTR_no_cull. In other words, an instance-friendly textured material is more restricted than the standard one.

  3. A panel-textured material sources its texture from the panel or a panel region.

  4. A draped material is used for draped geometry, e.g. geometry that is cut up and applied to the ground. It has a somewhat disjoint set of legal properties compared to standard textured materials. For example, ATTR_emissive_rgb and ATTR_poly_os are both illegal on a draped material, but decals are legal.

This table shows what kinds of materials are legal for a given object being exported.

Export Type Static Scenery Instanced Static Scenery Dynamic Scenery Aircraft Object Key Slot
Standard Textured Yes No Yes Yes Object
Instance-Textured Yes Yes Yes Yes Object
Panel Textured No No No Yes Panel
Draped Yes Yes No No Draped

Key points:

  • Instanced scenery disallows the standard textured material class - only instance-textured materials are legal.
  • Aircraft objects allow panel textured materials but -not- draped materials. (Draping is not allowed for aircraft and cannot be used to make a drop shadow!)

(Note: it is an intention of this design that the material class of a texture can be derived -from- the material without knowledge 'from above' about the type of export.)

This next chart lists the legality of various material properties for each class of materials. Note that the material class itself may or may not be legal for a given export -content- (e.g. the user is working on an airplane vs an airport).

Property Standard Textured Instance Textured Draped Panel Textured
Albedo Tex Yes Yes Yes Must Be Panel
Albedo Clamping No No Yes No
Lit Tex Yes Yes Yes Must Be Panel
Lit Clamping No No Yes No
Lit Level Yes No No No
Normal Tex Yes Yes Yes No
Normal Clamping No No Yes No
Normal Bumpiness No No Yes No
Normal UV Scaling No No Yes No
Specular Tex Yes Yes Yes No
Specular Ratio Yes/Deprecated Yes/Deprecated Yes Yes/Deprecated
Panel Tex/Regions/Global-lit No No No Yes
Draping No No Required No
Blending/Alpha Cut Yes Yes Yes Yes
Dithering No No Yes No
Alpha Stripping No No Yes No
Decals No No Yes No
Hard/Deck Yes Yes No No
No-Draw Yes Yes No Yes
Camera Wall Aircraft-Only Aircraft-Only No Yes
Polygon Offset Yes No No Yes
Manipulation Aircraft-Only Aircraft-Only No Yes
Two-sided Yes/Deprecated No No Yes/Deprecated
Flat shaded Yes/Deprecated No No Yes/Deprecated
Diffuse/Emissive RGB Yes/Deprecated No No Yes/Deprecated

Legal properties are in bold face if they must match among all properties of that material class for a single object.

For example, every material of material-class panel must have the same panel region/global lit properties. Every material of material-class draped must have the same albedo texture.

By comparison, every material can have a different hard surface and deck property.

From this logic, any given object may have at most two albedos: either a texture and panel, or a texture + draped albedo.

Note also that for draped materials, every allowed material property must match between different user-created draped materials for a single object. (In other words, where-as aspects of the standard texture material can vary within an object, the draped material cannot.)

The following properties are assumed to be not on the materials:

  • Instance Tinting
  • Wet/dry requirements
  • Tilting
  • Slope Limits
  • Layer groups (normal and draped)
  • LOD (normal and draped)
  • Slung Load Weight
  • Object-wide shadow disable