Hey @Aman-701,
As you mentioned HeightmapTerrainData is CesiumJS class that represents raw terrain heightmap tile data internally. It’s not a texture you can sample in a material, and it doesn’t have an equivalent in Cesium for Unreal, Unreal Engine is an entirely different platform and porting all features is not always feasible or even possible.
I digress, in Cesium for Unreal, the right way to do height-based material effects is through the Absolute World Position node in the material graph (not local space). The reason local Z doesn’t work as expected is that Cesium tiles are spawned at different world positions as the globe traverses – “local” is relative to each individual tile, so it’s not consistent across the terrain.
With Absolute World Position, you get the real-world Z coordinate (in centimeters) that you can use in a linear/smoothstep to blend between your flat and mountain materials at a given elevation threshold.
I’d strongly recommend checking out the Cesium for Unreal Samples project (available on Fab) and looking at Level 9 – 09_CesiumMaterialEditing. It has pre-built material examples for elevation band coloring that you can open up, study, and adapt directly. That should save you a lot of trial and error. Have you looked at this sample yet?
I’ve attached some screenshot of the CesiumHeightBlend material included in the samples project, added to the tileset in Level 9:
Let me know if that points you in the right direction!
Cheers!


