3D Tiles of obj-Meshes are rotated by ca. -1.5°

Dear Community Forum,

we are experiencing a weird issue with the conversion of our ODM-generated .obj meshes to 3D-Tiles via cesium ion - all generated 3D Tiles are rotated by about 1°-1.5° counter clockwise.

Our workflow works like this:
Drone survey → ODM Docker Photogrammetry → Orthophoto, elevation model (tif), mesh (obj) and point cloud (las). For the mesh, our worklfow generates wgs84 coordinates to set as tileset location in cesium.

Then the 3d data (las and obj) are uploaded to cesium → processed to 3d tiles → downloaded again → served from the filesystem

The georeferencing of the point cloud works perfectly and it is displayed right above our 2d orthophoto. The mesh however, is rotated. The tileset location matches perfecty, as the “origin” or centroid of the mesh is perfectly aligned. But due to the rotation, the north part of the model is more to the west than it should be, and the south is more to the east as it should be. Towards the edges of the model this displacement accumulates to about 5m offset.

The unprocessed .obj meshes dont have this rotation when loaded in e.g. CAD. I checked our workflow again and cannot identify any part that would lead to this.

What should I check to get rid of this error? Does anyone have any ideas? I’ll happily provide more information if needed.
Thank you very much in advance,

best regards,

Nils

This sounds like a “meridian convergence” problem.

Have a look here if you know German or if have a reliable translator: Meridiankonvergenz – Wikipedia

or maybe this helps:

Hi Nils,

Are you able to provide an asset id so we can review the data? That will help us review the data and provide better solutions.

For your workflow may also be able to use the Clips feature in Cesium ion to combine a terrain (from your elevation model) with the orthophotogrammetry to produce a 3d tileset that you can download. That might allow a work around to the OBJ location issue.

For the mesh, our worklfow generates wgs84 coordinates to set as tileset location in cesium.

Is it correct that the OBJ has coordinates in WGS85 values? We recommend that OBJ files use local coordinates (centered around zero) and then are transformed after tiling. This can be done either by using the API and the options.position value when creating the asset. Or by using the Adjust tileset location button at the top of the asset details panel on the Cesium ion website.

Please let us know if either of these suggestions help

Thanks @anneg, I’ll check if meridian convergence could be a thing here.

@mdc9001 : Example AssetIDs would be 4526366 or 4434203. Our OBJs have local coordinates. Our workflow just computes an extra textfile with one WGS84 coordinate to set as tileset location in cesium via api or ui. I’ll check the Clip feature. Thanks for that!