Page 1 of 1

MagicCruncher request

Posted: Fri Sep 22, 2017 2:34 pm
by wolfdienes
Currently I compute the similarity factor to use based on the maximum # of faces a user wishes to permit in a scene top node (typically a product), and something I call the ‘face density’ factor – a measure of how many faces there are in a mesh per a given volume (I use 1 cubic inch).

Of course the result is only approximative so it happens frequently that either the total number of faces or some mesh face densities violate the limit. In these cases I run the MagicCruncher a 2nd time (including only the violating meshes), but with a similarity threshold of 0.1 (so as to maximize the crunch result.

Ideally you would permit to pass these limits to MagicCruncher so it can set the most appropriate similarity factor accordingly.

Answer from Mootools:

I understand your request.
One of the important thing to understand is that MagicCruncher does not modify the way optimization is performed.
It just compute the optimal ratio to be sure that the mesh is not visually destroyed.

There is two cases :
• MagicCruncher give a mesh that is below your poly budget => No problem! MagicCruncher is OK!
• MagicCruncher give a mesh that is above your poly budget => In this case, the poly budget should take precedence. Just call optimize giving the poly number you target.
Calling MagicCruncher a second time, will not guarantee you anything, as for the poly budget, it detects the mesh is altered.

My answer:

The reason I do the 2 pass strategy with MagicCruncher is:

1) Pass 1 will often give me what I’m looking for: very good optimization with no risk of destroying valuable detail
2) Pass 2 will always tell me the limit at which things start to get dicey; if pass 2 leaves me stranded above the poly budget, I do nothing more, because the risk of losing valuable detail is too great.
But if I am now below budget, I can afford to compute a ratio derived from the maximum allowed face density. Let’s say pass 2 brings down the face density per cubic inch (of a mesh) to 3000 and my face density limit is 5000; this indicates I can afford a ratio bringing the mesh to the maximum permitted face density, without risking any dangerous degradation.

Re: MagicCruncher request

Posted: Fri Sep 22, 2017 3:20 pm
by wolfdienes
Another way to describe my request is to return 2 crunch ratios per mesh:
- 1 corresponds to the current magic ratio returned with a given the similarity threshold
- the other corresponds to the smallest possible magic ratio for a mesh before loosing too much detail. This ratio would be returned with a similarity threshold of 0.1 (if this really is giving the lowest possible crunch ratio).