User controlled creation of Progressive Meshes

This page is about my master thesis that I've completed at the Technical University of Vienna. I've been researching methods for user controlled creation of Progressive Meshes.

Original model


Reduced to 40%


Reduced to 20%
To demonstrate my results I've implemented a plugin for Maya that lets you create a Progressive Mesh from a Maya polymesh. Once a polymesh has been turned into a Progressive Mesh you can change the model's "resolution" (number of vertices or faces) in realtime.
Furthermore you can control the reduction of the model by marking areas of the model as more important or less important. The reduction algorithm will take this information into account and reduce the less important regions most agressivly, while the important regions will be reduced less.

To try the plugin out, please download the latest version and it's source.

Tradtional: automatic creation of Progressive Meshes

There are several other names for Progressive Meshes: multiresolution meshes, continuous meshes, smooth levels of detail and so on. There has been quite some research on progressive meshes and the whole topic has been covered very well. (look at my Progressive Mesh links)

Most approaches follow the same general pattern: Basically, you feed a source model into a reducer, and it computes the Progressive Mesh sequence. To compute the reduction sequence some sort of error metric is used. The goal is to reduce the model step by step without introducing a big "visual error". This error or difference is measured by the error metric. So basically the error metric is used to decide what to reduce next. One of the main points of distinction between different approaches is the error metric. (Another point of distinction is the way the mesh is reduced: vertex clustering, face collapse, edge collapse, etc.)

What these algorithms also have in common, is that the Progressive Mesh sequence is generated completely automatically.
On the left you can see some steps of such an automatic reduction. (Or click here to see more steps of this reduction sequence) In general, it is a good thing to have the computer automatically create the Progressive Mesh. This option is very useful for streaming geometry: you quickly get a preview model which progressivley refines until you view the object in it's full resolution.

Original model (3924 faces)

Reduced to 70% (2746 faces)

Reduced to 40% (1570 faces)

Reduced to 20% (784 faces)

More control: user controlled creation of Progressive Meshes

But there are situations in which it is desirable to have more detailed control over the reduction process. This is especially true for interactive applications (such as games or simulations) where one wants to use Progressive Meshes for dynamic LOD and load balancing. For these applications, usually one wants all intermediate representations to look as good as possible. And often, some parts of the geometry might just be more important to you than others.
E.g. in a game, for your model of the main character, you might want to have a way to tell the reduction algorithm to reduce the face less than the rest of the body. Another common example is skeletal animation: You might want to reduce the deformable regions around the joints less than the rigid regions.

To address these needs, I've developed a new error metric that let's one specify the importance of regions interactively and intutively. The user simply paints the importance onto the original model, similar to weight painting.
Here's an example, again using the cow model. I've placed the reduced model in the front and the original model in the back of the scene. On the original model, the user has marked the eye and the nose as being important. The eye is marked as more important (white) than the nose (grey). Unmarked regions are black.

automatic reduction

user controlled reduction:
eye and nose marked as being important


Original model - no weights


Original model - weights applied


Reduced to 70% - no weights


Reduced to 70% - weights applied


Reduced to 40% - no weights


Reduced to 40% - weights applied


Reduced to 10% - no weights


Reduced to 10% - weights applied

click here to see more steps of this sequence

To try the plugin out, please download the latest version and it's source. Any form of feedback would be highly appreciated.
This page is maintained by Erik Pojar. If you have any suggestions or questions, contact me: erik@pojar.net
Last update: 2005-08-15