Meshing A Point Cloud

  • The main function of SEQUOIA is the creation of geometry from Point Clouds.

  • The Mesher object accepts data from one or more Point Loader and/or Point Region Of Interest objects.

Creating A Mesher Object

  • To create a Mesh from an existing Point Loader or Point Region Of Interest source object, select the source object first, then click the Create A New MESHER… icon in the Main Toolbar, or select Main Menu > Create > New MESHER menu item - the selected source will be connected automatically as the input of the Mesher, and the Mesher will become selected instead.

  • Alternatively, you can press the default keyboard shortcut CTRL+ALT+M, or the current shortcut if the default was remapped to a different keys combination.

  • To add more sources to the Mesher, you can use the [Add…] button in the “Point Sources” rollout of the Mesher’s Object Properties.

Adjusting The Mesher Radius Value

  • The default settings of the Mesher have been chosen to work in the majority of cases, so there is usually no need to tweak anything but the controls found in the “Meshing” rollout.

  • The main value that requires adjustment depending on the size and spacing of the point cloud is the Radius.

  • To help with setting the Radius, SEQUOIA will scan the incoming data and suggest a value.

  • You can press the [Suggest Radius] button to rerun the calculation in case you changed the input data, and press the [Set Radius to X.XXX] button to set the value.

  • Note that the [Suggested Radius] is just a rough estimation and usually requires further tweaking. It typically needs to be reduced to produce tighter and more precise meshing at cost of performance and memory usage.

Adjusting The Components Culling Threshold

  • Scanner data can often contain outlier samples caused by stray rays that were reflected by shiny or semi-transparent surfaces like glass or chrome.

  • Such outlier samples usually produce a tiny spherical mesh that is usually undesired.

  • To remove such mesh components that are detached from the main high-resolution mesh, the Mesher exposes some Component Culling controls.

  • A Cull Components drop-down list offers the following three options:

    • No Culling - the mesh will be passed on without changes.

    • By Face Count (default) - any components with less than the specified number of faces will be removed. Default is 1000 faces.

    • By Surface Area - any components with a surface area less than the specified threshold will be removed. Default is 0.0 square meters, you should enter a positive value to perform any culling.

  • The default component culling of less than 1000 faces should work well for the majority of cases.

  • Note that the component culling is normally performed on the original mesh, before the Mesh Reduction step described below.

  • The culling is performed by a mesh operator node that is created and connected to the Mesher when the Mesher is created

    • Such an operator can also be added manually to a Mesh Loader via the Document Explorer for post-processing after mesh export.

Using The Conform Option

  • The meshing algorithm used by SEQUOIA creates a two-sided mesh surrounding the point cloud at a distance approximately equal to the Meshing Radius.

  • Using the Conform to Points option, both sides of the mesh can be adjusted to the surface defined by the point cloud.

  • The Mesher exposes only a checkbox to turn the Conform on and off (it is off by default).

  • The actual conforming is performed by a mesh operator node that is created and connected to the Mesher when the Mesher is created.

    • However, this operator can only be used on a Mesher as it uses the point sources of the Mesher implicitly and does not expose any controls to pick a custom point cloud to use.

    • In other words, you cannot currently conform a Mesh Loader containing an already exported mesh in a post process due to the above limitation.

Using And Adjusting The Relax Values

  • The mesh created by SEQUOIA can contain some noise produced by stray samples or imprecisions in the scanner’s measurements.

  • In some cases, it can be useful to apply a relaxation to each vertex based on its neighbors to smooth out such irregularities.

  • The Relax option of the Mesher is turned off by default.

  • When the option is checked, two new sliders will appear beneath the Relax Mesh checkbutton - the first controls the number of iterations, the second controls the relax weight (the influence of the neighbor vertices on a vertex).

  • The relaxation is an iterative process - after each iteration, the whole mesh is a bit smoother, and the next iteration uses the previous one’s results to perform another adjustment.

    • In each iteration, for every vertex, its neighbor vertices it shares edges with are collected and their average position is calculated,

    • Then the vertex is moved to a position that is a blend of its current position and the average of the neighbors.

    • The distance the vertex moves depends on the Weight value - when it is 0.0, the vertex retains its current position, when set to 1.0, it moves to the avergae of the neighbors, when set to 0.5 (the default), it moves half-way towards the average position of the neighbors.

  • The relaxation is performed by a mesh operator node that is created and connected to the Mesher when the Relax Mesh option is checked.

    • The same operator can be added manually to a Mesh Loader to perform post-processing smoothing after a mesh has been exported.

Adjusting The Mesh Reduction Value

  • SEQUOIA will typically create a very dense mesh.

  • Once you have figured out a good Radius for the data at hand, you might want to simplify the mesh to reduce the number of polygons and vertices.

  • By default, the Reduce Mesh option is set to “To Face %” mode, and the Face % value is 100.0, so no reduction will be performed.

  • As a rule of thumb, a value of 10.0% is often a very good first test to determine if more or less reduction is required.

  • Note that changing the Face % value and pressing [Update Mesh] will reuse the cached Mesh and only perform the reduction step, so tweaking the value is generally faster that remeshing from scratch.

  • If you set the Face % to a value that has been used previously in the current session (e.g. 100%), the mesh should typically be reloaded from cache without any further processing.

  • Setting the reduction % value to 0.0 will not destroy the mesh, but will produce a non-zero-faces result that cannot be optimized further without losing the basic shape of the mesh.

  • The “To Face %” mode is very useful as it is defined relative to the total number of faces, no matter what it is.

  • In rare cases when trying to fit within some known limits (for example a polygon limit imposed by a 3D printing service), it might be beneficial to switch the mode to To Face Count and enter the exact number of polygons expected.

  • Note that due to the multi-threaded nature of all SEQUOIA processes, the actual polygon count will be close to the requested value, but might not be quite exact.

  • The reduction is performed by a mesh operator node that is created and connected to the Mesher when the Mesher is created.

    • Such an operator can also be added manually to a Mesh Loader via the Document Explorer for post-processing after mesh export.