Billboards visible while on the other side of the globe

Hello everyone,

1. A concise explanation of the problem you’re experiencing.

Billboards are visible while on the other side of the planet

2. A minimal code example. If you’ve found a bug, this helps us reproduce and repair it.

Here is a sandcastle exemple of this behaviour (bug ?) : sandcastle

A video is also available here : video

It seems to occur while I have these parameters set up for the viewer :

viewer.scene.globe.depthTestAgainstTerrain = true;

viewer.scene.globe.backFaceCulling = false;

viewer.scene.globe.showSkirts = false;

viewer.scene.screenSpaceCameraController.enableCollisionDetection = false;

Billboards themselves have :

disableDepthTestDistance : Number.POSITIVE_INFINITY,

heightReference : Cesium.HeightReference.CLAMP_TO_GROUND

3. Context. Why do you need to do this? We might know a better way to accomplish your goal.

I need my billboards to not be cropped by terrain at high altitude, while at the same time 3DTilesets mustn’t be visible while underground if the camera is above ground.

As some of these 3DTileset are under the terrain (subway 3d data), I need to be able to see what’s underground, and so disabling skirts, backFaceCulling, camera collision and so on.

4. The Cesium version you’re using, your operating system and browser.

This behaviour is present using cesiumJS 1.66 and 1.67, on windows, google chrome latest version.

I don’t know if it is still there in 1.68, with the “automatic” underground setting (https://github.com/CesiumGS/cesium/pull/8572)

Setting disableDepthTestDistance to infinity makes these billboards always show through. Ideally what you want is to be able to set disableDepthTestAgainstTerrain to false but only for the billboards, which isn’t currently supported. I opened a feature request for this here: https://github.com/CesiumGS/cesium/issues/8685