Rendering point clouds in Unity

The Unity plugin is amazing:)
Is there a way to render point cloud from cesium in Unity? any suggestions?

Hello @Eytan_Mann, thanks for using Cesium for Unity!

Currently, point cloud rendering is not supported in Cesium for Unity, though it is a planned feature.

If you are experienced with c++, you may be interested to see the experimental point cloud implementation for Cesium for Unreal.


Hi @Eytan_Mann,

Support for point cloud rendering was just merged to the main branch on Github. Feel free to try it out and let us know how it goes!

1 Like

Hi @janine,
could you please give more instructions about adding a point cloud .las data. Which files I should replace or adjust ? It works within JavaScript environment, so I see the point cloud, but not in Unity.

const tileset = viewer.scene.primitives.add(
new Cesium.Cesium3DTileset({
url: Cesium.IonResource.fromAssetId(1558870),

Thank you

Hi @AnastasiaZA,

You should be able to add it like any other Cesium3DTileset. Just paste the asset ID under the “ion Asset ID” field, and make sure that you either paste an access token for it in the “ion Access Token” field, or make this token the default token for your project. Once those fields are full, double-click the game object in the Hierarchy window and it should zoom to your asset.

Let me know if you have any issues.

Hi janine
I used the new version (0.3.1) and successfully loaded the point cloud in the example, Load the server’s point cloud (js loading is normal), in unity although found that the point cloud can be loaded, but the position and Angle is not correct, I directly load in the map inside, and in the scene view of the point cloud development distance is very strange, close directly can not see.

Hi @chiqiangzhe,

I’m not sure I understand your problem, since I don’t know what your dataset is supposed to look like. If your data was positioned relative to some other terrain, then it’s not uncommon to have a tileset appear higher or lower than Cesium World Terrain. You can correct this by changing the Transform on the tileset object.

The angle of your tileset may be off if your tileset is far from the CesiumGeoreference origin. You can bring it closer to your tileset by zooming to your tileset with the editor camera, then click on the “Place Origin Here” button on the CesiumGeoreference.

The upper left part of the picture is photogrammetry data, and the lower right part is the point cloud data. They are in a superposition relationship. The photogrammetry data was positioned exactly, but the point cloud didn’t stack up.
I have a big doubt that the geographic coordinate information of the point cloud data should be in the json file and should not be loaded with position and Angle deviation。
point cloud EPSG:32650-WGS 84/UTM zone 50N , Use cesiumlab3 for the conversion.

  • These datas can be presented perfectly in CesiumJS

Hi @chiqiangzhe,

Can you share a screenshot of the expected result in CesiumJS? And is it possible to share your tilesets with us for testing?

I have found the solution. The Rotation under the primitive0 node (East-Up-North) changes the value of x from 0 to 90 and the position is correct. Due to the large number of point cloud pieces, and dynamic loading. Can I modify it in the Cesium3DTileset script? * Or where can I set it

I would like to ask you how to determine the Angle of point cloud rendering in unity. I also encountered the same problem, and the data set was sliced by cesiumlab. I hope you can get a reply.

Despite the name, cesiumlab is not affiliated with Cesium. Many users have seen their cesiumlab point clouds incorrectly rotated in our runtime engines. When the point clouds are tiled with Cesium ion, they as expected.

Unfortunately, if your data was tiled incorrectly, there’s not much we can do about it.