CesiumGS / CesiumGS/cesium

pick Functions cause camera problem in requestRenderMode

Open
#8,826 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

category - camera category - picking type - bug
Dominant language
JavaScript
Stars
15.8k
Forks
3.9k
Avg merge
4d 6h
Merged PRs (30d)
34

Description

Long story short, if you are in requestRenderMode mode, you have to put a scene.requestRender call after every scene.pick/scene.drillPick or similar picking function. Otherwise the next camera action, such as rotating around a building, will pick through the object and into what it thinks is empty space.

Without knowing a ton about the picking code, it seems to me the easy fix is to make all of the pick functions simply issue a requestRender call themselves rather than force all of our users to learn this lesson the hard way.

Here's a Sandcastle you can use

  1. Zoom in on a building
  2. Wait for the scene to load completely (this is important because if Cesium is continually rendering the bug doesn't happen).
  3. Middle mouse rotate around the building slightly (not a huge movement, you don't want to trigger more tiles loading in)

You may have to do step 3 multiple times, but after a few tries it will definitely happen. If you uncomment out the requestRender call, the problem goes away.

CC @lilleyse @IanLilleyT I think you've both been in the picking code recently, thoughts?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked Sandcastle reproduction and verify the failure in requestRenderMode after the scene finishes loading. Trace the scene.pick, scene.drillPick, and similar picking entry points, then confirm that the reported camera-picking failure no longer occurs without an extra scene.requestRender call.

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
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.