The visual quality and performance of your point cloud display depends on various factors:

  • The number of points loaded.

    • More points mean more detail. If there are more points, you can have smaller dot sizes.

    • More points can also lead to lower fluency and performance.

  • The size of the dots on screen.

    • Smaller dots give you better detail if you have enough point density, but can result in a sparse point cloud if your density is low.

    • Larger dots give you a visually closed surface, but can cause an impression of lower detail and lower performance.

  • Other visual effect settings. The graphic effect settings on the map can have a major impact on visual presentation.

LuciadCPillar does its best to find a good balance between these factors. It also offers various options to optimize visual quality and performance for your dataset, hardware, and use case.

Unclear sparse point cloud
Figure 1. An unclear, sparse point cloud
A nice-looking point cloud
Figure 2. The point cloud displayed with high visual quality

To get the best visualization out of your point clouds, you can configure various options

You can find detailed descriptions of all the settings further on. In this section, you can find our recommendation based on some usage profiles.

Type Quality factor Point size Usage

Low

0.75

Point size adaptive

Mobile devices

Medium

1.0

Point size adaptive

High-end phones & tablets, low-end laptops

High

1.5

Point size adaptive

Mid-range laptops

Ultra

2.0

Point size adaptive

Laptops with gaming hardware

Program: Example of the recommended high settings.
auto pointCloudStyle = PointCloudStyle::newBuilder().pointSizeAdaptive().build();
auto layer = TileSet3DLayer::newBuilder().model(model).qualityFactor(1.5).pointCloudStyle(pointCloudStyle).build();
var pointCloudStyle = PointCloudStyle.NewBuilder().PointSizeAdaptive().Build();
var layer = TileSet3DLayer.NewBuilder().Model(model).QualityFactor(1.5).PointCloudStyle(pointCloudStyle).Build();
var pointCloudStyle = PointCloudStyle.newBuilder().pointSizeAdaptive().build();
var layer = TileSet3DLayer.newBuilder().model(model).qualityFactor(1.5).pointCloudStyle(pointCloudStyle).build();

Detailed settings information

Choosing the right point size

LuciadCPillar offers dot size modes for point clouds. For more details, see PointCloudStyle::BuilderPointCloudStyle::BuilderPointCloudStyle::Builder.

Using pixel-size mode

In this mode, you specify the dot size in pixelsin pixelsin pixels. All dots have the same size in pixels.

This mode works well for point clouds with additive refinement, such as HSPC.

Fixed dots of 4 pixels
Figure 3. Fixed dots of 4 pixels

Using world-size mode

In this mode, you specify a dot size in metersin metersin meters. LuciadCPillar computes the dot size in pixels. Dots closer to the viewer will be larger than points further away.

This mode helps you maintain a visually closed surface when zooming in close to the data, and retain details further away.

Use this mode if you know the rough inter-point distance in your dataset.

World-sized dots of 1.5 cm
Figure 4. World-sized dots of 1.5 cm

Using adaptive world-size mode

In this mode, LuciadCPillar deduces a dot size in meters per tilein meters per tilein meters per tile.

With this mode, your aim is to display the right amount of detail at all times, no matter if you are close to the data or further away.

This mode is the default recommended setting for all point clouds. Use this mode for HSPC point clouds or for point clouds produced by LuciadFusion.

Adjusting the number of points loaded

LuciadCPillar uses the scale information present in the source data to determine what tiles and level-of-detail to load at any given moment.

Sometimes the scale information in datasets isn’t well-configured though, making it difficult to choose the right level.

You can adjust the amount of detail loaded using the qualityFactorqualityFactorqualityFactor settings on TileSet3DLayerTileSet3DLayerTileSet3DLayer. The default is 1.0. Increasing the value results in the loading of more data and detail. Decreasing the value reduces the amount of data.

These are our recommendations for use of the quality factor:

  • If you see sparse points, visible edges between tiles of different level-of-detail, or visible switches in level-of-detail when you are navigating, increase the qualityFactor.

  • If you experience bad performance, or your application starts using too much memory, decrease the qualityFactor.

Using map graphics effects

The map effect eye-dome lighting can significantly enhance the visual depth perception of your point cloud.

See How to configure Map effects for more information.

Working with transparency

If your colorExpressioncolorExpressioncolorExpression adds transparency to your point cloud, you must tell the layer to take this into account.