[Cesium - Gltf level batching model]

Hi guys, I’m so excited in Cesium 3d tile,

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.


Ngoc Hung - Cesium beginner research

Hey Ngọc,

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.

Hi Omar, thanks for your help!

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 :smiley: and I need your help!

Thanks again Orma,

Ngoc Hung

Vào Th 7, 13 thg 10, 2018 vào lúc 01:11 Omar Shehata omar.sameh.shehata@gmail.com đã viết:

Hi Ormar,

can you give me any suggestions for this issue :((

Vào Th 7, 13 thg 10, 2018 vào lúc 01:54 Ngọc Hùng Đỗ ngochung95.cntt@gmail.com đã viết:

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:

Hi Ormar, I’m confused a little bit,

I find out some topic about batching models and improve rendering performance in cesium like:



can you help me to check on those topic, It’s talk about batched at glTF level,

thanks Ormar

Vào Th 4, 17 thg 10, 2018 vào lúc 01:52 Omar Shehata omar.sameh.shehata@gmail.com đã viết:

Hi Ormar, I have 1 sketchup file -> 1 gltf file -> 1 b3dm file like this

but It’s very slow to rendering this b3dm file in tileset on cesim, please let me know what I can do to resolve this issues,

thank you !

Vào Th 4, 17 thg 10, 2018 vào lúc 09:38 Ngọc Hùng Đỗ ngochung95.cntt@gmail.com đã viết:

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 (tim@cesium.com) 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:

Hi Orma, thanks for your amazing support,

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,

Correct me if I’m wrong, thanks so much Orma!

Vào 21:25, T.5, 18 Th10, 2018 Omar Shehata omar.sameh.shehata@gmail.com đã viết:

Hi guys.
i’m trying desperately to convert a glb into a tileset in ION but i/m losing all the batchIds and info so can select them in the converted tileset.

any ideas how to fix this?

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?