-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Minimum triangle surface area #6
Comments
I have played with this idea before, trying to ignore triangles with a certain area, or by side length. Choosing to smooth some triangles and not others. I haven't had much success in doing so without causing a huge mess. The averaging calculations expect their neighbors to be subdivided, and to share vertex locations. Missing triangles cause gaps, and the worst part is that ignoring them doesn't provide the results you would hope. There are some other options. The issue you're bringing up (more "uniform" subdivision) has more to do with the starting state of the geometry's vertex positions. A geometry with faces that have more even triangle distribution yield much nicer results. This can be seen most clearly in the I believe the ideal solution would be to pre-process the geometry and redistribute face triangles evenly before being subdivided. The whole geometry would have to be looped through to gather faces by checking for shared edges and calculating face directions (i.e. normals). Then a new polygon partitioning algorithm would be ran on each face, with perhaps an option for triangle density. I have planned to do this as a long term goal, but haven't gotten around to giving it a serious try yet. In the mean time, there is another, simpler idea I have tried with some success. It involves scaling the averaging function based on how many triangles share a given vertex. I have added this feature to the library, and the example (the |
Is it possible to implement alternative stopping criteria?
Now the library provides
maxTriangles
, but for exampleminimumArea
would also be a useful criterion, in order to achieve more "uniform" subdivision.The text was updated successfully, but these errors were encountered: