model fize size vs. methodology

 From:  Michael Gibson
3957.4 In reply to 3957.1 
Hi mshideler,

> Or, is there such a thing as general best practice?

Well, it could depend on what you plan on doing with your model, like are you going to render it or are you going to manufacture it? And if you are going to manufacture it, what method is being used?

For example if you're rendering it, it can be much more efficient to make small repetitive details like holes in a mesh fabric, or screw threads or things like that to be applied as textures rather than explicitly modeled geometry.

> How much impact is there on the model's file size verses the
> method taken to build a model?

The model's file size is determined by how many faces and edges there are in the model and how many control points are in each of the surfaces and edge curves (edge curves have both 3D and UV space curves associated with them). In general things that are wiggly or tightly curved (like little fillets or tubes for example) require more control points in order to make them. Like you can't make a wiggly shape out of 2 control points for example, with 2 control points you can only make a line shape. So little curvy pieces can greatly add to the file size in general.

Some processes can make what is called "analytic geometry" which helps with efficiency - that's when a result is genereated as an exact circle or torus or something like that rather than a general surface that has gone through an adaptive fitting process which usually creates many more control points than an analytic.

So in the cube scenario that you were talking about - if you were to apply a fillet to build the rounded fillet pieces that could probably get generated as an analytic torus if it's the intersection of a simple plane and an exact cylinder. Sweep on the other hand doesn't know how to generate analytics, it would produce an adaptive fitted general cubic surface to make that shape and it will have more control points.

> Now, from what I would assume the second method
> would create the larger file.

Most likely it would, just because the rounded pieces would have more control points in them with the sweep. But if you ended up with the same number of faces and same kind of surface structure on each one it would not make any difference what you did to get there. Like for example if you used Revolve to build the rounds rather than sweep you would get an analytic torus with an efficient control point count for those pieces as well.

> However, is there some sort of command or tool that
> can be run to minimize model database size while still
> maintaining actual model topology?

Well, one thing you can do is to run the ShrinkTrimmedSrf command:

That will go through each face and discard the parts of the underlying surface that are larger than the trim curve boundaries that the face is using to mark which portions of the surface are active and which parts are holes.

For example if you do a boolean between a sphere and a torus and you only retain just a little portion of the torus, the full underlying torus surface will still be there, you can see if if you separate to individual surfaces and then turn on control points. If you run ShrinkTrimmedSrf it will cut away those excess parts of the torus.

That's about the only thing that corresponds to what you are describing, there isn't anything like empty or deleted records that could be purged to compact the file like you might have in some kinds of database structures.

The only other thing than that would be some kind of geometric shape recognition mechanism, to do things like figure out if some curve that is made up of 20 control points could actually be represented with fewer control points without altering the shape too much.

> Coming from a history based modeling background I
> have seen what appears to be simple model files being
> huge in the end due to poor practice.

Well, you can certainly create heavier files with poor practices in any geometry modeling program - for example if you want to make a wall that's a plane if you do it by drawing a curve with 20 points in it and then extruding that, that's a lot of excess control points in the surface that don't really need to be there.

So some of the best practices are just kind of common sense things like don't use more pieces or more control points than you actually need for a particular shape.

- Michael