EllipsoidGraphics with radii as SampledProperty

I have an application that generates cesium entities from satellite ephemeris files. This generates an entity with path graphics and ellipsoid graphics to render the covariance.

This worked great, however as of about a week ago the ellipsoids now render as rectangular fragments and I am unsure what happened, hoping someone might know how to get around this.

Here are 2 sandcastle link that show if I have the ellipsoid and position as sampled properties the ellipsoid renders as rectangular fragments, but if they are both static it renders normally.

Any ideas?

Sampled Property

Static Values

Hi @john_lsas,

Could you maybe paste some pics with red arrows or something about what doesn’t look right? As far as I can tell, both sandcastles look the same to me - but perhaps I’m not seeing what you want me to see.

Best,
Matt

Interesting… The first one looks like this for me and my colleague

The second looks this

Both your sandcastles show a perfect Ellipsoid to me. But I have seen those “scrambled” ellipsoids before: When I used an orthographic frustum with a camera very far way but a frustum small enough to still make the ellipsoid appear large. The farer away the camera, the more “scrambled” the ellipsoids get, so I suppose it is a precision issue. The question is why such a precision issue would appear in your example. Which OS and browser do you use? Did you test in other browsers as well? Maybe some webgl extension is faulty?

1 Like

I’m currently using Windows 11 and I have tried Chrome, Edge and Firefox and all have looked the exact same.

I also tried this in an older version of firefox (v135.0) and older version of cesium 1.124.0. Here is a screenshot showing 3 static ellipsoids that look normal and then one using sampled properties for both position and radii that breaks. Sandcastle link

Weirdly specific, but we have narrowed the problem down to a specific laptop… Any of my colleagues with Dell XPS 16 9640’s see the ellipsoid above, but other colleagues that have Dell XPS 15 9530 the ellipsoid looks correct.

What are their graphic chips?
Would you mind visiting WebGL About with the affected (group A) and the non-affected (group B) laptops? Check which values are different between A and B and post them here. Maybe it is a webgl extension that is different, or some other weird graphic chip specifics.

Only values that are different between the 2 laptops are:

Group A (non working ellipsoid):

UNMASKED_RENDERER_WEBGL ------------------------ ANGLE (Intel, Intel(R) Arc(TM) Graphics (0x00007D55) Direct3D11 vs_5_0 ps_5_0, D3D11)
DEVICE_PIXEL_RATIO (WINDOW) -------------------- 1

Group B (working ellipsoid):

UNMASKED_RENDERER_WEBGL ------------------------ ANGLE (Intel, Intel(R) Iris(R) Xe Graphics (0x0000A7A0) Direct3D11 vs_5_0 ps_5_0, D3D11)
DEVICE_PIXEL_RATIO (WINDOW) -------------------- 1.25

Also, group A have Nvidia 4070 chips and group B have Nvidia 4060 chips.

I tested locally with different window.devicePixelRatio but could not reproduce your issue. I also wouldn’t understand why the laptops with window.devicePixelRatio = 1 are the ones not working – I would have understood the other way around.

Still, you could try out on the Group A to change:

  • browser zoom (e.g., scrolling while pressing Cntrl)
  • OS zoom (right click on desktop background image → display settings → scaling)
  • setting the resolutionScale on the Cesium.Viewer to a different number (e.g., 0.5 or 2)
  • setting the useBrowserRecommendedResolution on the Cesium.Viewer to false (default is true)

Apart from this, I am out of ideas. I hope someone from the Cesium Team (@mzschwartz5 ) can do something with the information we gathered.

I have a similar graphics output issue when attaching an ellipsoid to a moving point. This sandcastle shows it.

My computer, which shows the poor rendering has these WegGL differences:

UNMASKED_RENDERER_WEBGL ------------------------ ANGLE (Intel, Intel(R) Arc(TM) Graphics (0x00007D55) Direct3D11 vs_5_0 ps_5_0, D3D11)
MAX_SAMPLES ------------------------------------ 8

While a colleague has these values, and can see the sphere:

UNMASKED_RENDERER_WEBGL ------------------------ ANGLE (Intel, Intel(R) Iris(R) Xe Graphics (0x000046A6) Direct3D11 vs_5_0 ps_5_0, D3D11)
MAX_SAMPLES ------------------------------------ 16

It’s a bit odd that this looks like quantization errors. I couldn’t imagine (and would have to check the code) whether there’s any place where actual quantization comes into play. But in doubt, it could also be explained by ~“some vertex position being represented only with some obscure 24 bit float” or so.

Curious: When you drag the time slider on one that shows the broken representation (from the last sandcastle), does the ellipsoid then flicker and wiggle, or does it remain fixed in this representation (while moving along the line)?

Otherwise… maybe there are differences in terms of extensions or new functions reported by WebGL Report that could explain the error?

It flickers and wiggles quite a bit.

You crould try out some of the things that anneg mentioned in the post above. But when it ‘wiggles’, it seems to be some precision issue and might require further investigation in the depth of the rendering code. It ccould be tracked in an issue, but … based on the description, it could only be reproduced on very specific systems (and might even be an issue with the graphics card driver or so).

I tried the various things anneg recommended, but to no avail.

I’ve tried updating the graphics drivers, but also no luck.

Thanks for the suggestions, though! Feels very much like a driver/card problem unfortunately.