Poisson Surface Reconstruction (plugin)
qPoissonRecon stands for "Poisson Surface Reconstruction" and is a simple interface to the triangular mesh generation algorithm proposed by Misha Kazhdan of Johns Hopkins University.
This is exactly the same implementation as the PoissonRecon library maintained and shared by the author (currently used version: 7).
Therefore, if you use this tool for a scientific publication, please cite the author before citing CloudCompare (which is also very good but less important in this particular case ;).
CloudCompare simply adds a dialog to set some parameters (see below) and a seamless integration in its own workflow.
- to use this plugin, the user must select a point cloud with normals
- to obtain good results, the normals of the cloud must be clean (i.e. the orientation of all normals must be correct/consistent and not too noisy)
- by default the algorithm should be applied on closed 3D shapes, but you can use the output 'density' information to get a valid mesh even on an open mesh (typically such as terrains - see below)
The plugin dialog looks like this:
The parameters are relatively clear and their precise definition can be found on the original library page.
The main parameter is 'octree depth'. The deeper (i.e. greater) the finer the result will be, but also the more time and memory will be required.
Here is an example of output mesh (the mesh is on the left, and the input cloud - with normals - is on the right):
Since version 2.6.2 (i.e. with PoissonRecon v7), the original cloud color can be automatically and properly interpolated (check the 'interpolate cloud colors' checkbox).
Using the output density
The most interesting feature when working with open shapes (such as LIDAR clouds, etc.) is the 'density' measure output by PoissonRecon.
You can use this scalar field to reduce the output mesh extents so as to match as best the input cloud extents:
- once the computation is done, close the plugin dialog
- select the output mesh
- scroll its properties down (see the 'Properties' dialog - on the left by default) until you see the 'SF display params' section
You can use the left white circular interactor (which corresponds to the 'minimum displayed value') to interactively hide the triangles whith vertices having the lowest density values. They correspond to the triangles that are the farthest from the input cloud.
Once you are visually satisfied with the result, you can export the visible triangles as a new mesh:
- use the Edit > Scalar Fields > Filter by Value method
- the min and max values should be already set as the one you have interactively set
- confirm to create a new mesh
- you can drop the 'density' scalar field at least on the output mesh (with Edit > Scalar Fields > Delete)