smsimpall
Compresses a streaming mesh using decimation. It is an implementation of Garland and Heckbert's
QuadraticErrorMetric, which fits into our
PointSelectionFramework.
Usage:
-simprate 0.01
Flag for rate of simplification. The number is the goal for compression rate. IE the decimal fraction of the original vertices and triangles that gets kept. For Example, 0.01 would be a 1% compression rate goal.
-retryrate 2
Values 2-10 are good. Setting it higher results in faster speed but worse simplification.
Some edges cannot get contracted at a specific time because the geometry around them
does not allow this, i.e. they would cause triangle orientation flips (CCW to CW).
As the geometry changes around these edges they may become eligible for contraction.
90% of these cases get automatically unlocked by their neighbors once these cause
a change in the mesh, but the ones that keep staying locked, how often should they
be tried for unlock. For Example, a parameter value of 2 means retry a failed edge
after two successful contractions of other edges.
-mode
The simplification mode. There are three different modes:
0: Streaming fashion. Loads a buffer of edges and performs simplification on a mesh front stripe. The width of this front stripe is important and a large number allows for nicer but slower simplifications.
1: Global (simple). Means that a global buffer is used but it simplifies as it goes.
2: Global all means that it reads ALL the mesh and then starts simplifying. It is extremely good quality, but extremely slow as well. Not feasible for large meshes.
-buffsize 100000
The size of the current active edges under processing. 100000 is a good value, but millions can be used for better quality if you think it's worth waiting longer for the simplification.
-trim 10.9
If this flag is set, all the triangles with at least one edge over 10.0 meters (in this case, but it depends on the specified value) are not output. This gets rid of some artifacts of triangulation, but can leave orphaned points. We may replace it later with a better version.
-zthres 135.0
If this flag is set, A z-Threshold value will be used to divide vertices into two types
(LOW z-value < z-Threshold) and (HIGH z-value > z-Threshold)
Edge compression is not allowed to occur between vertices of differing types.
-supres
If this flag is set, vertices with a HIGH type will not get output.
Also, any triangles incident on vertices with HIGH type will not get output.
--
ShawnDB - 15 Dec 2008