In the previous post you learnt about some of the different softwares that can be used to create and manipulate point clouds. In this post you will learn how software overcomes the challenge of displaying such large amounts of data on screen and how you can use this to improve the speed of your software.
Viewing large models fluently
As you may have noticed by now: point clouds are large. Since a computer has a limited amount of memory, it cannot hold all the points of a point cloud, in the memory, at all times. A computer screen also has a finite number of pixels. That’s why it does not make sense to display all the points at once.
Multiscale to the rescue
Basically, point cloud software solves this problem by only displaying the points that are actually visible. This visibility depends on the screen resolution and the size of the “window” which is being used to view the scene. Imagine your screen has 4 million pixels, then 4 million is the maximum number of points that can be shown at any given moment. This can be either a low-resolution version of the full extent or a small part in full detail.
To illustrate this, let’s have a look at a 2D image. Our example uses a skyline image in three zoom levels. Imagine your computer can only show 300×192 pixels. This is the size of the frame on the images in our example. Dependant on how much you zoom in or out, you can view the full scene at low resolution (left), some details (middle) or maximum detail (right). In each example, the same number of pixels are displayed.
The difference is that point clouds are 3D not 2D and 300×192 is very small compared to current screen standards. However, the principle is exactly the same. The software does not read, nor show all the points at any one time. Instead, it only reads and shows what is relevant to the current view at a given moment.
Multiscale needs extra preprocessing
To be able to find those points quickly, preprocessing needs to reorganize raw point clouds in a more efficient way. Points that are close to each other in space, are also grouped in blocks together on disc. For faster zooming, the points are also made available in different zoom levels, just as in our 2D example. That explains why a preprocessed file is larger than the original, raw data.
Once the preprocessing is ready, the software can immediately find the points that are currently visible on screen. This preprocessing of a point cloud data for efficient searching and querying is sometimes also called “indexing”. It can take a long time, but once started does not need human attention. If it is run overnight, the user can use the preprocessed results the next day and this preprocessing only needs to be computed once per dataset.
Tuning details versus performance
A user with faster hard disks, a higher resolution screen and more RAM available can handle a larger number of points at a time than a user with more limited hardware. That is why it is useful to be able to change that number of points displayed per instance or, if you want, the size of the viewing area. In BricsCAD the command POINTCLOUDPOINTMAX will show you.
Return to the blog next week to learn how to convert point clouds into meshes.
Ready to try BricsCAD
Easy to try, easy to buy, easy to own. That’s BricsCAD. Try all of our products, for free for 30 days at www.bricsys.com. Freedom of choice, plus perpetual (permanent) product licenses that work with all languages, in all places. You’ll love what we’ve built for you with the BricsCAD product family.