combining multiple tilesets

Hi,

I have a couple of hundred contiguous but non-overlapping 3D tilesets which I want to visualize in Cesium. I can easily visualize a single one, or even multiple, by adding them as separate scene primitives. However, I am convinced that there should be a more clean way of tackling this problem.

I have been looking into the concept of external tilesets (https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification#external-tilesets), but I cannot find a concrete example that implements this concept. If someone has a concrete working example, or another way of combining multiple tilesets, it would be very interesting for me to know.

Thanks,
Jelle

Just found this: https://github.com/AnalyticalGraphicsInc/cesium/tree/master/Specs/Data/Cesium3DTiles/Tilesets/TilesetOfTilesets

This should be plenty to get me started.

Currently, I am trying to implement a simplified version of this example: https://github.com/AnalyticalGraphicsInc/cesium/tree/master/Specs/Data/Cesium3DTiles/Tilesets/TilesetEmptyRoot

When I load the tileset below, it shows a bounding box which remains empty.
{
  "asset": {
    "version": "1.0"
  },
  "properties": {},
  "geometricError": 100,
  "root": {
    "refine": "ADD",
    "boundingVolume": {
      "region": [
         0.04846703948913789,
        0.8844762199784251,
        0.04967613940229841,
        0.8852770039786942,
        0,
        50.00000000037737
      ]
    },
    "geometricError": 100
  },
  "children": [{
    "boundingVolume": {
      "region": [
        0.04846703948913789,
        0.8844762199784251,
        0.04967613940229841,
        0.8852770039786942,
        0,
        50.00000000037737
      ]
    },
    "geometricError": 0,
    "content": {
      "uri": "a.b3dm"
    }
  }]
}

However, if I add the content uri to the root as well, it does show the building (see below). Any pointers as to what I am doing wrong? Thanks in advance.

{
  "asset": {
    "version": "1.0"
  },
  "properties": {},
  "geometricError": 100,
  "root": {
    "refine": "ADD",
    "boundingVolume": {
      "region": [
         0.04846703948913789,
        0.8844762199784251,
        0.04967613940229841,
        0.8852770039786942,
        0,
        50.00000000037737
      ]
    },
    "geometricError": 100,
    "content": {
      "uri": "a.b3dm"
    }
  },
  "children": [{
    "boundingVolume": {
      "region": [
        0.04846703948913789,
        0.8844762199784251,
        0.04967613940229841,
        0.8852770039786942,
        0,
        50.00000000037737
      ]
    },
    "geometricError": 0,
    "content": {
      "uri": "a.b3dm"
    }
  }]
}

You’re pretty much on the right track here!

I think the children is supposed to be a property on the root tile, not on the tileset itself, which would explain why they’re not showing up.

Let me know if that fixes it. This sounds like an interesting application, are these hundreds of tilesets cities/buildings?

Thanks a bunch, that seems to work!
Considering the application: I have developed an algorithm that automatically processes massive amounts (couple of million buildings) of aerial LiDAR data into 3D models. These are then converted into 3D tilesets which I now want to visualize in Cesium.
This is still very much a work in progress, but the results are becoming more and more acceptable.

Thanks again!

I’m glad that helped! That sounds pretty awesome. As you get further along, feel free to share your progress/screenshots!