Coloring Point Cloud 3D Tiles by Classification ID

Hello!

I was wondering if there was any way to color points in a Point Cloud based 3D Tileset being streamed from Ion based on classification IDs. I know that CesiumJS has a simple way to do this, as well as Unreal Engine’s native point cloud plugin, but I was unable to do this in Cesium for Unreal.

I originally tried reading the classification IDs through accessing the tileset’s primitive components / Cesium gLTF primitive components and setting each component’s material with a dynamic material instance with the desired color, but this was much too inaccurate.

Then, I tried creating my own material function / material layer which set the color of the material based on classification ID, but could not get this solution working.

Please let me know if there are any solutions to this in Cesium for Unreal! :slight_smile:

CesiumJS Example (from sandbox project):

Unreal Engine Native Point Cloud Plugin:

Hi @tyleraa,

We actually have an example of this in the Cesium for Unreal Samples! Check out the eleventh level, 11_CesiumPointClouds, to see how we style the Montreal Point Cloud based on its classification.

The CesiumFeaturesMetadataComponent is what enables this; it finds the metadata properties on the Cesium3DTileset, then allows you to auto-generate a material that can act on them in some way. If you’re interested in learning more, you can follow our tutorial here.

Let us know how it goes!