Introduction ====================================================================== This is a guideline how to compile and use FSSR, the Floating Scale Surface Reconstruction software accompanying the following paper: Floating Scale Surface Reconstruction Simon Fuhrmann and Michael Goesele In: ACM ToG (Proceedings of ACM SIGGRAPH 2014). http://tinyurl.com/floating-scale-surface-recon This software is based on MVE, the Multi-View Environment. See the link below for details on MVE, and the next section for downloading and building MVE. http://www.gris.tu-darmstadt.de/projects/multiview-environment/ Downloading and Building MVE and FSSR ====================================================================== MVE requires libjpeg, libpng and libtiff as dependencies, which can be obtained using the package system of your distribution. The following commands should get you started: # Download and compile MVE git clone https://github.com/simonfuhrmann/mve.git make -j12 -C mve # Download and compile FSSR git clone https://github.com/simonfuhrmann/fssr.git make -j12 -C fssr The binaries will be located here: fssr/apps/fssrecon fssr/apps/meshclean FSSR Input Data ====================================================================== FSSR requires as input a point set which contains several required and some optional attributes per sample. Currently, only PLY is supported as input and output format. The attributes are listed below: Name PLY Attribute(s) Type Required? ------------------------------------------------------------------ 3D positions x, y, z float 3-vector required normals nx, ny, nz float 3-vector required scale values value single float value required confidence confidence single float value optional color red, green, blue uchar 3-vector optional A typical PLY file header looks like this: ply format binary_little_endian 1.0 element vertex 36228 property float x property float y property float z property float nx property float ny property float nz property uchar red property uchar green property uchar blue property float confidence property float value end_header If you are using MVE and want to create a surface from a set of depth maps, you can use the 'scene2pset' tool, which is included in the MVE distribution. Usage: scene2pset [ OPTS ] SCENE_DIR MESH_OUT Make sure to specify the parameter --fssr=N which selects the correct depth map and image at scale N, and includes normals, scale and confidences. Running FSSR ====================================================================== First, the implicit function defined by the input samples is evaluated and the isosurface is extracted. This is done with the 'fssrecon' tool. Usage: fssrecon [ OPTS ] IN_PLY [ IN_PLY ... ] OUT_PLY It takes one or more PLY files as input (connectivity information is ignored) and samples the implicit function over an octree hierarchy. The isosurface is extracted and stored in a PLY mesh. Second, the resulting mesh may contain low-confidence vertices, many small isolated components, and degenerated triangles from the isosurfacing. The resulting mesh should be cleaned with the 'meshclean' tool. Usage: meshclean [ OPTS ] IN_PLY OUT_PLY The tool takes as input a mesh, and produces a cleaned output mesh. Several options can control the resulting mesh. See the tools output for details. Trouble? Contact! ====================================================================== Contact information can be found on the FSSR and MVE websites.