Filtering A Subset Of A Point Cloud

  • Most Point Cloud files contain hundreds of millions or even billions of point samples.
  • In many cases, only a fraction of the file content is of interest to the user at a given time.
  • The Point Region Of Interest object can be used to filter a user-defined portion of a Point Cloud.
  • The resulting subset can either be passed directly to a Mesher object, or can be saved to disk to be loaded directly later using a Point Loader object.

Creating A Point Region Of Interest From A Point Loader

  • Select a previously created Point Loader object in the scene.
  • Click the Create A New Point REGION OF INTEREST Object... icon.
  • Use the viewport gizmo handles to adjust the exact dimensions of the Region Of Interest bounding box.
    • Alternatively, adjust the Min. and Max. values via the sliders
    • The sliders’ defaults will be set to match the bounding box of the source point cloud.
  • If a non-world-oriented portion is required, you can rotate the Region Of Interest gizmo as a regular object.
  • Once the region is defined, you can optionally press the [Update Point Loaders] button to only display the filtered points in the viewport.

Creating Multiple Point Region Of Interest Objects

  • Multiple Point Region Of Interest objects can be connected in various ways to filter the same point cloud data.
  • A Point ROI object can be set to exclude points outside of the bounding box gizmo, or, if Inverted, to exclude the points inside the bounding box gizmo.
    • This means that you can create Point ROI objects either around the points you want to keep, or around the points you want to exclude.

Chaining Point ROI Objects

  • One possible way to connect the Point ROI objects is to chain them sequentially, with the output of the previous Point ROI becoming the input of the next.
  • This is especially useful if you want to exclude multiple areas of the point data using Inverted Point ROI objects.
  • In the following example, we
    • Load a Honda CRV point cloud.
    • Create a Point ROI connected to the Point Loader to include the front of the car and exclude the back of the car.
    • Create a Point ROI connected to the previous Point ROI to exclude the points of the left mirror.
    • Create a Point ROI connected to the previous Point ROI to exclude the points of the right mirror.
    • After this, we could connect a Mesher to the last Point ROI in the chain to mesh the filered point cloud...
../../_images/CRV_ROI_Chain_Animation_Text.gif

Branching Point ROI Objects

  • Another possible way to connect the Point ROI objects is to branch them out from the same source object.
  • This is especially useful when including several disconnected regions of the same point cloud.
  • In the following example, we
    • Load a Honda CRV point cloud,
    • Create a Point ROI connected to the Point Loader to include the left mirror.
    • Create a Point ROI connected to the Point Loader to include the right mirror.
    • Create an optional Point ROI connected to the previous two Point ROIs to combine their points and visualize them in the viewport.
    • Create a Mesher connected to the optional Point ROI, or to the first two Point ROIs, to mesh the data.
../../_images/CRV_ROI_Branch_Animation_Text.gif

Saving The Filtered Portion Of The Cloud To A New File

  • In some cases, it makes sense to “bake” the specified region to a new file - for example if the original point data contains the scan of a whole block but you need to mesh a single building out of it, you can resave the filtered points to a dedicated file to make it easier to work with the subset in the future.
  • To save the filtered portion of the Point Cloud as a new file,
    • Expand the “Export” rollout of the Point Region Of Interest object.
    • Press the [Export World Space...] button.
    • Enter a file name for the new file.
    • Specify the output file format (default is SPRT, it is the recommended format to save to).
    • Press the [Save] button.
  • Once the saving has finished, you can load the resulting subset in the same or a new Point Loader to use for further operations.