Hi Felix,
> I'm curious to know if there is a reason why the OBJ
> export format doesn't have an option for quads only?
It's because "quads only" requires a much different meshing algorithm.
The current mesher (which actually I wrote myself, it doesn't use the geometry library's meshing functions because I didn't like the results they gave) does initially subdivide the underlying surface into quads, but then there are trim curves to deal with. Trim curves are marker curves that live on a surface and mark different areas as being holes, and the trim curves do not necessarily align in any way with the underlying surface's UV quad structure. So the underlying surface quad mesh then gets intersected with the trim curves and that produces n-gons.
This meshing strategy makes for an optimal minimum polygon count structure and cleanest/sparsest wireframe, with things like a trimmed plane being just 1 n-gon, like the cap of this object here:
You can see that's a great mesh for a goal of "sparsest wireframe" - the top face is just one single polygon.
To make "all quads" out of this example would require a much different mechanism - something that tiled the top face with numerous quads, sort of tracing and collapsing the trim curves inwards towards each other and trying to combine them together well when they collide with one another. That's a pretty difficult mechanism to make robust. In the future I would like to work on some approaches for it but I expect for it to take a lot of time and effort to make a good mechanism for doing that, so I don't really know when it will be possible to schedule things like that which require such a large quantity of work.
Triangulation is very different - a big n-gon like that top face can get triangulated by connecting lines between its outline points and not inserting any new vertices into the middle of the polygon, it doesn't have to worry about things like different "waves" of trim curves and inserted points colliding into each other like an all-quad mesher would need to do.
- Michael
|