I reproduced this in a Sandcastle.
In my specific case, position
remains undefined
because depth
here is 0
(for all three frustums), because pixels
here is [0, 0, 0, 0]
.
I realize drillPickFromRay
is still private; I am using it to test for occlusion and would be very happy with another mechanism.
Made no difference:
- Changing width of intersection volume.
- Setting
webgl.preserveDrawingBuffer
totrue
. - Turning on/off
requestRenderMode
. - Turning on/off
logarithmicDepthBuffer
,pickTranslucentDepth
. - Changing browsers and other environmental factors.
- Upgrading to Cesium 1.77.
Additionally:
When retrying the same batch of rays, the same rays almost always fail regardless of the order in which they are processed; rarely, one that had previously failed will return a defined position.
Pickable primitives (in my case, spheres) that should be intersected by a ray also fail to be returned, and this (almost?) always happens when the position of the intersection with the model is undefined.