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

Recommendations

We hope that our program is useful and that by releasing the source code, we can encourage future work on the project to make it more so. Here we make recommendations for future work on the project that we would have like to have explored, time permitting, that we hope others will be able to implement to accomplish our ultimate goal of contributing useful software to the public domain.

During the design and implementation of our program, we placed more emphasis on the importance of creating a good representation in memory for a scene and creating a robust algorithm for decimating models in that scene than we did upon making the program universally useful. With these goals in mind, we decided to support only two file formats for the input of a model (VRML in two versions and uncompressed ascii Open Inventor) and one file format for output to a file (VRML 2.0), in order to speed along development of a working prototype. We recommend that more file parsers and writers be created, to replace the VRMLParser class with a more robust class that detects file types using header information, and reads and writes more formats, including binary and compressed formats.

During our research, we found many methods of reducing the polygon count in a triangular mesh. We recommend that our program be made more robust by the implementation of quadric error metrics in place of our distance calculation for each vertex, as done in Garland and Heckbert's work[#!garland!#], and also by using edge collapses instead of vertex removal, with more intelligent replacement of vertices, as done in Lindstrom and Turk's work[#!lindstrom!#]. Also in the work done by Garland and Heckbert[#!garland!#], they demonstrated that more information than just geometric information can be used in making a decision about which area of a mesh to simplify, such as the detail level of a texture map that appears over that area. We recommend that these possibilities be explored.

Also during our research, we reviewed work done by Hugues Hoppe[#!hoppe96progressive!#] which demonstrates another way that our program can be made more useful: by creation of a progressive representation of a model during simplification, in which a model is input into a system progressively, with little detail (few vertices) first, and additional detail added as the model is read into a computer's memory. We recommend that our program be extended by implementing an output function that generates a progressive representation, and by implementing surface subdivision (vertex split operations) using decimation as a preprocessor to allow the program to transition smoothly between high quality meshes and lower quality meshes in the viewport in real time, depending upon requirements set by the user for frame-rate demands while moving through the scene or rotating the model, and for necessary quality.

Finally, we hope that our program was designed in such a way as to ease the implementation of other types of algorithms than those that generate or utilize multiple levels of detail for models. We therefore would like to encourage the extension of our program to implement other useful mesh algorithms, such as geometric comparison of levels of detail as done by Cignoni and his colleagues[#!metro!#] or surface subdivision as done by Sharp[#!ss_theory!#,#!ss_implementation!#].

.


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