Pointcloud rendering

This may not be the most common usage scenario for Blender but if you want to visualize pointcloud data coming for example from a LIDAR scanner or a Kinect or whatever 3D scanning device you are using you are basically out of luck. This is because point clouds have no volume, no faces, and no edges.

There is of course the naive approach to use halos but they either are too strong or not visible at all (if the pointcloud is too big).

Halo texture is too weak. Points in the background are not visible.

Halo texture is too strong. Points close to the camera merge into one big blob.

One may find a good enough setting to use halos for a specific scene but this is hardly a generic solution and the result is still inferior to the point cloud rendering we will do here.

For our Halloween video we exported every scan to a PCD file and used the point cloud viewer from PCL to visualize it and store it in an image file. Which is also a bad solution and very time consuming, but at least the points in the cloud look better.

Better solution: Wireframes

Rendering an object with a wireframe texture would look great but this does not work if the mesh has no edges. Which is the case for pointcloud data. What we need to do is to create edges without actually modifying our mesh geometry. Fortunately the wireframe rendering works with zero length edges too. The basic idea is to extrude all vertices and thus create edges between the original vertices and the extruded ones which in turn can be rendered using the wireframe material.

To render a pointcloud with a wireframe material follow these steps:

  • Import your pointcloud data. In our case we import a Stanford PLY file which contains only points but no edges or faces.
  • The example file can be downloaded here
  • Once the pointcloud is imported, select it and go to edit mode
  • Make sure all vertices are selected
  • Extrude all vertices (hit the E key) and instead of moving the extruded vertices just hit Enter Update If you extrude the vertices in-place it may happen that they are no longer visible in object mode. To work around this move the extruded vertices a tiny bit in any direction.
  • Go to the materials panel and assign a material to the pointcloud
  • Set the material type to Wire
  • Optional: Chose a color you want for your pointcloud
  • In the material panel und Shading set the Emit value to 1.0 (or whatever you feel comfortable with)
  • Finished. Now you can render your pointcloud like in the image below

Pointcloud rendered using this tutorial.

Material settings.

And of course this can also be used in animations.

Uni Salzburg

social