Yes, I wasn't sure, so I did a quick test with a simple cube. First is the cube exported with bitmap textures as an FS9 .x file:
xof 0302txt 0032
// Direct3D .x file translation of Scene_Root
// Generated by 3DSMax FSModelExp Plug-in, Version 1.00
// Sun Sep 17 11:33:12 2017
template Header {
<3D82AB43-62DA-11cf-AB39-0020AF71E433>
WORD major;
WORD minor;
DWORD flags;
}
template Vector {
<3D82AB5E-62DA-11cf-AB39-0020AF71E433>
FLOAT x;
FLOAT y;
FLOAT z;
}
template Coords2d {
<F6F23F44-7686-11cf-8F52-0040333594A3>
FLOAT u;
FLOAT v;
}
template Matrix4x4 {
<F6F23F45-7686-11cf-8F52-0040333594A3>
array FLOAT matrix[16];
}
template ColorRGBA {
<35FF44E0-6C7C-11cf-8F52-0040333594A3>
FLOAT red;
FLOAT green;
FLOAT blue;
FLOAT alpha;
}
template ColorRGB {
<D3E16E81-7835-11cf-8F52-0040333594A3>
FLOAT red;
FLOAT green;
FLOAT blue;
}
template TextureFilename {
<A42790E1-7810-11cf-8F52-0040333594A3>
STRING filename;
}
template Material {
<3D82AB4D-62DA-11cf-AB39-0020AF71E433>
ColorRGBA faceColor;
FLOAT power;
ColorRGB specularColor;
ColorRGB emissiveColor;
[...]
}
template MeshFace {
<3D82AB5F-62DA-11cf-AB39-0020AF71E433>
DWORD nFaceVertexIndices;
array DWORD faceVertexIndices[nFaceVertexIndices];
}
template MeshTextureCoords {
<F6F23F40-7686-11cf-8F52-0040333594A3>
DWORD nTextureCoords;
array Coords2d textureCoords[nTextureCoords];
}
template MeshMaterialList {
<F6F23F42-7686-11cf-8F52-0040333594A3>
DWORD nMaterials;
DWORD nFaceIndexes;
array DWORD faceIndexes[nFaceIndexes];
[Material]
}
template MeshNormals {
<F6F23F43-7686-11cf-8F52-0040333594A3>
DWORD nNormals;
array Vector normals[nNormals];
DWORD nFaceNormals;
array MeshFace faceNormals[nFaceNormals];
}
template Mesh {
<3D82AB44-62DA-11cf-AB39-0020AF71E433>
DWORD nVertices;
array Vector vertices[nVertices];
DWORD nFaces;
array MeshFace faces[nFaces];
[...]
}
template FrameTransformMatrix {
<F6F23F41-7686-11cf-8F52-0040333594A3>
Matrix4x4 frameMatrix;
}
template Frame {
<3D82AB46-62DA-11cf-AB39-0020AF71E433>
[...]
}
template FloatKeys {
<10DD46A9-775B-11cf-8F52-0040333594A3>
DWORD nValues;
array FLOAT values[nValues];
}
template TimedFloatKeys {
<F406B180-7B3B-11cf-8F52-0040333594A3>
DWORD time;
FloatKeys tfkeys;
}
template AnimationKey {
<10DD46A8-775B-11cf-8F52-0040333594A3>
DWORD keyType;
DWORD nKeys;
array TimedFloatKeys keys[nKeys];
}
template AnimationOptions {
<E2BF56C0-840F-11cf-8F52-0040333594A3>
DWORD openclosed;
DWORD positionquality;
}
template Animation {
<3D82AB4F-62DA-11cf-AB39-0020AF71E433>
[...]
}
template AnimationSet {
<3D82AB50-62DA-11cf-AB39-0020AF71E433>
[Animation]
}
template DiffuseTextureFileName {
<E00200E2-D4AB-481a-9B85-E20F9AE07401>
STRING filename;
}
template AmbientTextureFileName {
<E00200E2-D4AB-481a-9B85-E20F9AE07402>
STRING filename;
}
template EmissiveTextureFileName {
<E00200E2-D4AB-481a-9B85-E20F9AE07403>
STRING filename;
}
template ReflectionTextureFileName {
<E00200E2-D4AB-481a-9B85-E20F9AE07404>
STRING filename;
}
template ShininessTextureFileName {
<E00200E2-D4AB-481a-9B85-E20F9AE07405>
STRING filename;
}
template BumpTextureFileName {
<E00200E2-D4AB-481a-9B85-E20F9AE07406>
STRING filename;
}
template DisplacementTextureFileName {
<E00200E2-D4AB-481a-9B85-E20F9AE07407>
STRING filename;
}
template PartData {
<79B183BA-7E70-44d1-914A-23B304CA91E5>
DWORD nByteCount;
array BYTE XMLData[ nByteCount ];
}
Header {
1;
0;
1;
}
//=====================
// FILE NODE HEIRARCHY
//=====================
// Scene_Root (1 Children)
// Box01 (0 Children)
Frame frm-MasterScale {
FrameTransformMatrix {
0.000977, 0.0, 0.0, 0.0,
0.0, 0.000977, 0.0, 0.0,
0.0, 0.0, 0.000977, 0.0,
0.0, 0.0, 0.0, 1.0;;
} // End frm-MasterScale FrameTransformMatrix
Frame frm-MasterUnitConversion {
FrameTransformMatrix {
1024.000000, 0.0, 0.0, 0.0,
0.0, 1024.000000, 0.0, 0.0,
0.0, 0.0, 1024.000000, 0.0,
0.0, 0.0, 0.0, 1.0;;
} // End frm-MasterUnitConversion FrameTransformMatrix
Frame RotateAroundX {
FrameTransformMatrix {
1.0, 0.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, -1.0, 0.0, 0.0,
0.0, 0.0, 0.0, 1.0;;
} // End Frame RotateAroundX FrameTransformMatrix
Frame frm-Box01 {
FrameTransformMatrix {
1.000000, 0.000000, 0.000000, 0.0,
0.000000, 1.000000, 0.000000, 0.0,
0.000000, 0.000000, 1.000000, 0.0,
0.000000, 0.000000, 0.000000, 1.0;;
} // End FrameTransformMatrix
Mesh Box01 {
26; // Mesh 'Box01' contains 26 vertices
-0.304800; -0.304800; 0.000000;,
0.304800; -0.304800; 0.000000;,
-0.304800; 0.304800; 0.000000;,
0.304800; 0.304800; 0.000000;,
-0.304800; -0.304800; -0.609600;,
0.304800; -0.304800; -0.609600;,
-0.304800; 0.304800; -0.609600;,
0.304800; 0.304800; -0.609600;,
-0.304800; -0.304800; 0.000000;,
0.304800; -0.304800; 0.000000;,
0.304800; -0.304800; -0.609600;,
0.304800; -0.304800; -0.609600;,
-0.304800; -0.304800; -0.609600;,
-0.304800; -0.304800; 0.000000;,
0.304800; 0.304800; 0.000000;,
0.304800; -0.304800; -0.609600;,
0.304800; 0.304800; 0.000000;,
-0.304800; 0.304800; 0.000000;,
-0.304800; 0.304800; -0.609600;,
-0.304800; 0.304800; -0.609600;,
0.304800; 0.304800; -0.609600;,
0.304800; 0.304800; 0.000000;,
-0.304800; 0.304800; 0.000000;,
-0.304800; -0.304800; -0.609600;,
-0.304800; -0.304800; -0.609600;,
-0.304800; 0.304800; 0.000000;;
12; // Mesh 'Box01' contains 12 Faces
3; 3, 2, 0;,
3; 0, 1, 3;,
3; 7, 5, 4;,
3; 4, 6, 7;,
3; 10, 9, 8;,
3; 13, 12, 11;,
3; 7, 14, 1;,
3; 1, 15, 7;,
3; 18, 17, 16;,
3; 21, 20, 19;,
3; 23, 0, 22;,
3; 25, 6, 24;;
MeshMaterialList {
1; // 1 Materials
12; // 12 Faces have materials specified
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0;
Material gork0 {
0.588000; 0.588000; 0.588000; 1.000000;;
0.000000;
0.900000; 0.900000; 0.900000;;
0.000000; 0.000000; 0.000000;;
TextureFileName {
"diffuse map.bmp";
}
DiffuseTextureFileName {
"diffuse map.bmp";
}
} // End Material 'gork0'
} // End MaterialList for 'Box01'
MeshNormals { // Mesh normals for Box01
6; // 6 vertex normals
0.000000; 0.000000; 1.000000;,
0.000000; 0.000000; -1.000000;,
0.000000; -1.000000; 0.000000;,
1.000000; 0.000000; 0.000000;,
0.000000; 1.000000; 0.000000;,
-1.000000; 0.000000; 0.000000;;
12; // 12 faces with normals
3; 0, 0, 0;,
3; 0, 0, 0;,
3; 1, 1, 1;,
3; 1, 1, 1;,
3; 2, 2, 2;,
3; 2, 2, 2;,
3; 3, 3, 3;,
3; 3, 3, 3;,
3; 4, 4, 4;,
3; 4, 4, 4;,
3; 5, 5, 5;,
3; 5, 5, 5;;
} // End Mesh normals for Box01
MeshTextureCoords {
26; // 26 uv pairs
1.000000; 1.000000;,
0.000000; 1.000000;,
1.000000; 0.000000;,
0.000000; 0.000000;,
0.000000; 1.000000;,
1.000000; 1.000000;,
0.000000; 0.000000;,
1.000000; 0.000000;,
0.000000; 1.000000;,
1.000000; 1.000000;,
1.000000; 0.000000;,
1.000000; 0.000000;,
0.000000; 0.000000;,
0.000000; 1.000000;,
1.000000; 1.000000;,
0.000000; 0.000000;,
0.000000; 1.000000;,
1.000000; 1.000000;,
1.000000; 0.000000;,
1.000000; 0.000000;,
0.000000; 0.000000;,
0.000000; 1.000000;,
0.000000; 1.000000;,
1.000000; 0.000000;,
1.000000; 0.000000;,
0.000000; 1.000000;;
} // End MeshTexture Coords for 'Box01'
} // End of Mesh 'Box01'
} // End of frame frm-Box01
} // End of RotateAroundX frame
} // End of frm-MasterUnitConversion frame
} // End of frm-MasterScale frame
AnimationSet { // Collection of Animations
} // End of AnimationSet.
Then I opened the same project in the MSTS gamepack, substituted the diffuse map for one in .ace format, and exported:
SIMISA@@@@@@@@@@JINX0s1t______
shape (
shape_header ( 00000000 00000000 )
volumes ( 2
vol_sphere (
vector ( 0 0.3048 0 ) 0.554326
)
vol_sphere (
vector ( 0 0.3048 0 ) 0.527929
)
)
shader_names ( 1
named_shader ( TexDiff )
)
texture_filter_names ( 1
named_filter_mode ( MipLinear )
)
points ( 8
point ( -0.3048 0 -0.3048 )
point ( -0.3048 0 0.3048 )
point ( 0.3048 0 0.3048 )
point ( 0.3048 0 -0.3048 )
point ( -0.3048 0.6096 -0.3048 )
point ( 0.3048 0.6096 -0.3048 )
point ( 0.3048 0.6096 0.3048 )
point ( -0.3048 0.6096 0.3048 )
)
uv_points ( 4
uv_point ( 1 1 )
uv_point ( 1 0 )
uv_point ( 0 0 )
uv_point ( 0 1 )
)
normals ( 6
vector ( -1 0 0 )
vector ( 0 0 1 )
vector ( 1 0 0 )
vector ( 0 0 -1 )
vector ( 0 1 0 )
vector ( 0 -1 0 )
)
sort_vectors ( 1
vector ( 0 0.3048 0 )
)
colours ( 0 )
matrices ( 1
matrix BOX01 ( 1 0 0 0 1 0 0 0 1 0 0 0 )
)
images ( 1
image ( "diffuse map.ace" )
)
textures ( 1
texture ( 0 0 0 ff000000 )
)
light_materials ( 0 )
light_model_cfgs ( 1
light_model_cfg ( 00000000
uv_ops ( 1
uv_op_copy ( 1 0 )
)
)
)
vtx_states ( 1
vtx_state ( 00000000 0 -5 0 00000002 )
)
prim_states ( 1
prim_state gork ( 00000000 0
tex_idxs ( 1 0 ) 0 0 0 0 1
)
)
lod_controls ( 1
lod_control (
distance_levels_header ( 0 )
distance_levels ( 1
distance_level (
distance_level_header (
dlevel_selection ( 0 )
hierarchy ( 1 -1 )
)
sub_objects ( 1
sub_object (
sub_object_header ( 00000400 -1 -1 000001d2 000001c4
geometry_info ( 12 1 0 36 0 0 1 0 0 0
geometry_nodes ( 1
geometry_node ( 1 0 0 0 0
cullable_prims ( 1 12 36 )
)
)
geometry_node_map ( 1 0 )
)
subobject_shaders ( 1 0 )
subobject_light_cfgs ( 1 0 ) 0
)
vertices ( 24
vertex ( 00000000 0 5 ff969696 ff808080
vertex_uvs ( 1 0 )
)
vertex ( 00000000 1 5 ff969696 ff808080
vertex_uvs ( 1 1 )
)
vertex ( 00000000 2 5 ff969696 ff808080
vertex_uvs ( 1 2 )
)
vertex ( 00000000 3 5 ff969696 ff808080
vertex_uvs ( 1 3 )
)
vertex ( 00000000 4 4 ff969696 ff808080
vertex_uvs ( 1 3 )
)
vertex ( 00000000 5 4 ff969696 ff808080
vertex_uvs ( 1 0 )
)
vertex ( 00000000 6 4 ff969696 ff808080
vertex_uvs ( 1 1 )
)
vertex ( 00000000 7 4 ff969696 ff808080
vertex_uvs ( 1 2 )
)
vertex ( 00000000 0 3 ff969696 ff808080
vertex_uvs ( 1 3 )
)
vertex ( 00000000 3 3 ff969696 ff808080
vertex_uvs ( 1 0 )
)
vertex ( 00000000 5 3 ff969696 ff808080
vertex_uvs ( 1 1 )
)
vertex ( 00000000 4 3 ff969696 ff808080
vertex_uvs ( 1 2 )
)
vertex ( 00000000 3 2 ff969696 ff808080
vertex_uvs ( 1 3 )
)
vertex ( 00000000 2 2 ff969696 ff808080
vertex_uvs ( 1 0 )
)
vertex ( 00000000 6 2 ff969696 ff808080
vertex_uvs ( 1 1 )
)
vertex ( 00000000 5 2 ff969696 ff808080
vertex_uvs ( 1 2 )
)
vertex ( 00000000 2 1 ff969696 ff808080
vertex_uvs ( 1 3 )
)
vertex ( 00000000 1 1 ff969696 ff808080
vertex_uvs ( 1 0 )
)
vertex ( 00000000 7 1 ff969696 ff808080
vertex_uvs ( 1 1 )
)
vertex ( 00000000 6 1 ff969696 ff808080
vertex_uvs ( 1 2 )
)
vertex ( 00000000 1 0 ff969696 ff808080
vertex_uvs ( 1 3 )
)
vertex ( 00000000 0 0 ff969696 ff808080
vertex_uvs ( 1 0 )
)
vertex ( 00000000 4 0 ff969696 ff808080
vertex_uvs ( 1 1 )
)
vertex ( 00000000 7 0 ff969696 ff808080
vertex_uvs ( 1 2 )
)
)
vertex_sets ( 1
vertex_set ( 0 0 24 )
)
primitives ( 2
prim_state_idx ( 0 )
indexed_trilist (
vertex_idxs ( 36 0 2 1 2 0 3 4 6 5 6 4 7 8 10 9 10 8 11 12 14 13 14 12 15 16 18 17 18 16 19 20 22 21 22 20 23 )
normal_idxs ( 12 5 3 5 3 4 3 4 3 3 3 3 3 2 3 2 3 1 3 1 3 0 3 0 3 )
flags ( 12 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 )
)
)
)
)
)
)
)
)
)