Working with 3D Scan Data
Last updated
Was this helpful?
Last updated
Was this helpful?
3D Scanning outcomes usually start in a point cloud format. Point clouds are a collection of enriched data points; each point has geometry; which is a position (XYZ coordinates), and attributes called scalar fields; which can be any form of numerical data like colour (RGB) and surface orientation (vectors).
Point Clouds usually need some form of post-processing, such as cleaning or alignment before they can be used. They can also be converted into a mesh; a digital representation of a surface.
Some workflows, such as Photogrammetry and the Handheld Artec 3D Scanners, will take you through the whole process of cleaning to meshing. Other workflows may just produce a raw or semi-cleaned point cloud.
Most 3D packages like Rhino, Autodesk can natively support point clouds, but how you can interact with them may be limited, so it will depend on what you may want to do with the Point Clouds. However, NExT Lab is familiar and able to advise or consult on the following workflows:
CloudCompare is a powerful open-source and free software dedicated to point cloud processing. The interface may be a bit clunky, but it is feature-rich - all the basic and expected geometric processing tools are available for cleaning, alignment and measurements - but it also allows you to directly operate on the point cloud's scalar field attributes as well, allowing you to visualise, calculate, generate and manipulate them. CloudCompare also offers tools for running a variety of geometric and statistical calculations over a dataset; such as more meta attributes like point cloud density, to more geometric attributes like surface roughness, curvature, normals, etc.
NExT Lab recommends Cloud Compare as the primary point cloud processing tool, even though you may not need all the features.
Rhino can be used for basic cleaning of and display Point Clouds. However, they can be interacted with to an extent as one would point objects - so they can be used as reference for modelling, be sectioned for drawing production, and rendered to a limited degree.
CloudCompare uses the industry standard Poisson Surface Reconstruction to fit a mesh surface onto the point cloud - it requires a clean dataset with surface orientation attributes for best success.
Mesh Lab is an open-source and free software dedicated to mesh processing. It has a variety of meshing algorithms which may suit some types of point clouds more than others.
Rhino 8 can mesh point clouds in a very forgiving, but inaccurate way using its new Shrinkwrap feature - by 'inflating' each point, it combines into a thick surface that will deviate from the initial point cloud. Further standard mesh processing can be carried out to get it closer to the initial point cloud.
CloudCompare provides viewport based rendering, so the scene may be composed with all the features available to CloudCompare - point size, colour view, scalar field view. The camera is limited to perspective and orthogonal views for static camera or fly-throughs. Artistically, there are not many options to alter the aesthetic. Furthermore, it will always render each point as the same size regardless of its distance from the camera, - this tends to result in flat, ghostly effect.
Point Clouds are a special type of point object that will be rendered natively but require additional processing. Natively, they are rendered the same way as Cloud Compare as fixed sized objects regardless of distance, and will not interact with Rhino lights and shadows in an intuitive way. Some external render engines like V-Ray do allow more expected manipulations and interactions.
Points are treated as the vertices of a mesh, this allows them to be manipulated point clouds as if they were any other object inside Blender. It is then fully integrated into the rest of Blender's 3D production pipeline and suite of tools; cameras, modelling, animation and lighting, so there is complete control over the content and aesthetic. Scalar field attributes can be accessed via weight painting and geometry nodes.
Below is an example of a render with each point rendered as a simple physical sphere - where apparent size changes with depth - this mimics real-world perspective allowing for a more intuitive percepetion of depth.