Project Description

The Objective

One of the important aspects of point clouds are the ability to do interactive analysis using point clouds. To have the ability for example to compare point cloud scans of the real world to planned architectural designs as an estimate of accuracy and building progress. Furthermore, surface orientations and measurements of point clouds was also desired as well as intricate problems like volumetric computations from point cloud surface to point cloud surface as well as point cloud surface to 3d geometry surfaces.

The Problems

Point cloud files contain no more than point coordinates and sometimes colour data. There are no surface data nor any point to point relations in a point cloud file, only points. In order to achieve the above-mentioned objective a lot more information was required than what is available in any given point cloud file.

The Solution

The required, missing information are acquired by means of running mathematical statistical algorithms on the point clouds. These algorithms were implemented using GPU compute shaders. Typical information extracted are features like surface normals (approximate surface formation and orientation induced by cluster of points) as well as surface tension (flow and warp of surface induced by cluster of points). With the extraction of all required features it was possible to achieve the objective of measuring accuracy between real world point cloud scans against the 3D design geometry. Furthermore, with the extracted surface data it was possible to do more intricate calculations like computing the volume between 3D design geometry and point cloud regions. An example of this is the estimation of the amount of earth that is required to be excavated in order to lay down piping which in turn helps with better estimating time and cost predictions for said task.

The following video demonstrates how the extracted surface data allows point clouds to form part of the lighting pipeline

The next video demonstrates converting a selection of points to a 3D mesh object