Quality Difference in 3D Tiles from Agisoft to Cesium

1. A concise explanation of the problem you’re experiencing.

I have just started using Cesium and its sure is an amazing platform and I am just learning the new things as I explore.

The current project I am working on is basically overlaying a CAD (Revit or Infraworks) model on top of a photogrammetric 3D Mesh from a Drone. We have created the Tiled Model in Agisoft and have exported to the Cesium Tiles and imported to the sandcastle. This was just a great experience. However, I have noticed that the quality of the mesh has dropped drastically in the due process. Is there a possible fix for this?

2. A minimal code example. If you’ve found a bug, this helps us reproduce and repair it.

I have not found a code. The images attached shows the result. I am running the basic code as below:

var viewer = new Cesium.Viewer(‘cesiumContainer’);

var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({

url: ‘…/…/…/Specs/Data/Cesium3DTiles/tileset.json’

// maximumScreenSpaceError: 2,

// maximumNumberOfLoadedTiles: 1000

}));

var heightOffset = -25;

tileset.readyPromise.then(function(tileset) {

console.log(“STARTING!!”);

var boundingSphere = tileset.boundingSphere;

viewer.camera.viewBoundingSphere(boundingSphere, new Cesium.HeadingPitchRange(0, -2.0, 0));

viewer.camera.lookAtTransform(Cesium.Matrix4.IDENTITY);

// Position tileset

var cartographic = Cesium.Cartographic.fromCartesian(boundingSphere.center);

var surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0);

var offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, heightOffset);

var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3());

tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);

console.log(tileset.modelMatrix);

});

3. Context. Why do you need to do this? We might know a better way to accomplish your goal.

As mentioned above, I need to overlay ad CAD Model over a Drone based Reality Mesh. The quality is quite important.

4. The Cesium version you’re using, your operating system and browser.

Cesium 1.58

Windows 10

Google Chrome: Version 75.0.3770.90 (Official Build) (64-bit)

Thanks for the kind words Pravin!

Just to make sure I understand, you’re saying you created a 3D Tileset from Agisoft, without uploading your model to Cesium ion right? Can you try uploading the source files (OBJ files for example) to Cesium ion (https://cesium.com/ion/) to create the 3D Tileset that way? This will help us narrow down whether the issue is in the exported tileset or something we can fix in CesiumJS itself.

Another question for is whether the quality improves when you zoom into the building? If so, you might benefit from decreasing the maximumScreenSpaceError a bit:

https://cesiumjs.org/Cesium/Build/Documentation/Cesium3DTileset.html#maximumScreenSpaceError

The default is 16, you might want to try setting it to 8 or 6 and see if that looks better.