Billboard flickers / disappears when disableDepthTestDistance is set to POSITIVE_INFINITY

Summary:

When loading a glb file and a billboard icon at the same time. The billboard is sometimes visible, sometimes not. The billboard flickers when rotating the camera. Sometimes it just disappears entirely.

Sandcastle example:

This issue can be demonstrated with a minor change to the 3D model sandcastle example:

Link to SandCastle

Steps to reproduce:

  1. Open the sandcastle example above.

  2. Run the sandcastle example.

  3. Try zoom-in/out and rotate the scene, the billboard will sometimes flicker and disappear.

Actual/Undesired Behavior:

example

Desired / Expected Behavior:

The billboard should always visible and on top of the model.

Notes :

  1. This issue happens in both using primitives and entities apis to load the GLB file.

  2. This issue only happens in my remote desktop, I didn’t observe the same issue on my local machine.

Browser :

Chrome 83.0

Operating System and Hardware:

Windows 10

GPU: NVIDIA K620

CPU: Inter® Xeon CPU E5-1650 v4 @3.6 GHz

Workarounds / things I’ve tried:

  1. I tried to turn off log depth follow this post, and it did not help.

  2. I tried to set disableDepthTestDistance from Number.POSITIVE_INFINITY to a large constant like 50000, and it did not work.

  3. I tried to change the billboard image from a png to svg, and it did not work.

Welcome to the Cesium community @ernest!

I haven’t been able to reproduce this. Does it only happen when the billboard is overlapping with the model? If you zoom out far enough does it always work fine?

Can you tell me a bit more about your use case? Are you using billboard to mark individual parts of a model or something like that?

Hi Omar,

Thanks for your quick reply! Happy to find a place to ask question!

First of all, I’m not able to reproduce this issue on my local machine as well. I tried zoom out far enough, and it still have the same issue (flicker / disappear). I was wondering if this issue is due to the remote desktop connection or something else related to the remote desktop.

For my user case, I am trying to use billboard to indicate some specific location inside a GLB model. For example, I might want to use billboard to mark a building in a community given the building position (lat, long, height). I hope this explanation helps you.

Best regards,
Ernest

Yes, I think that makes sense, thanks for the additional explanation @ernest!

If you are able to reproduce it more consistently, or perhaps figure out exactly what type of devices the issue happens on, we can log it as a GitHub issue here: https://github.com/CesiumGS/cesium/issues.