3d Tile Performance inconsistency with imported Photogrammetry

I’m finding that the 3D Tile of some local photogrammetry I’ve uploaded through ion and brought into my level loads much slower and is significantly more hardware intensive than much larger tilesets, such as the Melbourne photogrammetry set. Zoom and camera speed is consistently usable as I move around the Melbourne set, however when I get close to my other set, performance drops terribly as it begins to load into view. I’m not sure how to diagnose the issue.

My tiled asset size is 275 MB after processing in ion. I would assume the other larger tilesets are much larger and therefore file size isn’t the problem? Someone can correct me there if I am wrong, I’ve only been using Cesium for a few months.

I’ve brought my tile into the same level as the Melbourne set to confirm it isn’t an environment set up issue. Is there a processing or cooking pipeline I ought to be following in UE5 that will fix this?

Uploaded data was imported into ion in .fbx format. I used a custom tool to grab photogrammetry off existing data on the web and convert it in Blender to a smaller area.

Using UE5, Cesium plugin off Epic marketplace, Cesium samples off epic marketplace, checked to make sure hardware specs are sufficient for those listed on Cesium website.

Thanks to the community for your guidance.

Hi,

Have you changed any of the properties on the Cesium3DTileset Actor from their defaults? Some can have a big impact on performance, but the defaults should be ok for most use-cases. If Melbourne is working well, try copying it and changing the asset ID to yours, just to eliminate any difference in settings.

Kevin

Thanks for the reply. I used the default settings for the actor, aside from changing the georeference. Good suggestion regarding the ion asset. I changed the Melbourne asset ID to my own tilesets, and noticed the same performance drop (even worse than before, but that’s anecdotal). This would suggest that it’s an issue with the tileset. I am currently trying to play with my original data’s LOD settings when I capture it, but that will be trial and error as I’m not an expert on LOD setup. Will report my findings.

Did you say Cesium ion is tiling this for you, or are you just using ion to host a tileset created by another tool? If Cesium ion is creating a poor quality (slow) tileset, we would like to hear more about that.

I’m using the ion ‘Add Asset’ functionality to bring in a bunch of photogrammetry files from my data capture, mostly .png files. I select 3d Model, Draco Compression on, WebP off. I manually set location after tiling. So yes, I believe this is what it means to have ion create the tileset, unless I’m misunderstanding something foundational about the tiling process. I can provide a token and asset ID for anyone that wants to check for reproducibility, etc.

Yes, that will make Cesium ion tile the data.

Ok, can you please post to Cesium ion - Cesium Community with details of the data you’re uploading (especially what tool produced it) as well as the asset ID? By the way, is it also slow in the viewer embedded in Cesium ion (especially if you make it full-screen), or is it only slow in Cesium for Unreal?

The linked post I’ve just created can be found here.

To answer the question, yes it is slow in the viewer as well, and comparing the Melbourne photogrammetry in the asset viewer brought my attention to the way that LODs ‘should’ be behaving as you approach, as opposed to my model, which kind of checkerboard square renders itself into view randomly.