Surface

The last step is the surface generation. The surface consists of many triangles that

  • Form a closed surface
  • Follow the point cloud as closely as possible

To start creating the surface, click on the Densification item in the project tree and click on "Create surface...". The following dialog appears:

Here we have again the option of two different set of tools:

If the densification was done using CMVS/PMVS, only Poisson Surface Reconstruction can be used. If MVE was used for densification, I suggest to use FSSR.

 

Poisson Surface Reconstruction offers the following parameters (text partly copied from the homepage):

  • Depth: Defines the level of detail of the resulting mesh. This integer is the maximum depth of the tree that will be used for surface reconstruction. Running at depth d corresponds to solving on a voxel grid whose resolution is no larger than 2^d x 2^d x 2^d. Note that since the reconstructor adapts the octree to the sampling density, the specified reconstruction depth is only an upper bound.
  • Samples per Node: This floating point value specifies the minimum number of sample points that should fall within an octree node as the octree construction is adapted to sampling density. For noise-free samples, small values in the range [1.0 - 5.0] can be used. For more noisy samples, larger values in the range [15.0 - 20.0] may be needed to provide a smoother, noise-reduced, reconstruction.
  • Point weight: This floating point value specifies the importance that interpolation of the point samples is given in the formulation of the screened Poisson equation.
    The results of the original (unscreened) Poisson Reconstruction can be obtained by setting this value to 0.
  • Trim threshold: Poisson Surface Reconstruction tries to create a watertight mesh, i.e. it creates a lot of "excess" surface, closes holes etc. Sometimes this is desired, in that case set this value to 0. Increasing this value will cut away more surface.

 

Floating Scale Surface Reconstruction offers the following parameters (text partly copied from source code):

  • Levels: Defines the level of detail of the resulting mesh. Higher values produce finer meshes but take longer to compute.
  • Scale factor multiplier: Multiply sample scale with factor
  • Confidence threshold: Threshold on the geometry confidence
  • Min. component size: Minimum number of vertices per component (smaller components will be removed)

 

For colorization, two methods can be used:

  • Colorizing vertices: Each vertex (edge) will have a color
  • Textures: Create textures to have much finer color detail

 

The texturizing step offers the following parameters:

  • Photometric outlier removal: If switched on, it tries to remove non-static objects that occur only in some of the pictures, but not in others (like moving persons)
  • Geometric visibility test: If switched on, it will remove parts of the surface that are not visible from any of the pictures
  • Global seam leveling: This flag will improve the quality of the resulting texture by minimizing rough transitions
  • Local seam leveling: This flag will improve the quality of the resulting texture by minimizing rough transitions

 

I suggest to first use colored vertices to see the result of the surface reconstruction. If this is satisfying, create another surface using textures.

Creating textures requires much more time and memory, especially with large projects.