I am encountering a consistent crash when attempting to load a particular 3D Tileset in my application. I would appreciate any guidance on identifying the cause or potential workarounds.
3DTileďź{
"asset":{
"generatetool":"metis 3dtiles creator",
"version":"1.0"
},
"extensionsRequired":[
"3DTILES_implicit_tiling"
],
"extensionsUsed":[
"3DTILES_implicit_tiling",
"3DTILES_multiple_contents"
],
"geometricError":40000.0,
"root":{
"boundingVolume":{
"region":[1.5707963267948966,0.39269908169872414,2.356194490192345,0.7853981633974483,0.0,3.490658503988659]
},
"extensions":{
"3DTILES_implicit_tiling":{
"availableLevels":1,
"subdivisionScheme":"QUADTREE",
"subtreeLevels":1,
"subtrees":{
"uri":"subtrees/{level}/{x}/{y}.json"
}
},
"3DTILES_multiple_contents":{
"contents":[
{
"uri":"contents/{level}/{x}/{y}/b0.b3dm"
},
{
"uri":"contents/{level}/{x}/{y}/b1.b3dm"
},
{
"uri":"contents/{level}/{x}/{y}/b2.b3dm"
},
{
"uri":"contents/{level}/{x}/{y}/b3.b3dm"
},
{
"uri":"contents/{level}/{x}/{y}/b4.b3dm"
},
{
"uri":"contents/{level}/{x}/{y}/c0.cmpt"
},
{
"uri":"contents/{level}/{x}/{y}/c1.cmpt"
},
{
"uri":"contents/{level}/{x}/{y}/c2.cmpt"
},
{
"uri":"contents/{level}/{x}/{y}/i0.i3dm"
},
{
"uri":"contents/{level}/{x}/{y}/i1.i3dm"
},
{
"uri":"contents/{level}/{x}/{y}/i2.i3dm"
},
{
"uri":"contents/{level}/{x}/{y}/i3.i3dm"
},
{
"uri":"contents/{level}/{x}/{y}/i4.i3dm"
},
{
"uri":"contents/{level}/{x}/{y}/i5.i3dm"
},
{
"uri":"contents/{level}/{x}/{y}/i6.i3dm"
},
{
"uri":"contents/{level}/{x}/{y}/i7.i3dm"
},
{
"uri":"contents/{level}/{x}/{y}/i8.i3dm"
},
{
"uri":"contents/{level}/{x}/{y}/i9.i3dm"
}
]
}
},
"geometricError":40000.0,
"refine":"ADD"
}
}
Hi @jh007,
What versions of the Unity Editor and Cesium for Unity are you using? We recently fixed a crash with CesiumPolygonRasterOverlay with the latest version of the package.
Also, I see that your tileset contains several i3dm models â Iâm afraid Cesium for Unity still lacks support for instanced models, so these may not appear in your scene. However, they should not result in any crash.
In which version was the CesiumPolygonRasterOverlay crash fixed? I am using Cesium version v1.18.1ăUnity Version 2022.3.54f1.
In addition to the possible fix regarding the raster overlay and the support of I3DM, just from looking at the tileset:
"version":"1.0"
"3DTILES_implicit_tiling": {...}
"3DTILES_multiple_contents": { ... }
It looks like this was generated in the narrow time frame that is referred to as the period of â3D Tiles Nextâ. The extensions that are mentioned there had been draft extensions for 3D Tiles 1.0. They have become part of the core specification of 3D Tiles 1.1 in the meantime.
(I donât know in how far Cesium For Unity or cesium-native supports them - I think that cesium-native does not support the âmultiple contentsâ concept of 3D Tiles 1.1, so itâs very unlikely that it supports the (legacy) 3DTILES_multiple_contents extension - but maybe someone can correct me if Iâm wrong)
I tried several versions of Cesium for Unity(V1.6.4~V1.18.1), but whenever I tried to load this data, it crashed.
@jh007 the crash indicates something has gone wrong with a CesiumPolygonRasterOverlay. So, as a first step, you should remove that component from your Cesium3DTileset and see if youâre at least able to load this tileset without it. One possibility is that your tileset isnât âreallyâ loadable due to its use of several features that are not supported in Cesium for Unity (as mentioned above), and that this broken tileset is then triggering a bug in the CesiumPolygonRasterOverlay that is causing the crash.
If removing the component makes the crash go away, then we can investigate the overlay crash more deeply. The easiest path to that will be if you can (privately) provide a copy of the tileset to us. Just to be clear, though, this tileset is unlikely to work well in Cesium for Unity, even after a fix of the crash bug.
Even if it does not crash when the overlay is removed: Is it even possible to load it (âin theoryâ)? Implicit tiling is certainly supported, but is it also supported when it is wrapped into the legacy/next extension? And even if it is: I think that âmultiple contentsâ is not supported (even on the cesium-native level, and regardless of whether it is wrapped into the extension or not). (Again: Correct me if Iâm wrong, I may not be entirely up to date, but thatâs the latest state that Iâm aware ofâŚ)
EDIT: ⌠but all this does not invalidate the point: Removing the overlay may help to narrow down the reason for the crash.
Youâre largely correct @Marco13. cesium-native does support the old 3DTILES_implicit_tiling extension, but not multiple contents (via the old extension or otherwise). Cesium for Unity does not support instancing (via i3dm or otherwise).
