Artifacts on 3d tiles generated by PhotoScan

1. A concise explanation of the problem you're experiencing.
Hi everyone!
We have 3d tileset generated by Photoscan from point cloud [1]. Cesium 1.52 shows the tileset with many artifacts in chrome [2]. When I switch to firefox, everything looks very good [3]. The tileset also looks good with cesium 1.49 in chrome [4] but I need some features from last version…
We tried different tile size and Cesium3dTileset options but with no effect. There are a lot of warnings in console when use cesium 1.52:
17 WebGL: INVALID_VALUE: texImage2D: bad image data
239 [.WebGL-0000021FD5B82540]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.
We tried to load KMZ [5] to Cesium Ion and got another tileset (by id). There are no artifacts in chrome, but it can’t be used in our case.
What's wrong with the tileset in version 1.52?

2. A minimal code example. If you've found a bug, this helps us reproduce and repair it.
Just simple code from examples ([6],

3. Context. Why do you need to do this? We might know a better way to accomplish your goal.

4. The Cesium version you're using, your operating system and browser.
Cesium 1.52
Windows 10
Google Chrome Version 71.0.3578.98 (Official Build) (64-bit)


Thanks for reporting this and providing all the data, code and screenshots! I was able to recreate this and it looks like it’s broken as of 1.50. I haven’t figured out why it’s happening yet but I opened a bug report on GitHub with some debugging info to help others on the team recreate and debug this:

In the mean time, tiling it with Cesium ion should produce a working tileset. Can you tell me more about why the tileset you got can’t be used in your case?

I just tried it and it looks like tiling it as a KMZ will only optimize the textures, but not the geometry. If you convert it to a textured OBJ and then upload it to ion you should get an optimized tileset. Let me know if that’s possible or if that’s something that fits your workflow. We’re already trying to improve our tools so any feedback helps!

Thank you for quick response.

We have only two reasons:
1. We have some private data. So it's for safety.
2. We have quite a lot of data - around 20 GB at the beggining of work.
So it's just a wish for use local storage because app is not for global network.

I don't have OBJ for now, but will try to get it. I was surprised when see your sandcastle because I also have tried to upload that kmz to Ion and got different result:

It's loading completely different as i can see. I also thought that the problem was Photoscan outputting invalid tiles.

We do have an offline version of all our tilers available:

If you’re interested in trying those out feel free to reach out to Tim (

For the tileset in my Sandcastle, that was actually just the original tileset that you uploaded here (the one produced from Photoscan). I haven’t shared a link to the one tiled by ion because it takes too long to load since it doesn’t decimate the geometry when it’s a KMZ.

Thank you, but we want to use PhotoScan for tiling because we work with it for model creation. So we have a tool in fact. Otherwise it looks like processing will be performed twice. May be next time.