Tiling Point Clouds

Cesium ion allows you to tile massive point clouds with per-point classification, share them on the web, and combine them with other types of content in the same scene, like 3D terrain and satellite imagery.

This guide explains how.

Point cloud with sub-centimeter accuracy of the historic Pharsalia cabins in Virginia.

Prerequisite

Cesium ion is an open platform for tiling and hosting. It will serve your point clouds as 3D Tiles to any compatible client, like CesiumJS.

Sign up for a free Cesium ion account.

Supported formats

Format File extensions
LASer LAS .las
LASer LAZ (compressed LAS) .laz
  • Files may be zipped.
  • Intensity, Classification, and RGB colors are supported as per-point properties.
  • If all points have the same value for any property, it will be treated as a “no data” value and ignored.
  • Intensity values are normalized between 0-255.
  • If your point cloud is georeferenced it will automatically be placed at the correct location on the globe. Cesium ion reprojects your point cloud to EPSG:4326.

Importing

Cesium ion tiles your point cloud into 3D Tiles when you upload it. Here’s a sample LAZ file you can download to try this out.

  1. On the My Assets tab of Cesium ion, press Add Data to upload your model.
  2. Select Point Cloud.

Add multiple files at the same time to merge them into a single 3D Tileset.

Visualizing

The easiest way to visualize and share your asset is using Cesium Stories.

  1. In the Stories tab, click New Story.
  2. Under Assets, click the Add asset button and choose your asset.
  3. Click on the zoom button (magnifying glass) to go to your asset in the scene. Adjust the view to your liking.
  4. Click on Capture view to save the view.
  5. Click Share and give your story a name.

You can now share your data in an interactive scene! Learn more about Stories with this tutorial.

Use your asset in a custom app

When you click on an asset in My Assets, you’ll see a preview panel on the right side of the screen.

  • The preview panel displays the asset ID, which you’ll need for loading this asset in CesiumJS or other engines.
  • You’ll find a code snippet for loading this asset in CesiumJS at the bottom of this panel.
  • Click Open complete code example to see your asset in Sandcastle.

You’ll find a code example for adding this asset to your CesiumJS app at the bottom of the asset preview window.

Learn how to set up a CesiumJS app with the quickstart guide.

Styling

There are a couple ways to style your point cloud in CesiumJS. If your point cloud is uncolored, turning on point attenuation and lighting makes it easier to see:

Copy to clipboard. Data copied clipboard.
tileset.pointCloudShading.attenuation = true;
tileset.pointCloudShading.eyeDomeLighting = true;

Use the 3D Tiles Styling Language to color or hide individual points based on per-point properties or position. Below is an example of how to apply a style to color points based on Intensity.

Copy to clipboard. Data copied clipboard.
tileset.style = new Cesium.Cesium3DTileStyle({
  color: "rgb(${Intensity}, ${Intensity}, ${Intensity})",
});

See this live code example to see what else you can do with styling point clouds in CesiumJS.