How does CesiumJS manage textures shared across tiles?

We are testing a 3D Tiles tileset made up of hundreds of individual glTF files which all reference a few dozen texture files via URL. We are observing a higher than expected memory usage when loading many of these tiles at once in CesiumJS, and were interested in exactly how shared textures are managed for a given tileset. Is only one texture generated for each referenced image across the tileset, or is one texture created per image per tile?

We are creating one material for each unique texture image used within each glTF so that primitives that share textures all reference the same material

Hello, we are still curious about this behavior, if any explanation could be provided.

Sorry, this is not yet a (full) answer, but a short hint: CesiumJS is supposed to re-use a texture when it is referenced by multiple glTF files. But from a first test, there might be cases where this does not work as expected. This is now tracked in Identical external textures from GLB files are not shared · Issue #11897 · CesiumGS/cesium · GitHub .