3ds Max 8 Reduce Poly Count Compile Error

I have a slight problem. The model I imported has around 130k faces. When I try to reduce the face count (either by the Multires or Optimize modifiers) and compile in to a model from the exported smd, I usually get a “too many indices” error. The amount of indices cannot be the error, can it? (I’ve even tried reducing the model to 2k faces just for fun, still the same.) Do I export it as an editable mesh or poly? Does it matter?

Any help with this? What am I doing wrong? This is for a ragdoll. When do I apply the skin modifier with the Multires or Optimize modifiers? Or am I just doing everything completely wrong?


Loaded QC file - "C:\Program Files (x86)\Autodesk\3dsMax8\meshes\TerrorBird	errorbird.qc"

Created command line: "C:\Program Files (x86)\Steam\steamapps\***\sourcesdk\bin\orangebox\bin\studiomdl.exe" -game "c:\program files (x86)\steam\steamapps\***	eam fortress 2	f" -nop4 -nox360 "C:\Program Files (x86)\Autodesk\3dsMax8\meshes\TerrorBird	errorbird.qc"

qdir:    "c:\program files (x86)\autodesk\3dsmax8\meshes	errorbird\"
gamedir: "c:\program files (x86)\steam\steamapps\***	eam fortress 2	f\"
g_path:  "C:\Program Files (x86)\Autodesk\3dsMax8\meshes\TerrorBird	errorbird.qc"
Building binary model files...
Working on "terrorbird.qc"
SMD MODEL C:\Program Files (x86)\Autodesk\3dsMax8\meshes\TerrorBird/reference.smd
ERROR: too many indices in source: "C:\Program Files (x86)\Autodesk\3dsMax8\meshes\TerrorBird/reference.smd"
ERROR: Aborted Processing on 'terrorbird.mdl'
WARNING: Leaking 1 elements


As you can see I’m using the Orangebox compiler. I’m also using GUIStudioMDL 2.2.

http://www.facepunch.com/showpost.php?p=9787188&postcount=10

Edit: heh, heres the topic too >.>

http://www.facepunch.com/showthread.php?t=530090

I ticked “ignore warnings” and it is still giving me that error. :frown:

Sorry i’m unsure of what to do then. Source isn’t supposed to handle more than 10k polys anyway… let alone 130k

Strange, because one of my models I exported had 40k faces. It worked fine.

Not true. This have been discussed many times over.
I myself do not know what the limit might be if there is one, but it’s more than enough to handle almost any kind of model you’re going to compile for the source engine.

The size of your model might be a problem. Is it big?

Nope, a bit bigger than a human.

I have gotten some progress. I reduced the amount of polys/faces to the point where the model looks blocky as hell. That’s so far the only way to make it compile…

http://filesmelt.com/dl/errorroororororo.jpg

http://filesmelt.com/dl/errorororor2.jpg

Are the vertices connected properly? As in, proper strips, not individual tris? That would cause something like this, because it would have too many vertices, while still having a normal polycount.

I’m not sure. I imported it from a Poser .obj file. Is this type of file constructed differently? Would that be the reason?

I wouldn’t really know. I’m just theorizing.

It just doesn’t make sense. This model of Gino compiled fine:

http://filesmelt.com/dl/polywtf.jpg

When this model didn’t, with “too many indices”:

http://filesmelt.com/dl/polywtf2.jpg

I’ve made a constant effort to reduce the poly count, but I really don’t think that this is the issue, as you can see. Unlike the first model, this second model is a group of multiple .obj files attached together. The way I formed this was import each .obj part, scale it, convert each part to editable poly, then attach using the “attach” function.

If someone could enlighten me, it would be much appreciated.

Obviously, something is going over the limits. Can we get a count for unique textures, vertices, and bones?

This was after some optimizing using Poly Cruncher.

Head:

Feathers, body, and part of crown:

Thighs:

Legs, claws, and part of crown:

Is it all one material? I think the limit is 32 textures in one model, but I’m not sure.

I have about 13 textures for the model (separate textures used for alpha channels for transparencies for feathers) but around 10 for Gmod (the vtf’s have the alpha channels integrated.)

That’s not it, then.

Well, I’m baffled. Can you post the first thirty lines or so of the SMD? I might be able to spot something odd about it.

The SMD? It doesn’t get much farther after trying to process the reference SMD. Do you mean the QC?

Well here it is. I used a template that seems to work with “lower” poly models.


$cd "C:\Program Files (x86)\Autodesk\3dsMax8\meshes\TerrorBird"
$modelname "terrorbird.mdl"
$surfaceprop "flesh"
$cdmaterials "models	errorbird\"
$model model "reference.smd"{

}
$collisionjoints physmodel.smd {

	$mass 300.0
	$inertia 10.00
	$damping 0.01
	$rotdamping 1.50
	$rootbone "body"

	$jointconstrain "l_calf" x limit 0.00 0.00 0.00
	$jointconstrain "l_calf" y limit 0.00 0.00 0.00
	$jointconstrain "l_calf" z limit -46.00 46.00 0.00

	$jointconstrain "l_foot" x limit 0.00 0.00 0.00
	$jointconstrain "l_foot" y limit 0.00 0.00 0.00
	$jointconstrain "l_foot" z limit -37.00 37.00 0.00


	$jointconstrain "r_calf" x limit 0.00 0.00 0.00
	$jointconstrain "r_calf" y limit 0.00 0.00 0.00
	$jointconstrain "r_calf" z limit -46.00 46.00 0.00

	$jointconstrain "r_foot" x limit 0.00 0.00 0.00
	$jointconstrain "r_foot" y limit 0.00 0.00 0.00
	$jointconstrain "r_foot" z limit -37.00 37.00 0.00


	$jointconstrain "chest" x limit 0.00 0.00 0.00
	$jointconstrain "chest" y limit 0.00 0.00 0.00
	$jointconstrain "chest" z limit 0.00 0.00 0.00

	$jointconstrain "neck1" x limit 0.00 0.00 0.00
	$jointconstrain "neck1" y limit 0.00 0.00 0.00
	$jointconstrain "neck1" z limit -50.00 50.00 0.00

	$jointconstrain "neck2" x limit 0.00 0.00 0.00
	$jointconstrain "neck2" y limit 0.00 0.00 0.00
	$jointconstrain "neck2" z limit -44.00 44.00 0.00

	$jointconstrain "head" x limit 0.00 0.00 0.00
	$jointconstrain "head" y limit 0.00 0.00 0.00
	$jointconstrain "head" z limit 0.00 0.00 0.00

	$jointconstrain "jaw" x limit 0.00 0.00 0.00
	$jointconstrain "jaw" y limit 0.00 0.00 0.00
	$jointconstrain "jaw" z limit 0.00 0.00 0.00

	$jointconstrain "r_thigh" x limit 0.00 0.00 0.00
	$jointconstrain "r_thigh" y limit 0.00 0.00 0.00
	$jointconstrain "r_thigh" z limit -64.00 64.00 0.00

	$jointconstrain "l_thigh" x limit 0.00 0.00 0.00
	$jointconstrain "l_thigh" y limit 0.00 0.00 0.00
	$jointconstrain "l_thigh" z limit -64.00 64.00 0.00
}
$sequence ragdoll 		"ragdoll" 		FPS 30 		activity ACT_DIERAGDOLL 1




I found some random Koala model. So I quickly rigged it and it seemed to compile fine, minus the screwed up finger and some textures.

Here’s it’s QC:


$cd "C:\Program Files (x86)\Autodesk\3dsMax8\meshes\Koala"
$modelname "koala.mdl"
$surfaceprop "flesh"
$cdmaterials "models\koala\"
$model model "reference.smd"{

}
$collisionjoints physmodel.smd {

	$mass 60.0
	$inertia 10.00
	$damping 0.01
	$rotdamping 1.50
	$rootbone "stomach"

	$jointconstrain "r_thigh" x limit 0.00 0.00 0.00
	$jointconstrain "r_thigh" y limit 0.00 0.00 0.00
	$jointconstrain "r_thigh" z limit -30.00 0.00 0.00

	$jointconstrain "l_thigh" x limit 0.00 0.00 0.00
	$jointconstrain "l_thigh" y limit 0.00 0.00 0.00
	$jointconstrain "l_thigh" z limit -30.00 0.00 0.00

	$jointconstrain "l_calf" x limit -27.00 27.00 0.00
	$jointconstrain "l_calf" y limit -8.00 8.00 0.00
	$jointconstrain "l_calf" z limit -57.00 57.00 0.00

	$jointconstrain "chest" x limit 0.00 0.00 0.00
	$jointconstrain "chest" y limit 0.00 0.00 0.00
	$jointconstrain "chest" z limit -32.00 32.00 0.00

	$jointconstrain "l_arm" x limit -21.00 21.00 0.00
	$jointconstrain "l_arm" y limit -17.00 17.00 0.00
	$jointconstrain "l_arm" z limit -100.00 100.00 0.00

	$jointconstrain "r_arm" x limit -21.00 21.00 0.00
	$jointconstrain "r_arm" y limit -17.00 17.00 0.00
	$jointconstrain "r_arm" z limit -100.00 100.00 0.00

	$jointconstrain "r_forearm" x limit -32.00 32.00 0.00
	$jointconstrain "r_forearm" y limit -55.00 55.00 0.00
	$jointconstrain "r_forearm" z limit -75.00 75.00 0.00

	$jointconstrain "l_forearm" x limit -32.00 32.00 0.00
	$jointconstrain "l_forearm" y limit -55.00 55.00 0.00
	$jointconstrain "l_forearm" z limit -75.00 75.00 0.00

	$jointconstrain "head" x limit -28.00 28.00 0.00
	$jointconstrain "head" y limit -75.00 75.00 0.00
	$jointconstrain "head" z limit -50.00 50.00 0.00

	$jointconstrain "r_calf" x limit -26.00 26.00 0.00
	$jointconstrain "r_calf" y limit -8.00 8.00 0.00
	$jointconstrain "r_calf" z limit -57.00 57.00 0.00
}
$sequence ragdoll 		"ragdoll" 		FPS 30 		activity ACT_DIERAGDOLL 1


Oh, you can’t even get it exported normally?

Well then, I am officially completely stumped. Sorry.

Nope. Here’s the log when compiling the model. I’ll include this in the OP.


Created command line: "C:\Program Files (x86)\Steam\steamapps\*****\sourcesdk\bin\orangebox\bin\studiomdl.exe" -game "c:\program files (x86)\steam\steamapps\*****	eam fortress 2	f" -nop4 -nox360 "C:\Program Files (x86)\Autodesk\3dsMax8\meshes\TerrorBird	errorbird.qc"

qdir:    "c:\program files (x86)\autodesk\3dsmax8\meshes	errorbird\"
gamedir: "c:\program files (x86)\steam\steamapps\*****	eam fortress 2	f\"
g_path:  "C:\Program Files (x86)\Autodesk\3dsMax8\meshes\TerrorBird	errorbird.qc"
Building binary model files...
Working on "terrorbird.qc"
SMD MODEL C:\Program Files (x86)\Autodesk\3dsMax8\meshes\TerrorBird/reference.smd
SMD MODEL C:\Program Files (x86)\Autodesk\3dsMax8\meshes\TerrorBird/physmodel.smd
ERROR: too many indices in source: "C:\Program Files (x86)\Autodesk\3dsMax8\meshes\TerrorBird/physmodel.smd"
ERROR: Aborted Processing on 'terrorbird.mdl'


Ah, thanks anyway. Guess I’ll just have to wait and see if anybody knows of this problem.

Looks like your physics model is the source of the problem according to that log.
Try constructing a new one from primitives if you haven’t done so already.

Also you seem to be counting polygons rather than triangles, as far as I know the number of triangles is what matters.
Seeing as there could be any amount of triangles in a misshapen polygon.

Poser really isn’t the best thing to convert to source from, most of the models are obscenely high poly and don’t carry over nicely without having to butcher them first.