I’m currently trying to fine-tune the position of a 3DTile service. The parent and grandparent objects of Mesh 0 Primitive 0 both have a transform of (0, 0, 0). I moved the grandparent object’s transform, but when the origin of the map changes, the object shifts and becomes misaligned.
Is there a better solution to this issue? How can I adjust the position in a way that remains consistent, even if the map’s origin changes?
I’m not sure I’m understanding, so I’d like to ask a few questions for clarity.
I’m currently trying to fine-tune the position of a 3DTile service.
So you are trying to move the entire 3D Tileset, right? (As opposed to a single tile within the 3D Tileset?)
How can I adjust the position in a way that remains consistent, even if the map’s origin changes?
3D Tilesets are typically located on specific points on the Earth. Whenever the CesiumGeoreference origin changes, the tiles will recalculate their Unity position so that they stay correct relative to the Earth. But from what you’re saying, it sounds like you want them to keep the same position in Unity space, is that correct?
It would also help to have the broader context for what you’re trying to do, in case there are better alternatives for your use case.
Yes, you’re correct. I’m trying to move the entire 3D Tileset, not just a single tile within it. The issue I’m encountering is that when I adjust the position of the tileset, it works fine initially, but once the map’s origin changes (due to changes in the CesiumGeoreference), the tileset becomes misaligned again.
I’d like to fine-tune the position of the tileset in a way that maintains a consistent offset even when the map’s origin changes. In other words, I want the tileset to stay in the same position relative to Unity’s world space, regardless of shifts in the Earth-based georeferencing.
The reason I need this is due to some inaccuracies in the source data, which cause a slight misalignment in the 3D Tileset’s position, so I want to apply a manual adjustment to compensate for that.
Do you know of a good approach to ensure that this adjustment remains consistent even if the georeference origin changes?
We don’t have an easy solution to this currently, but a useful workaround is to modify your tileset.json root tile transformation to include the extra transformation to fix the alignment. By applying the transformation there, instead of after the tileset has been mapped into the Unity world, you avoid the problem described in the issue.
If you can’t modify the tileset.json directly, it’s also possible to create a new tileset.json that refers to the old one as an external tileset and applies an additional transformation.