Thanks for all the info! I can confirm this is a bug that was introduced in 1.16. I’ve submitted an issue here: https://github.com/AnalyticalGraphicsInc/cesium/issues/3459
For now, as a work around, the image will render correctly if you add an alpha value to the material. Here is an example:
viewer.entities.add({
position : Cesium.Cartesian3.fromDegrees(-100, 40),
show: true,
ellipse : {
semiMinorAxis : 500000,
semiMajorAxis : 1000000,
material : new Cesium.ImageMaterialProperty({
image : ‘…/images/Cesium_Logo_overlay.png’,
alpha: 0.99
})
}
});
The ‘alpha’ attribute seem to work great also. We initially ran into the problem because our data provider modifies the original image with an alpha value and that gets encoded and sent out to Cesium. We changed it so that the data provider sends out the original image (no alpha, encoded) with the ‘alpha’ attribute in the CZML. I assume this would still work with the 1.20, right?
The ‘alpha’ attribute is actually going to be deprecated in 1.20 and removed in 1.21. This is because I added a color attribute that you can use to tint the image. The ImageMaterialProperty will now get the alpha value from material.image.color.a
So it will still work in 1.20, but you will have to either use transparent: true or color: { rgba: [1.0, 1.0, 1.0, alpha] } for 1.21