CesiumGS / CesiumGS/cesium

Picking + colorize can break when 3DTilesInspector overlay is in the way

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

Description

Sandcastle example: Any sandcastle with 3D tiles picking + 3D Tiles Inspector. For example, [https://sandcastle.cesium.com/?src=3D%20Tiles%20Formats.html](this built-in-one)

Browser: Google Chrome

Operating System: Kubuntu 18.04

Steps to reproduce:

1. Zoom in on one of the buildings so that it's partially under the inspector
2. pick the building, but then move the cursor off the building onto the inspector. Like this:
![image](https://user-images.githubusercontent.com/8422414/106334307-5bb27c00-6258-11eb-922f-d0c97c660c09.png)
3. now while never letting the mouse leave the inspector, turn on colorize
4. now move the mouse back onto the picked building. It loses its color (in the second screenshot, the building should be colorized purple but here it stays the default orange)
![image (9)](https://user-images.githubusercontent.com/8422414/106334361-797fe100-6258-11eb-8de2-6a90b1d3bf23.png)

I presume there's some mouse handler that isn't firing because the inspector is in the way, and this leads to an incorrect order of object creation/destruction.

Also in some rare cases the renderer can crash with an error about using an object that has been `destroy()`ed. Though I can't consistently reproduce this part.

I'm wondering if this applies to other debug settings like wireframes or bounding volumes. I'll check this now.

Contributor guide

Open the contributing guide

Research direction

Reproduce the issue in the Sandcastle 3D Tiles Formats example with the 3D Tiles Inspector overlay, following the listed picking and colorize steps. Start by tracing the mouse interaction between the picked building and inspector, then verify that returning to the building applies colorize correctly without using a destroyed object. Check whether wireframes or bounding volumes show the same behavior if the relevant debug settings are available.

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.