Hello,
I’m working with CesiumJS and loading multiple datasets as 3D Tiles from Cesium ion.
One of my tilesets contains underground utilities (pipes, infrastructure, etc.) located below terrain level. When viewing the scene from above, the terrain tileset (for example, Google Photorealistic 3D Tiles terrain) completely occludes these utilities.
I know that historically there were a lot of requests to properly hide underground elements but, I’d like to implement exactly the opposite - visualization mode where these underground utilities remain visible even when under the terrain. Let’s call it a “wall-hack” mode, ideally with some kind of outline (silhouette, inverted hull, or similar).
Desired Behavior
When enabled:
The underground utilities tileset should always remain visible
Terrain should still render normally underneath
Only the utilities layer should ignore terrain occlusion
Conceptually, this could behave like:
Rendering the utilities layer in a separate render pass
Disabling depth testing against terrain only for that tileset
Drawing the layer as an overlay on top of the terrain
Things I’ve Tried
Globe translucency:
viewer.scene.globe.translucency.enabled = true;
viewer.scene.globe.translucency.frontFaceAlpha = 0.1;
viewer.scene.globe.translucency.frontFaceAlphaByDistance =
new Cesium.NearFarScalar(50.0, 0.0, 100.0, 1.0);
- Works for the globe, but does not affect terrain from 3D Tiles datasets
disableDepthTestDistance:
- Works for billboards and labels, but not for meshes inside tilesets
Clipping planes:
- Can hide terrain, but also clip everything else, not suitable
depthTestAgainstTerrain:
- works for primitives only
Recreating geometry as a Primitive:
Use a custom appearance with renderState.depthTest = false
Outline as inverse hull, also with depthTest = false
Works, but becomes painful for larger, complex tilesets with thousands of objects. Also depthTest here is disabled per element (instancing multiple objects) they randomly overlap each other - exactly what depthTest does but I need something more like a depthTest for the whole layer, rather than per instance
Ideal Solution
I’d like something that allows me to:
-
Render one tileset/entity always on top
-
Keep normal depth testing inside that tileset (so pipes/objects occlude each other properly)
-
Keep terrain rendering normally underneath
-
Bonus: support outline or silhouette for the “on-top” mode
Question
Is there a supported way, or a clever hack, in CesiumJS to:
-
Render a single tileset/entity on top of everything,
-
While keeping proper depth testing inside the tileset itself?
Any tips, hacks, or API tricks for outlines/inverse hulls that also work in bigger, more dynamic scenes would be super appreciated.

