next up previous contents
Next: Recommendations Up: Conclusions and Recommendations Previous: Conclusions and Recommendations   Contents

Subsections

Conclusions

We are greatly pleased with the outcome of our program. It has several options that allows a user to decimate a mesh. The decimation algorithm we implemented was based on Schroeder, et al., but modified for added speed and edge detection. Our program is a highly usable and robust application. It allows the user to view many different properties of the mesh, and it can decimate a model by any number or percentage of vertices in a mesh.

Design

We designed an algorithm based on previous work by Schroeder, et al., borrowing its concept of a ring structure to maintain balance within the removal process, but extending it with concepts from more recent research, such as edge detection, boundary detection, and edge collapse (use of a neighbor to replace the removed vertex in affected triangles rather than retriangulating with more computationally complex methods as in the first work). The algorithm is relatively fast (others have cited computational complexity of or worse[#!hoppe93mesh!#,#!gopi!#], compared to our ), and uses little extra memory after the initial program load (use of top on Unix or System Monitor on Windows shows a steady use of memory while the program decimates). It has been thoroughly tested with many different complex meshes. We believe the visual results of our algorithm are impressive (see the Results chapter), with large models (specifically bunny and hand) remaining closely approximated even after ninety percent of the vertices have been removed.

Implementation and Deployment

The program is flexible and extensible. It uses cross-platform technologies that make rebuilding on other platforms as easy as having a C++ compiler and an OpenGL implementation. Our program is licensed under the LGPL, an open source license, which allows it to be fully modified for specific uses, or used as is without the restrictions of proprietary software. The program has been deployed in source and binary form at http://meshalgorithms.sourceforge.net/ (see Section [*] in the Decimation Program chapter) on the Sourceforge servers[#!sourceforge!#]. The unwritten rule in the open source community is to contribute if you use open source tools or systems. We benefited greatly in this work from the use of Linux, the GNU C++ compiler, and many open standards such as C++ STL and OpenGL. By releasing our source code under a GNU license and in public web space, we hope that we have contributed a useful program and framework to the community that can now be improved upon for all to benefit.


next up previous contents
Next: Recommendations Up: Conclusions and Recommendations Previous: Conclusions and Recommendations   Contents
Tim Garthwaite 2002-02-03