Step by Step Tutorial of Defining Point Set Surfaces.

General

The basic idea of this plugin is to define (1) surface objects and (2) projecting objects. By default, the first object in the list is the surface object, while the rest are considering projecting objects. This plugin is derived from the ScanTools plugin. So, there are some features shared between the two, such as Box Selection and Undo/Redo (Ctrl-z / Ctrl-y). In the above image, we see the chess piece (surface object) surround by a grid of surfels (projecting objects).

Selection Options

This dialog is almost exact in look and behavior to the one available in ScanTools. Specific to this plugin, the Project Objects must define at least one selection to be used to project on to the surface.

Defining Surface

In this dialog, we can set various parameters. We must make sure to select at least one object in the Surface Objects to define the surface. Currently, we do not allow object to exist both as projecting object and surface object.

Extremal Surface pull down menu:

Here one can choose various surface definitions. Only two (Mahalanobis and MLS) are provided. However, one can implement various definitions by modifying the code.

General Parameters:
k next neighbors: This k closest points are considered during projection.
gauss smoothing factor: This defines global gaussian weight parameter (h).

Polynomial Fit:
Do Polynomial Fit: As a post process, one can fit a polynomial after the surface has been found. This is not a necessary step in defining the surface, however.

Polynomial Degree: The degree of the fitting polynomial.


Weight Options:
Weight by Radius: Instead of using the global gauss smoothing factor, this utilizes each surfel radius as the smoothing parameter.

Scale Radius: The radius is multiplied by this factor before utilized as the smoothing parameter.

Mahalanobis Options:
Mahalanobis Scale (1/c): As described in the paper, this varies the distance metric, with respect to the surfel normals. This option is utilized only when the Mahalanobis method is used (e.g. not used in the MLS method). Note that this parameter is defines the inverse of what is described in the paper, i.e. 1/c.

Brent Minimization Options:
Max Iteration: For each surfel, we allow upto the maximum amount before terminating.
Tolerance: During the projection iteration, if the surfel converges by the tolerance, then it terminates.
Search Range: In Brent's method, we can specify the search range. The unit is in terms of the world space. Larger range allows the minimum search to extend further. Small is better for speed and accuracy.

Surface Objects:
Select which objects are to define the surface.

Find Surface:
Only Modify Selection: If selected, this will project the selected surfels in the Project Objects. Otherwise, it will project all surfels in the Project Objects.

 

Execution:

Press the Find Surface button.

Post Process:
You can calculate the surface normals by using the Smooth Normals in the Diffuser plugin (Menu: Plugins>Geometry>Diffuser...).
Also, it can be helpful to use the Navigation Tools (object navigation ) to either move the surface object or projecting objects.