Possible to style 3D tiles from CityGML?

I have created 3D tiles from CityGML in Cesium ion. Two questions about styling:

Is it possible to style the faces and edges in Unreal Engine?
If so, is it possible to change the styles based on picking or data attributes?


It’s possible to customize how the tileset is rendered by defining a custom material, and specifying it in the tileset properties:

We want to provide a tutorial on this process at some point, but to get started, find CesiumForUnreal Content → Materials → Instances → MI_CesiumThreeOverlaysAndClipping, make a copy of it, and edit the copy. If you’re familiar with Unreal’s Material Layers system it will hopefully be relatively intuitive.

Unfortunately it’s not yet possible to use feature attributes as input to the material. That’s definitely on our roadmap for a future release, though.


Thanks for your reply. Is there a workaround for changing the styles via feature picking and data attributes? I could try my data in GeoJSON or KML, but with over 25,000 polygons, I’m assuming they are likely to be slow to render. Maybe using glTF directly?

I’m not sure if it’s helpful as a workaround, as it may be quite a lot of work, but yes, if you generate a glTF directly you have good control over how things are rendered using glTF’s material system. You’ll have to map attributes to materials yourself, though. Once you’ve generated a glTF, you should be able to upload it to Cesium ion for tiling and hosting.

Thanks. I took a look at the CesiumForUnreal material instances you suggested, but that was more than I needed in this case. I used a basic base color + alpha material via Unreal Engine’s material system to color the features.

I’m having trouble with this myself. I cannot figure out why only the tint of the material is changing, but not the texture.

Here’s the material that I’ve created, by coping the referenced material and creating my own material layer:

Here’s the output that I’m getting on the OSM buildings regardless of how I scale the material:

Ultimately, I want to texture the buildings with my concrete material, and then wrap them with the windows from one of your tutorials on this forum.