Erroneously semi-transparent pixels in alpha textures


I noticed that the tree models in our 3D Tiles export from Remoscape were getting strange alpha effects, so I tried importing a single tree as glTF from FBX directly into Cesium ion and saw the same effect. Leaf alpha textures are getting semi-transparent even in pixels that have full opacity. So the trunk is visible through the middle of the leaves as in the screenshot below. What can be cause of this and can it be avoided?

Here is the FBX ZIP: (504.5 KB)


Here is a GLB example showing the problem even clearer: (674.2 KB)


I downloaded your tileset and can verify what you are seeing on our end too. By default Cesium JS uses order-independent translucency (OIT) for rendering translucent materials, but it does have known issues with certain values.

The easiest workaround for this is to turn off OIT in the cesium viewer. This can be done in the following way:

const viewer = new Cesium.Viewer("cesiumContainer", {
  orderIndependentTranslucency: false


Thanks, that workaround seems to fix parts of the problem but not all:

Seems like the dark backsides are visible through the other polygons in front of them. Maybe the translucent polygons aren’t automatically depth sorted even if turning off OIT? Maybe they behave differently than polygons that actually have a translucent material while these only have a translucent texture?

It works better with MASK instead of BLEND as glTF alphaMode, but not surprisingly it causes flicker from afar instead. Would be nice with a solution that works with BLEND.

Another note is that using MASK doesn’t work in Unreal Engine, where I had applied a workaround to make BLEND alpha textures work by setting diffuse alpha to 0.995. With MASK they are all opaque again, so this is yet another reason why it would be better if the depth sorting with BLEND worked. Maybe it’s something I’m missing here?