planar mesh simplification

Started by
3 comments, last by Khaos Dragon 18 years, 11 months ago
I am just wondering if there are algorithms for simplifying only planes in a mesh. Example of what I mean: Let me propose an arbitrary mesh. In this case we can assume the mesh can be treated as if it were convex. Imagine a box that naturally has 6 sides. 5 of the sides are composed of 2 triangles each while the sixth side is highly tesselated and consists of several faces. However all of these faces lie in the same plane and thus could be simplified to 2 faces. Essentially this reduces the complexity of the model by a lot while maintaining the same convex shape.
Advertisement
This is just off the top of my head, so correct me if I'm wrong anywhere:

If two faces of a convex ovject have the same normal then they must be in the same plane (since if they were in different planes the object wouldn't be convex). We can use this to get a list of all faces in the same plane. If any of the faces in this list share an edge then that edge can be collapsed to form a new convex polygon (there are some cases where this isn't true, so check before collapsing the edge). Repeat until you have only one polygon left, then turn the polygon into triangles. Repeat the whole process for all other face normals.
Yes that is what I was thinking, it seems like it would work, and not just for convex but for concave shapes as well.
Quote:Original post by Khaos Dragon
Imagine a box that naturally has 6 sides. 5 of the sides are composed of 2 triangles each while the sixth side is highly tesselated and consists of several faces. However all of these faces lie in the same plane and thus could be simplified to 2 faces.

Partially true; vertex attributes (texcoords, normals etc) must also be equal.

[size="1"]Perl - Made by Idiots, Java - Made for Idiots, C++ - Envied by Idiots | http://sunray.cplusplus.se
Quote:Original post by Sunray
Quote:Original post by Khaos Dragon
Imagine a box that naturally has 6 sides. 5 of the sides are composed of 2 triangles each while the sixth side is highly tesselated and consists of several faces. However all of these faces lie in the same plane and thus could be simplified to 2 faces.

Partially true; vertex attributes (texcoords, normals etc) must also be equal.


In most cases this is true, in this case however I am trying to prepare the mesh for collision detection.

This topic is closed to new replies.

Advertisement