# 3D Tiles 1.1 support?

**URL:** <https://community.cesium.com/t/3d-tiles-1-1-support/19602>\
**Category:** Cesium for Unreal\
**Created:** [July 19, 2022, 8:02am UTC](https://community.cesium.com/t/3d-tiles-1-1-support/19602 "2022-07-19T08:02:24Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![bertt](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/bertt/32/2702_2.png) [@bertt](https://community.cesium.com/u/bertt)\
**Post date:** [July 19, 2022, 8:02am UTC](https://community.cesium.com/t/3d-tiles-1-1-support/19602/1 "2022-07-19T08:02:25Z")

</div>

Is there 3D Tiles 1.1 support in Cesium for Unreal? Like implicit tiling and EXT\_mesh\_features/EXT\_structural\_metadata ?

---

<div class="post-metadata">

**Author:** ![Shehzan\_Mohammed](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/shehzan_mohammed/32/2002_2.png) [@Shehzan\_Mohammed](https://community.cesium.com/u/Shehzan_Mohammed)\
**Post date:** [July 19, 2022, 2:51pm UTC](https://community.cesium.com/t/3d-tiles-1-1-support/19602/2 "2022-07-19T14:51:36Z")

</div>

Hi Bert

Thanks for checking in.

We’ve added some of the extensions for 3D Tiles Next into Unreal earlier this year - `EXT_feature_metadata` and others, but as the spec changed during the standardization process, the newer ones like `EXT_mesh_features` and `EXT_structural_metadata` still need to be implemented. These are on the roadmap for Cesium for Unreal to support before the OGC standardization process is completed and announced, most likely later this summer.

I’d love to hear from you about how you are planning to use these in your work, and how we can help in anyway, including prioritizing the implementation of these. Feel free to reach out to me directly if you are unable to share them publicly.

Regards  
Shehzan Mohammed

---

<div class="post-metadata">

**Author:** ![bertt](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/bertt/32/2702_2.png) [@bertt](https://community.cesium.com/u/bertt)\
**Post date:** [July 19, 2022, 2:58pm UTC](https://community.cesium.com/t/3d-tiles-1-1-support/19602/3 "2022-07-19T14:58:31Z")

</div>

Hi Shehzan, Ok thanks for the info! What about the implicit tiling features? [3d-tiles/specification/ImplicitTiling at draft-1.1 · CesiumGS/3d-tiles · GitHub](https://github.com/CesiumGS/3d-tiles/tree/draft-1.1/specification/ImplicitTiling)

---

<div class="post-metadata">

**Author:** ![Nithin\_Pranesh](https://avatars.discourse-cdn.com/v4/letter/n/ecd19e/32.png) [@Nithin\_Pranesh](https://community.cesium.com/u/Nithin_Pranesh)\
**Post date:** [July 19, 2022, 4:25pm UTC](https://community.cesium.com/t/3d-tiles-1-1-support/19602/4 "2022-07-19T16:25:44Z")

</div>

Hi @bertt ,

Support for a slightly older version of the implicit tiling spec was added last December. I believe the main missing implicit tiling feature is JSON subtrees (we currently only support binary subtrees). There may be some other minor spec changes that we don’t support yet.

So it’s worth trying out your implicit tilesets with Cesium for Unreal to see if they work as is. We have in-progress updates to the implicit tiling implementation that should be available ~2 months from now. Those changes will bring the implementation up-to-date with the spec.

Either way, let us know if you run into any specific issues with implicit tilesets in Cesium for Unreal!

-Nithin

---

<div class="post-metadata">

**Author:** ![bertt](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/bertt/32/2702_2.png) [@bertt](https://community.cesium.com/u/bertt)\
**Post date:** [July 19, 2022, 8:34pm UTC](https://community.cesium.com/t/3d-tiles-1-1-support/19602/5 "2022-07-19T20:34:20Z")

</div>

Hi Nithin,

I’m trying to load [https://bertt.github.io/cesium\_3dtiles\_samples/samples/1.1/delaware/tileset.json](https://bertt.github.io/cesium_3dtiles_samples/samples/1.1/delaware/tileset.json)  
in Unreal (Unreal 5.0.2 / Cesium plugin 1.15.1) but get the following error:

LogCesium: Loading tileset from URL  
LogCesium: Loading tileset from URL done  
LogCesium: Loading tileset from URL [https://bertt.github.io/cesium\_3dtiles\_samples/samples/1.1/delaware/tileset.json](https://bertt.github.io/cesium_3dtiles_samples/samples/1.1/delaware/tileset.json)  
LogCesium: Loading tileset from URL [https://bertt.github.io/cesium\_3dtiles\_samples/samples/1.1/delaware/tileset.json](https://bertt.github.io/cesium_3dtiles_samples/samples/1.1/delaware/tileset.json) done  
LogHttp: Warning: 00000B7E7A020000: request failed, libcurl error: 6 (Couldn’t resolve host name)  
LogHttp: Warning: 00000B7E7A020000: libcurl info message cache 0 (Could not resolve host: content)  
LogHttp: Warning: 00000B7E7A020000: libcurl info message cache 1 (Closing connection 4)  
LogCesium: Error: [2022-07-19 22:29:23.883] [error] [Tile.cpp:497] An exception occurred while loading tile: Connection failed.

The tileset works well in Cesium 1.95: [https://bertt.github.io/cesium\_3dtiles\_samples/samples/1.1/delaware/index.html](https://bertt.github.io/cesium_3dtiles_samples/samples/1.1/delaware/index.html)

There is one subtree json file used (0\_0\_0.subtree) [https://bertt.github.io/cesium\_3dtiles\_samples/samples/1.1/delaware/subtrees/0\_0\_0.subtree](https://bertt.github.io/cesium_3dtiles_samples/samples/1.1/delaware/subtrees/0_0_0.subtree)

---

<div class="post-metadata">

**Author:** ![Nithin\_Pranesh](https://avatars.discourse-cdn.com/v4/letter/n/ecd19e/32.png) [@Nithin\_Pranesh](https://community.cesium.com/u/Nithin_Pranesh)\
**Post date:** [July 19, 2022, 9:03pm UTC](https://community.cesium.com/t/3d-tiles-1-1-support/19602/6 "2022-07-19T21:03:15Z")

</div>

It looks like your subtree file does not have a binary header. The current implementation of implicit tiling expects a header in the format specified by [this struct](https://github.com/CesiumGS/cesium-native/blob/fbf699f4d4b57aba14bff071f877dd167937d274/Cesium3DTilesSelection/src/AvailabilitySubtreeContent.cpp#L18-L23):

```auto
struct SubtreeHeader {
  unsigned char magic[4];
  uint32_t version;
  uint64_t jsonByteLength;
  uint64_t binaryByteLength;
};

```

I believe this corresponds to the binary subtree specification in implicit tiling. It should be easy to hack your subtree file into the binary format:  
The magic (usually “subt”) and version value are currently unused, but the space is needed since the header is expected to be in that exact byte layout. The jsonByteLength should be the number of bytes of your current JSON file (not including the header you will need to add). The binaryByteLength can be 0 in your case, since your subtree buffers are external in .bin files.

Let me know if that workaround is sufficient for your use case (if that doesn’t fix the problem I’ll actually try your tileset). A future version of the plugin should support your JSON subtrees as-is.

---

<div class="post-metadata">

**Author:** ![bertt](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/bertt/32/2702_2.png) [@bertt](https://community.cesium.com/u/bertt)\
**Post date:** [July 19, 2022, 9:11pm UTC](https://community.cesium.com/t/3d-tiles-1-1-support/19602/7 "2022-07-19T21:11:54Z")

</div>

ok thanks I shall retry with the binary format.

---

<div class="post-metadata">

**Author:** ![bertt](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/bertt/32/2702_2.png) [@bertt](https://community.cesium.com/u/bertt)\
**Post date:** [July 20, 2022, 7:08am UTC](https://community.cesium.com/t/3d-tiles-1-1-support/19602/8 "2022-07-20T07:08:30Z")

</div>

With a binary 0\_0\_0.subtree file I get the following error:

LogCesium: Loading tileset from URL [https://bertt.github.io/cesium\_3dtiles\_samples/samples/1.1/delaware/tileset.json](https://bertt.github.io/cesium_3dtiles_samples/samples/1.1/delaware/tileset.json)  
LogCesium: Loading tileset from URL [https://bertt.github.io/cesium\_3dtiles\_samples/samples/1.1/delaware/tileset.json](https://bertt.github.io/cesium_3dtiles_samples/samples/1.1/delaware/tileset.json) done  
LogHttp: Warning: 00000AD33E020000: request failed, libcurl error: 6 (Couldn’t resolve host name)  
LogHttp: Warning: 00000AD33E020000: libcurl info message cache 0 (Could not resolve host: content)  
LogHttp: Warning: 00000AD33E020000: libcurl info message cache 1 (Closing connection 7)  
LogCesium: Error: [2022-07-20 09:07:43.845] [error] [Tile.cpp:497] An exception occurred while loading tile: Connection failed.

---

<div class="post-metadata">

**Author:** ![Nithin\_Pranesh](https://avatars.discourse-cdn.com/v4/letter/n/ecd19e/32.png) [@Nithin\_Pranesh](https://community.cesium.com/u/Nithin_Pranesh)\
**Post date:** [July 20, 2022, 5:16pm UTC](https://community.cesium.com/t/3d-tiles-1-1-support/19602/9 "2022-07-20T17:16:08Z")

</div>

Oh I see what’s going on! I had a misunderstanding about the spec changes for implicit tiling in 3D Tiles 1.1, it turns out it is no longer an extension.

In the previous version that we support, the `Tile.extensions.3DTILES_implicit_tiling` extension was used instead of the `Tile.implicitTiling` property. Since then, the integration must have been integrated into the core spec.

Try replacing this section in the `tileset.json`:

```auto
"implicitTiling": {
  "subdivisionScheme": "QUADTREE",
  "subtreeLevels": 5,
  "subtrees": {
    "uri": "subtrees/{level}_{x}_{y}.subtree"
  }
},

```

with this:

```auto
"extensions": {
  "3DTILES_implicit_tiling": {
    "subdivisionScheme": "QUADTREE",
    "subtreeLevels": 5,
    "subtrees": {
      "uri": "subtrees/{level}_{x}_{y}.subtree"
    }
  }
},

```

Opened an issue to actually add support for the `implictTiling` property directly in the tile json: [Implicit tiling is no longer an extension in 3D Tiles 1.1 · Issue #527 · CesiumGS/cesium-native · GitHub](https://github.com/CesiumGS/cesium-native/issues/527)

---

<div class="post-metadata">

**Author:** ![bertt](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/bertt/32/2702_2.png) [@bertt](https://community.cesium.com/u/bertt)\
**Post date:** [July 20, 2022, 8:49pm UTC](https://community.cesium.com/t/3d-tiles-1-1-support/19602/10 "2022-07-20T20:49:47Z")

</div>

Hi Nithin, like this? [https://bertt.github.io/cesium\_3dtiles\_samples/samples/1.1/delaware/tileset-ext.json](https://bertt.github.io/cesium_3dtiles_samples/samples/1.1/delaware/tileset-ext.json)  
Still unable to load in Unreal ([error] [Tile.cpp:497] An exception occurred while loading tile: Connection failed.).

Cesium viewer works ok [https://bertt.github.io/cesium\_3dtiles\_samples/samples/1.1/delaware/index-ext.html](https://bertt.github.io/cesium_3dtiles_samples/samples/1.1/delaware/index-ext.html)
