I can't pick the specific voxel in some situations in VoxelPrimitive

https://sandcastle.cesium.com/#c=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

When “this.dimensions = new Cesium.Cartesian3(1440, 720, 1); this.availableLevels = 1;” I can’t pick the specific voxel where my mouse cursor points to.
But when “this.dimensions = new Cesium.Cartesian3(180, 90, 1); this.availableLevels = 3;” I can pick the specific voxel.

Is there any principle that can explain this phenomenon?

BLUF: A wild guess @jjhembd : Do you know from the tip of your head if voxel picking involves some picking buffer/texture that may be limited to 65k elements?

(If not, don’t spend too much time here - it’s really just a sanity check for my guesses…)


It may not be immediately helpful for resolving the issue, but I played around with that a bit, and with

  this.dimensions = new Cesium.Cartesian3(360, 200, 1);
  this.availableLevels = 1;

I noticed something strange: The highlighted/picked voxel is just at the wrong place - and not “always”:

Cesium Forum 47217 Wrong Voxels Picked 2

First, it highlights the voxels under the cursor. A bit further to the north, it suddenly highlights voxels that are further to the right. But the hovered voxels still seem to be “mapped” to consecutive(!) voxels somewhere else.

It shows the voxel index in the output at the top. And this is suspiciously close to 65k. Maybe there is some “picking texture render pass” that uses uint16 textures or so… (Again, just a wild guess, but the point is that it does not not pick - it is just returning “wrong” voxel indices…)