CesiumGS / CesiumGS/cesium

Race condition in billboard clamping

Open
#10,191 4 comments 0 reactions 0 assignees View on GitHub
category - billboards type - bug
Dominant language
JavaScript
Stars
15.7k
Forks
3.9k
Avg merge
4d 6h
Merged PRs (30d)
34

Description

I found this while testing out native promises, but confirmed it happens in master as well.

1. Open Billboard Sandcastle: https://sandcastle.cesium.com/?src=Billboards.html
2. Select "Add marker billboards" It will look like this: ![Screenshot_20220310_184309](https://user-images.githubusercontent.com/1495196/157774113-f750f7d4-6fb4-4393-a013-06806ba0c998.png)
3. Focus should be on the combo box, so press arrow down to switch to "Disable depth test when clamped to ground.
4. As soon as the billboard is visualized and while the terrain is still going, press arrow up to go back to "Add marker billboards" it will now look like this:
![Screenshot_20220310_184417](https://user-images.githubusercontent.com/1495196/157774222-adddcbd9-767c-46e3-96d0-b5e738cc373f.png)

The billboard will remain in the wrong location for other examples as well. Something thinks this billboard is supposed to be clamped to ground when it's not.

P.S. You can use the mouse to switch between the demos as well, but the arrow key makes it easy

Contributor guide

Open the contributing guide

Research direction

Reproduce the problem in the Billboard Sandcastle example at https://sandcastle.cesium.com/?src=Billboards.html by switching between “Add marker billboards” and “Disable depth test when clamped to ground” while terrain is loading. Start by tracing the billboard clamping state during that transition. Done means the billboard remains at the correct location after switching back, including while terrain is still loading.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.