Single Sided Meshing Using Scanner Position


  • In the following tutorial, we will create a single sided mesh from an architectural scan containing Scanner Position metadata.
  • We will use a .PTG file provided by FARO for the Autodesk REAL conference in 2015.

Loading The PTG File And Its SPRT Cache

[G] Create a Point Loader and pick the PTG file.

  • If there is already a matching SPRT cache in the same folder, it will be loaded.
  • Otherwise, press the Build SPRT Cache button.

[G] Switch to the Viewport Settings tab next to the Object Properties panel, and change the Spacing to 10.0 meters.


Defining A Point Region Of Interest

[G] With the Point Loader still selected, create a Point Region Of Interest object.

  • It will be connected automatically to the Point Loader.
  • Its gizmo will be fitted to the bounding box of the point data.

[G] Adjust the Point Region Of Interest gizmo to enclose only the entrance of the building.

[G] Press Z or press the Zoom Extents icon [2] to zoom at the Point Region Of Interest gizmo.

[G] Press the New Bookmark icon [3] to store the current view.


Meshing The Points

[G] With the Point Region Of Interest still selected, create a Mesher object [1].

[G] Press the Set Radius to .... button to accept the suggested Radius value [2].

[G] Enable the option Cull by Normals [3] - this is premature, but let’s see what will happen!

[G] Press the Update Mesh button [4] (or hit F5).


[R] Since we have not provided a valid Normal channel in the Point Loader, the Meshing will finish with an ERROR:


[G] To see the actual error message, place the mouse pointer over the progress bar and look for the tooltip:


[G] Alternatively, press the Details button to show an error popup.

[G] Once you understand the error, press the Dismiss button to remove the entry from the Task Manager.

[B] Clicking the ERROR link at the bottom right corner will remove it and switch to the Log tab where you can look through the reports and find the actual error message.


Generating Normal Channel From Scanner Position

[G] Select the Point Loader and expand the Scanner Data rollout.

  • There is a valid Scanner Index 1 representing the position where the scanner was located when the point data was generated.
  • Let’s use this position to generate a “visibility vector” from the point to the scanner and store it in the Normal channel.

[G] Right-click the Point Loader and select Operators > Add Normal from Scanner Position:


[G] Select the Mesher and press the Update Mesh button (or hit F5)

  • Once the meshing is finished, a valid mesh will appear in the Viewport.

[G] Uncheck the Display Points icon to show only the mesh:


[G] Switch the Display rollout > Face Culling to Tint Back and adjust the color to pure red.

  • The backside of the single-sided mesh will be tinted red:

[G] Check the Display Points icon again.

[G] Switch the Viewport Settings > Point Type to Circle

[G] Change Point Size to 6.0 to see larger circles.

  • The mesh is obviously passing on the one side of the points and does not intersect them.

[G] In the Object Properties panel, check the Flatten option of the Mesher, then hit F5.

  • The mesh will be pushed towards the point cloud, and will intersect with the points, resulting in mostly semi-circles:

[B] What does the Normal From Scanner Position data look like?

  • The Normal channel generated by the operator can be visualized as Color in the Viewport:
  • The Mapping2 channel of the Mesher is the content of the same channel, encoded into the Mesh: