Texture Atlas Seam Problem

Hello there,

Currently running into an issue with a texture atlas that is generated in Cesium ion and is used in Cesium for Unity. The end goal is to get a .glb file into Unity and have it usable offline via local URL source for the tileset.

In My Assets on Cesium ion, the data and .glb file are added. In the “What kind of data is this?” drop-down, it’s set to “3D Capture/Reality/Model/Photogrammetry".” In the 3D Capture Options, tried a few different options with/without compression and different types, no luck.

The texture atlas seems to be made on Cesium ion, and has some funky artifacts and an irregular resolution size of 1065 x 1043. They are very noticeable on the texture object in engine, and fairly noticeable in Cesium ion when zoomed out in the preview. When zoomed in both in Cesium ion and Unity, the seams are barely noticeable, but there are some artifacts present.

I believe the issue is coming in from how the texture atlas is made in Cesium ion, since the seams are visible prior to importing it to Unity using the URL .json source for the tileset.

Several questions:
1.) Is it possible to set the resolution of the ion-generated texture atlas to a power of 2 (like 1024x1024) to be more friendly with Unity?
2.) Is there a way to adjust padding or atlas tile offset to prevent seams?
3.) Slightly related to the other questions: If there are two separate tileset.json’s, what would be the best way to merge those .jsons into one?

Thank you!

There are functions in the ‘3d-tiles-tools’ that could help here:

  • The merge command can take your input tilesets, and create one tileset that refers to the inputs as external tilesets
  • The combine command can take such a tileset, and convert it into one that consists only of one, large tileset JSON file

(For the other points, someone from the ion/tilers team will have to chime in)

So if I understand your workflow is as follows, is that right?

  1. Upload a GLB file to Cesium ion to tile as 3D Capture/Reality/Model/Photogrammetry.
  2. Toggling the Make available for download option on the asset details panel.
  3. Using the download zip file locally for streaming in Unity

Another option could be to use the Clips feature in Cesium ion to get a downloadable 3D Tileset. That would go through a different tiler that may produce different results.

I’ve also reached out to our colleages who have more experience with the 3D Capture/Reality/Model/Photogrammetry tiler to see if they can provide any additional information about the textures.

Hi @Smithereens,

Are you able to share the asset ID for this dataset (this will be listed under the ID column in “My Assets” in Cesium ion)? If so, I can take a closer look and help troubleshoot.

As for your first two questions, it’s not currently possible to set texture resolution or to adjust padding, but I’ll bring these up internally in our next planning meeting.

Cheers,
Jake Adelgren