Below are a set of tools for manipulating ply files. For the marching cubes datasets, we strongly recommend that you run plyclean on them before doing anything further. After that, you might want to run qslim to get the polygon counts more reasonable.
The tools are compiled under linux. On departmental machines, you will find them in:
/cse/courses/cse558/bin
On GRAIL machines:
~curless/558/bin
Here are some quick links to the descriptions of these tools.
Usage:
ply2asc < in.ply > out.ply
Converts a ply file into ascii format.
Usage:
ply2bin < in.ply > out.ply
Converts a ply file to binary format.
Usage (for marching cubes output):
plyclean -defaults < in.ply > out.ply
Removes sliver triangles from marching cubes output.
Usage:
plyhead in.ply
Prints out the header of a ply file.
Usage:
ply2smf < in.ply > out.smf
Converts a ply file to "smf" format used by "qslim" (see below).
Usage:
smf2ply < in.smf > out.ply
Converts a qslim "smf" file to ply format.
Usage (N = target # of triangles):
qslim -t N < in.smf > out.smf
Qslim is a decimation program developed by Michael Garland. It will reduce the number of triangles using a "quadric error metric" to decide which triangles should be removed. Here's the typical usage:
Obviously, the fewer triangles you decimate to, the less faithful the model will be to the original. You should experiment with the value of N for each dataset.
For more details on the usage of qslim, please refer to qslim_readme.txt. For more command line options recognized by qslim. To understand those options, you want to read his SIGGRAPH97 paper.
Usage:
plys2set file.set file1.ply file2.ply ... fileN.ply
Creates a ".set" file consisting of names and sizes of a set of meshes. This set is typically created for a mesh and successively simplified versions of that mesh. The ".set" file can be read into scanalyze, and the various resolutions explored using the "." and "," keys.
Usage:
plybbox < in.ply
Computes and prints the bounding box for a ply file.