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.