Author: Dinesh Shikhare
()
Introduction:
Prof. Jarek Rossignac
and his team have released a nice implementation of Edgebreaker triangle
mesh compression algorithm. It is available for download on his homepage.
The code posted on Prof. Rossignac's homepage can handle compression of meshes
representing manifolds or manifolds with a single
boundary. Also, the original compression code reads in
uncompressed mesh only from
OVTable format and the uncompression code
writes the mesh back in OVTable format. I found this very limiting
for my work. Hence I extended their code by developing pre-processing
and post-processing filters to make it more useful for my experiments.
I believe others too can utilize these extensions for their work, and
hence I'm releasing my version of Edgebreaker which wraps
original code released by Prof. Rossignac's team. In case you find this
extension useful, feel free to use it in your programs and modify it as per your needs.
Also, give me some feedback ().
Download:
My code has been developed on Linux platform using g++ compiler.
I have not yet tried to compile it on Windows. Will do so when I find time
(volunteers are welcome :-).
Source code and sample data:
eb.tgz
Future plans include extending this code to handle more general situations
like non-manifold geometry, handling mesh attributes like colour,
texture and a more refined API for the use of Edgebreaker and other
compression schemes. Also, on the anvil is a lossy compression format
that will quantize the prediction errors of coordinate values, colour
and other attributes.
The original code and documentation from Prof. Rossignac are posted
here.
Implementation Notes:
The extended code does the following tasks:
Compression Module:
Decompression Module:
Miscellaneous:
OR
Output the compressed data in a binary file
format. (NEW!!)
OR
Read in the binary compressed file format containing CLERS, HANDLES,
VERTICES and DUMMY data. (NEW!!)