• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

Exporting A Model From Gmax Using The FS2004 Gamepack

Messages
1,203
Hi,

Well, I'm trying something for FS2004. I imported a model file into Gmax as a 3DS file. When I try to export the file, I get this error message:

MakeMDL was not found, or faild to convert the model specified
in C:\gmax\gamepacks\fs2004\kdfw to a .MDL file.
Check your system path to ensure MakeMDL is on it.

The MakeMDL.exe is installed for FS2004. Of course, I did not use any spaces or the wrong characters. I put in kdfw.mdl in the file name. The document does say that MSXML 4.0 is a required tool and I have that installed. Here is the error log:


Running model

Start! (C:\gmax\gamepacks\fs2004\kdfw)
Loading X C:\gmax\gamepacks\fs2004\kdfw...
Processing...
Model units are 1.00 units/meter
Sorting by Material...
Optimize Parts...
Welding...
Generate BGL...
Done!
Generate crash tree 1 (360 bytes)
Assembling: C:\gmax\gamepacks\fs2004\kdfw.azm
C:\gmax\gamepacks\fs2004\kdfw_0.asm(68) : error A2005: symbol redefinition : texture_riff_start_kdfw
C:\gmax\gamepacks\fs2004\kdfw_0.asm(98) : error A2005: symbol redefinition : texture_riff_end_kdfw
C:\gmax\gamepacks\fs2004\kdfw_0.asm(103) : error A2005: symbol redefinition : texture_riff_start_kdfw
C:\gmax\gamepacks\fs2004\kdfw_0.asm(133) : error A2005: symbol redefinition : texture_riff_end_kdfw
C:\gmax\gamepacks\fs2004\kdfw_0.asm(65534) : error A2071: initializer magnitude too large for specified size
DRAW_TRI_BEGIN(2): Macro Called From
C:\gmax\gamepacks\fs2004\kdfw_0.asm(65534): Include File
C:\gmax\gamepacks\fs2004\kdfw_0.asm(65534) : error A2071: initializer magnitude too large for specified size
DRAW_TRI_BEGIN(2): Macro Called From
C:\gmax\gamepacks\fs2004\kdfw_0.asm(65534): Include File
C:\gmax\gamepacks\fs2004\kdfw_0.asm(65534) : error A2071: initializer magnitude too large for specified size
DRAW_TRI_BEGIN(2): Macro Called From
C:\gmax\gamepacks\fs2004\kdfw_0.asm(65534): Include File
Error!


Hope this helps out.

Ken.
 
Last edited:
This is from more than 20 years ago, so I am amazed that my memory is still serving me...

Not sure if you went through all of this, but there is a limit as to how many vertices per object GMAX can handle, and basically, it is 65534 (64K.) However, I seem to remember this applies to the amount of vertices per MATERIAL that an object can have.

So, the solution, if this indeed is the problem is, if you have a GMAX material called MATERIAL, you need to make copies out of it, as in MATERIAL1, MATERIAL2, etc. and in each one, change slightly something in the settings, as in, a value of specular. Then, apply these materials to different sub-meshes of the object mesh.

More on this in this old post:


Hope this helps.
 
Isn't the size of the data is exceeding the limit ?
One MDL in FS2004's format can only handle under 65535 vertex.
 
This is from more than 20 years ago, so I am amazed that my memory is still serving me...

Not sure if you went through all of this, but there is a limit as to how many vertices per object GMAX can handle, and basically, it is 65534 (64K.) However, I seem to remember this applies to the amount of vertices per MATERIAL that an object can have.

So, the solution, if this indeed is the problem is, if you have a GMAX material called MATERIAL, you need to make copies out of it, as in MATERIAL1, MATERIAL2, etc. and in each one, change slightly something in the settings, as in, a value of specular. Then, apply these materials to different sub-meshes of the object mesh.

More on this in this old post:


Hope this helps.


How do I determine if I'm over the limit? I created a box and mapped it with a texture. When I try to export the box as an .mdl, it works fine. I've read in google search that the MakeMDL does not support 3DS files and ONLY works with X files. I don't think that's true. I'm following a tutorial 'How to Make High Detail Ground Polygs in 2014' by Jirayu Tanabodee, which has 2 parts, parts 1 and 2. This guy uses the FS2004 gamepack in this tutorial but he says it should work for the gamepack FSX. In this turial, he uses a lot of high detailed images and texures and he did not have any problem exporting the model, using the MakeMDL for the gamepack FS2004. Of course, this was back in 2014, about 11 years ago, which is not that long ago. It seems to me that since he is creating a high textured detailed ground poly model, how is he able to export his model, if the 65K limit is a problem? He must have been using Windows 7 or 8 because I think Windows 10 was not released until 2015.

Ken.
 
Last edited:
How do I determine if I'm over the limit?

Ken.
Not sure. I basically did this:

From MATERIAL, create MATERIAL_1 and MATERIAL_2, (each slightly different in one parameter)
Assign MATERIAL_1 to approximately half of the polys in your object, and MATERIAL_2 to the other half.
Compile, if errors, create 2 more materials and assign them to 1/4 of polygons in your object.
Repeat if errors again.
 
How do I determine if I'm over the limit? I created a box and mapped it with a texture. When I try to export the box as an .mdl, it works fine. I've read in google search that the MakeMDL does not support 3DS files and ONLY works with X files. I don't think that's true. I'm following a tutorial 'How to Make High Detail Ground Polygs in 2014' by Jirayu Tanabodee, which has 2 parts, parts 1 and 2. This guy uses the FS2004 gamepack in this tutorial but he says it should work for the gamepack FSX. In this turial, he uses a lot of high detailed images and texures and he did not have any problem exporting the model, using the MakeMDL for the gamepack FS2004. Of course, this was back in 2014, about 11 years ago, which is not that long ago. It seems to me that since he is creating a high textured detailed ground poly model, how is he able to export his model, if the 65K limit is a problem? He must have been using Windows 7 or 8 because I think Windows 10 was not released until 2015.

Ken.
Way back, 20, 25 years ago, GMax was a game developer tool offshoot of 3DS Max. Game developers (in this case, Microsoft) bought the usage rights to GMax and supplied it, along with its proprietary tools (in this case, MakeMDL) to process scenery and save it in a proprietary format (in this case, .x files) which would then process the .x file into BGL or MDL format. The point is, you could not save anything you created with GMax into any of the commonly used formats (like 3DS). However, later on, .x file format became popular, and developers created utilities that converted from .x file to 3DS or any other 3D file format. The point was, GMax was offered for free. Today, we need Blender or 3DS Max to develop for FS.

As for your question, GroundPolys are different than BGL or MDL files. I never used them, so I can't really help you there.
 
Not sure. I basically did this:

From MATERIAL, create MATERIAL_1 and MATERIAL_2, (each slightly different in one parameter)
Assign MATERIAL_1 to approximately half of the polys in your object, and MATERIAL_2 to the other half.
Compile, if errors, create 2 more materials and assign them to 1/4 of polygons in your object.
Repeat if errors again.


Well, when I import the model, it already has 29 materials that appear in the Material Navigator. I guess this is what you're referring to. I've done this in the FSX gamepack and had no problems, but it uses a different method of exporting.

Ken.
 
Well, when I import the model, it already has 29 materials that appear in the Material Navigator. I guess this is what you're referring to. I've done this in the FSX gamepack and had no problems, but it uses a different method of exporting.

Ken.
No, I refer to one material, being assigned to an object with more than 64K vertices. That's the only thing that matters. I remember this error, being SO annoying, that it wouldn't list WHICH object was the offending one (if you had several large objects in your file)

Let's say, you have an object that has 80K vertices, and that object has a material MATERIAL, and you are getting that pesky error... And by an object, I mean a mesh, which may or may not have sub-meshes that are separate from each other.

If you get that error, you would have to create 2 versions of the SAME material, MATERIAL_1, and MATERIAL_2.

Then, you would get into the object's mesh editor and select half of the polys, about 40k, and assign them MATERIAL_1

And, flip the selection, and assign the other half of polys MATERIAL_2.

Now, this mesh would have 2 materials that each cover ~40K vertices and the error would disappear.
 
No, I refer to one material, being assigned to an object with more than 64K vertices. That's the only thing that matters. I remember this error, being SO annoying, that it wouldn't list WHICH object was the offending one (if you had several large objects in your file)

Let's say, you have an object that has 80K vertices, and that object has a material MATERIAL, and you are getting that pesky error... And by an object, I mean a mesh, which may or may not have sub-meshes that are separate from each other.

If you get that error, you would have to create 2 versions of the SAME material, MATERIAL_1, and MATERIAL_2.

Then, you would get into the object's mesh editor and select half of the polys, about 40k, and assign them MATERIAL_1

And, flip the selection, and assign the other half of polys MATERIAL_2.

Now, this mesh would have 2 materials that each cover ~40K vertices and the error would disappear.


Sorry, I just don't understand what you mean. If I had detailed photos, or images of every step you're referring to, I would probably understand. But you don't have to take that time if it's too complicated. I appreciate your help.

Ken.
 
If I can ...

What Misho is trying to tell you is that FS2004 has a very annoying limitation regarding the number of vertices attached to a material (it’s related to the notion of drawcall).
So if you have an object OBJ1 that exceeds 64k with a single material MAT1, it’s better to separate the object into two parts OBJ1 and OBJ2 and create a second material MAT2 (copy of the first one) which will be used by the second part of the object:
OBJ1 => MAT1
OBJ2 => MAT2
So you limit the number of vertices for a given material.
 
If I can ...

What Misho is trying to tell you is that FS2004 has a very annoying limitation regarding the number of vertices attached to a material (it’s related to the notion of drawcall).
So if you have an object OBJ1 that exceeds 64k with a single material MAT1, it’s better to separate the object into two parts OBJ1 and OBJ2 and create a second material MAT2 (copy of the first one) which will be used by the second part of the object:
OBJ1 => MAT1
OBJ2 => MAT2
So you limit the number of vertices for a given material.

I know. But that doesn't explain to me how to do it or what the steps are. I've never done this before and I need to know every step to take, in detail. That's what I need to be able to understand.

Ken.
 
First, read this post: https://www.fsdeveloper.com/forum/threads/polygon-limit-aircraft-fs2004.15245 it's about limits which exist on FS2004.
"How do I determine if I'm over the limit?"
=> To be able to cound the number of polygon which has the same material, you can import your MDL in MCX and use included tools to count and reduce them: drawcalll minimizer.

Searching on FSDeveloper with the subject "drawcall FS2004" you will find a lot of posts.
 
Last edited:
This may be incorrect, but as I remember FS 2004 has a hard limit of 65535 vertices per object, not per material. It was FSX that has the limit per material. Therefore, a GMAX file for FS 2004 cannot contain more vertices than that. You can get the count of the number of polygons in your project, and then multiplied by two or three to get the number of vertices. It all depends on how many vertices are shared between polygons. You can try turning off optimize in the options, that works sometimes. But to get to the options, you need auxiliary programs that are no longer available or run GMAX from the command line.

What I would do would be to select half your project, export selected, invert the selection, and then export selected again. Then place them as two objects.
 
The way of counting the vertex is not that simple.
If the surface smoothing is different , will be prepared as a different vertex.
Also if the texture is not continued from left and right , will be a different vertex.
Reason is vertex data includes texture's position and reflection angle.

I'm making a aircraft so not really same but how I count a vertex is export to .x file by using middleman and MDLcommander and then
Comple by Make Mdl manually and put a check on keep files.
Then will have a asm file and that's a text file , open and check the vertex part.
Then can know how much really used.
 
If you have too many vertices, you will not be able to compile with make MDL, no matter how you do it.
 
If you can export to FSX format, you can load that MDL file into model converter X, then go to object information and that will give you a vertex count.
 
First, read this post: https://www.fsdeveloper.com/forum/threads/polygon-limit-aircraft-fs2004.15245 it's about limits which exist on FS2004.
"How do I determine if I'm over the limit?"
=> To be able to cound the number of polygon which has the same material, you can import your MDL in MCX and use included tools to count and reduce them: drawcalll minimizer.

Searching on FSDeveloper with the subject "drawcall FS2004" you will find a lot of posts.

That post has not helped me one bit. I already know about the limits that exist with the MakeMDL for FS2004 gamepack and you keep repeating what I already heard instead of showing me the steps I need to take in Gmax to devide, or separate, as it's called, so that I can export. I'm being told to separate my objects into 2 parts and create a second material MAT2, and how to assign a material to an object with more than 64K vertices. But how to do that and the steps I need to take in Gamx has not been explained in detail. That's what I want to know, nothing else. Referring me to other posts that does not explain what I asked is not helping me one bit. I'm not learning anything and I'm still right back where I started.

Ken.
 
Last edited:
This may be incorrect, but as I remember FS 2004 has a hard limit of 65535 vertices per object, not per material. It was FSX that has the limit per material. Therefore, a GMAX file for FS 2004 cannot contain more vertices than that. You can get the count of the number of polygons in your project, and then multiplied by two or three to get the number of vertices. It all depends on how many vertices are shared between polygons. You can try turning off optimize in the options, that works sometimes. But to get to the options, you need auxiliary programs that are no longer available or run GMAX from the command line.

What I would do would be to select half your project, export selected, invert the selection, and then export selected again. Then place them as two objects.

Hi Tom,

I have a question. What is the purpose for inverting the selection, and what does that do?

Ken.
 
Back
Top