prim. allowPicking: false, scene.pickPosition(): seems to always return position of the primitive

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

May be similar discussion to other questions regarding transparency etc. where the short answer was, primitive/entity picking is done via a frame rendered with pickColor to determine what has been picked but pickPosition uses the depth buffer.

If a primitive has allowPicking: false pick() does not return it and it is omitted from drill pick results. However, the 3d position in the world of it is still returned by pickPosition rather than the next thing under it.

Is this expected behaviour? (i.e. am I wrong and misinterpreting something ) is it possible to click “through” the entity for a position pick? The primitive has been drawn effectively in the sky above a 3d tileset and so pickPosition should always return the position on the tileset (for this specific use case).

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

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

Primitive to be rendered in the world, but non-interactable i.e. it is translucent to all interactions. pick and drillPick go through it, Position should be of the 3d tileset under it.

Alternatively a Ray intersection test would be an alternative way to get what I want, but 3d tileset doesn’t seem to have a pick method like globe.

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

1.46, Chrome

Hi Shane,

There was an issue in GitHub open, #6817, which sounds adjacent to the problem you’re describing. We just submitted a fix for it in #6837, which may fix your issue. You can grab the current master branch in GitHub, and it’ll be included in the next Cesium release on August 1st.

Thanks!

Gabby