Add 3dtiles(gltf1.0)

Using cesiumforue4 to load 3dtiles file ( gltf1.0) in ue4, it keeps reporting error, do I need to convert the gltf to upgrade 1.0 to 2.0?and how do i solve the promblems。

Hi @5m3d,

glTF 1.0 is not supported, but you can upgrade the tileset using this upgrade tool:

Let me know if that helps with your issue!

I’ll give it a try.

i use gltf-pipeline upgrade gltf from 1.0 to 2.0,but the error is no different,i will try to solve the problem from other directions。thank u very much。

This error is simply a json file problem, I wrote a program to batch modify all the tileset.json of 3dtiles , the problem has been solved, but began to face the next problem。here is 。。。This error lets me know what I’m going to do :joy:

I think there may be some confusion about the reason for the original problem and the new problem.

The original problem was

Tile contained an unknown refine value: replace

This is unrelated to glTF. It just means that the tileset contains a "refine": "replace" entry, but the entry should be "refine": "REPLACE" (in uppercase). This issue is tracked in Should enum string value comparisons be case-sensitive? · Issue #345 · CesiumGS/cesium-native · GitHub

You now said

I wrote a program to batch modify all the tileset.json of 3dtiles , the problem has been solved, but began to face the next problem

and I assume, as a wild guess, that you wrote a program that does this replacement (i.e. to change "replace" to "REPLACE"). That’s fine as a workaround for the original problem.

But now, the new problem is

Only binary glTF version 2 is supported, found version 1

and this is indeed caused by the fact that glTF 1.0 is not supported. And it should be possible to solve this with the tool that @agallegos linked to in a previous message. (Note that you explicitly have to use the 2.0-tools branch, and not the master branch).

So if you updated your tileset JSON (to use "REPLACE" instead of "replace"), then you might apply this tool to your current tileset, to also update the B3DMs to contain glTF 2.0.

(It’s a bit of a hassle, I know. Hopefully, tiling tools will only generate B3DMs with glTF 2.0 by default in the future…)

The .b3dm data was converted from .3dml by TerraExplorer Pro7.2, and gltf was upgraded from 1.0 to 2.0 by tools such as gltf-pipeline, which loaded into ue4 without error, but no data was seen on the screen. I think it is possible that this expansion method is not supported by ue4, how can I fix it if this is the problem?
Or is it because of other reasons?

@5m3d I think this can be discussed in the dedicated thread at Add 3dtiles(extension)

I have the same problem, and use the 2.0-tools to upgrade the files. But have a new problem.

Sorry, only a quick first shot: There had been a problem with some GLB data. You might want to try to do the conversion with the 3d-tiles-validator/tools at 2.0-tools-fix · CesiumGS/3d-tiles-validator · GitHub branch (note the -fix in the branch name). Maybe that … fixes it. Otherwise, it might be necessary to examine the data more carefully.

use TerraExplorer Pro 7.3

@5m3d Does that mean that upgrading from TerraExplorer 7.2 to 7.3 solved the problem that we talked about in Add 3dtiles(extension) - #4 by Marco13 , and that the latest version - 7.3 - exports proper, valid tilesets?

In some ways,yes. I used terraExplorer 7.3 to process the same data and some of the 3dtiles I got are loadable in the UE4. But some of the data disappears after changing the view or pulling closer,I don’t know how to solve this problem yet, I thought it was a “geometricError” problem at first, but after looking at tiles.json I don’t think it is.

So my bad: gltf 1.0 files wont work, but tiles version 1.0 with “3DTILES_content_gltf” should?

The “3D Tiles” version and the “glTF” version are different things. When you upgraded the tileset, then it should internally use glTF 2.0 already. The tileset itself is still a 3D Tiles 1.0 tileset. (The glTF 2.0 assets are then contained in the B3DM files of this 3D Tiles 1.0 tileset)

When you still use B3DM files, then the 3DTILES_content_gltf extension is not requried. (If you dedicatedly want to use this extension, I’d have to look up the latest state of a possible support for in Cesium For Unreal).