for now, I can show multiple b3dm file in single tileset to display on Cesium. But each .b3dm file just contain single model so now I want to batching multiple model to one b3dm file with batch table json.
As find out for a long time, I see that I can batching model at gltf level but I dont know how to do that. how to adding separate position and batchid buffers for each batched model and how to matching it with Batch table json when convert to .b3dm file. I’m so appreciated with your help because I’m stuck at this now.
I’m glad you’re excited about what we’ve been building!
Can you tell me a bit more about what you’re trying to do? I’m not familiar with batching at the glTF level. If you just want to combine multiple models in a single tileset, you can drag them all into the Cesium ion window and they’ll be automatically combined. If you want them separate, you can upload each model separately and get a tileset for each. That way you don’t have to worry about constructing the b3dm files yourself.
Now, I have combined multiple b3dm file in a single tileset.
My issues is:
I’m so confused about what is the best way to batch buildings into b3dm files. what I’m doing now is Collada->gltf->b3dm. => for now my b3dm file just contain 1 model.
I want my b3dm file contain multiple and I can add extra data to its batch table header json so I can get that data when I have onclick event on each model in my b3dm file and I find out that batching multiple models to a single b3dm file can improve rendering performance.
What I want to do is batching multiple models not only one model to b3dm file with batch table json identified by batch_id to improve rendering performance.
I found that have 2 way to do that by batching at glTF level or batching at b3dm level (not good from the performance perspective) so I want to find a way to batching multiple models at glTF level but I dunt know how to do that. I’m stuck at this point and I need your help!
Correct me if I’m wrong, but I don’t think glTF has a concept of batched models. Do you have a link to a resource that talks about batched glTF models? In any case, I’m not sure combining all your models into one glTF will give you any performance benefit (if anything, it might just make streaming/loading slower).
The full specification for Batched 3D Models is described here:
If you’re doing something where you have a single model that is rendered many times (like a forest all using one or two tree models) then the instanced 3d model might be a better format for that:
I see what you mean now. Thanks for providing the links to the threads you found for context.
None of our pipeline tools right now (https://cesium.com/docs/on-prem/) support tiling this and automatically keeping the per-building metadata. But this is definitely something we’d like to support in the future. If you’re open to it, we’d love to get our hands on some sample data we can use to test with when we’re developing this. Shoot an email to Tim (firstname.lastname@example.org) if this is something you’d be interested in.
In the mean time, you could try to generate this tileset yourself, but I think it will be a fairly involved task. The 3D Tiles Samples generator repository contains some code that generates some sample 3d tiles, this one in particular uses batch ids, so that might be a place to start:
And solution for my case is instead of export 1 gltf file containing multi model itself , I should break it, end export to multi gltf file with location for each model so after that I can combine all thoses gltf file to one tileset,
Are there any updates on this front? I’ve tried converting several .glb/.gltf files through the Ion upload pipeline, but none of the resulting .b3dm files contain batch id data. Is this the expected behavior, or should I be troubleshooting my source glb/gltf files?