Not sure how easy to code this is, so thought i'd just mention this in case no-one had suggested it before.
I've been using the subdivide then subsurf method to get nice rounded edges on objects - this works fine, but gives far more vertices than are really needed.
If you then use the decimator, it also decimates your nice rounded edges, which is not really what I want. Does anyone else think it would be nice to have an option for the decimator to only operate on co-planar faces (i.e. just the flat "useless" ones)?
Or is there an easy way to do this that I don't know about?
if you don't set the decimator input number of triangles thigy too low it will not trash your triangles
that said, I wish I were working on a better decimator. I seem to have stopped working on it for other projects (mostly websites). Grr, and I am not really in the mindset to explain well how it would work here.
but essentially it would measure the angle across verticies or edges, and use that to determine if to (and what to) colapse so as to use fewer polygons. It would also be nice to have a minimum size option, and have it consider the uv mapping and rigging.
|z3r0_d wrote: |
|It would also be nice to have a minimum size option, and have it consider the uv mapping and rigging. |
Yeah, taking into account of uv mapping would be great...
I don't plan to do anything with this code for the time being if you would like to read up on the algorithm behind the implementation then check out:
The author also includes extensions to the algorithm to deal with other surface properties such as uv coordinates. Although I think Hoppe's algorithm is generally excepted as better (but more hassle to implement)
"New quadric metric for simplifying meshes with appearance attributes."
It's also worth noting that the source code from the first algorithm is available as free software (but not under the GPL). Could be interesting to just ditch the current decimator sources and import his implementation.
As far as the original question - bizaarly dealing gracefully with flat polygonal areas is not something the current implementation deals at all well with (it's very easy to get flipped triangles). Although it should always decimate flat areas before curved areas.
The current implementation is very basic and there is lots of room for improvement.