Closed SunnyBily closed 2 years ago
Hi @SunnyBily, how are you loading in this model? Is it possible to provide a sandcastle that demonstrates this problem?
I wonder if this is fixed in the experimental i3dm loader. @SunnyBily could you try the enableModelExperimental
option?
const tileset = new Cesium.Cesium3DTileset({
url: "tileset.json",
enableModelExperimental: true
});
Thank you @lilleyse and @j9liu , but the lines in i3dm are still not being loaded correctly by experimental option. Here is a sandcastle that I mentioned in the problem description. I3DMLines.zip
@SunnyBily it's possible you're using an older version of CesiumJS that doesn't support the option. It seems to be working for me on main
.
One other thing to note is that the experimental option isn't available in ion, but once the experimental loader is ready you'll see the i3dm loaded correctly in ion. This will happen around July. See https://github.com/CesiumGS/cesium/issues/9520 for the roadmap issue.
@lilleyse Hi, I updated the latest version of CesiumJS, but I still can't get the expected result. I notice that you used tileSet0, but the root tileSet of the sample model is manifest.json. When I use manifest.json as the root tileSet with experimental option, nothing is displayed.
But when I use tileSet0 as root tileSet, as you do, I finally get what I expect.
Then I tried another model, an i3dm with both meshes and lines. The glTF of this model looks like:
This time I just used one tileSet to organize tile. But it still shows nothing.
After I removed the lines in i3dm, everything was fine again.
All of the above results were rendered with the experimental option.
Here are the files I just mentioned. TreeWithLines.zip TreeWithoutLines.zip
I wonder why I can't use the actual root tileset, manifest.json, for the first file. And, why does the problem still appear for later model even though I only use one tileset file?
May I ask is there any new progress on this issue? @lilleyse
@SunnyBily It looks like the batch table is invalid. I see the property edgeLineIndex
but it's neither a valid batch table JSON property or batch table binary property. See BatchTable for details on the batch table format.
The error in the console is:
A 3D tile failed to load: http://localhost:8002/static/Downloads/TreeWithLines/3dTiles/6.i3dm.gz?v=1.1
Error: Failed to load model: http://localhost:8002/static/Downloads/TreeWithLines/3dTiles/6.i3dm.gz?v=1.1
Failed to load I3DM
Property edgeLineIndex requires a batch table binary.
Hello!
I am trying to display the lines of models in cesium, so I wrote the lines to glTF and added mode=1 to the Primitive of meshes, like this:
Lines in B3DM can be displayed correctly. But when written in I3DM, lines are displayed as faces instead of lines. This is the result of cesium ion:
This is the result of glTF viewer, with the same glTF data.
It seems that the data type is not recognized when parsing i3DM.
Is this a bug? Or is it not allowed to write line data in 3dTiles I3DM?
Looking forward to your reply! Best Regards!