Skip to content
Simon Fuhrmann edited this page Mar 15, 2022 · 3 revisions

Wiki HomeFSSR Users Guide

Introduction

This is a guideline how to use FSSR, the Floating Scale Surface Reconstruction software accompanying the following paper:

Floating Scale Surface Reconstruction — Paper, 11MB
Simon Fuhrmann and Michael Goesele
In: ACM ToG (Proceedings of ACM SIGGRAPH 2014).

FSSR Input Data

FSSR expects an input a point set which contains several required and some optional attributes per sample point. 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. Call the tool without arguments to see the available options.

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.