Agisoft generated Cesium 3d tiles issue

368 views
Skip to first unread message

George Nicholas

unread,
Dec 22, 2017, 3:17:49 PM12/22/17
to cesium-dev
1. A concise explanation of the problem you're experiencing.
Hi,

I'm working on creating a 3d viewer for our website to showcase some of the 3d deliverables we create for clients.  We're an aerial mapping firm, Strix Imaging.  We do alot of work in Agisoft (photogrammetry), and I downloaded agisoft's beta version, 1.4 which has the capability to export my dense point cloud as cesium 3d tiles.  For a fairly small area the cesium 3d tiles file was huge, around 10GB for a 10 acre lot.  The file structure looks like this:
- sparks
-- tileset.js
-- Data
--- xxx.pnts (many of these files)
--- xxx (many of these random folders)
---- xxx.pnts (many of these files within each folder)
---- tileset.json (one within each folder)

I've setup two node.js servers on my desktop following the hello world tutorial and the cesium tiles tutorial which allows me to successfully show the demo cesium 3d tiles locally.  However when I attempt to point the tileset url at my Agisoft created 3d tiles, it does nothing.  no errors in the console either, it's just black.  Any idea what I'm doing wrong?  I have a feeling Agisoft didn't export the tiles correctly but I can't find anyone discussing an issue like this.  I'm new to cesium, only been looking at it for about a week. 



2. A minimal code example. If you've found a bug, this helps us reproduce and repair it.
The code below successfully shows the demo tile files in my local sandcastle, but does not show the 3d tiles from agisoft.

Cesium.BingMapsApi.defaultKey = 'AqvKbFHsgHpXjbfz6lR6k57gfsUvQz6zcjaG7PWMtzHycskqMCdZhkNojJnSycO_';
var viewer = new Cesium.Viewer('cesiumContainer');
viewer.scene.imageryLayers.removeAll();
viewer.scene.globe.baseColor = Cesium.Color.BLACK;
var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
}));
tileset.readyPromise.then(function(tileset) {
    viewer.camera.viewBoundingSphere(tileset.boundingSphere, new Cesium.HeadingPitchRange(0, -0.5, 0));
    viewer.camera.lookAtTransform(Cesium.Matrix4.IDENTITY);
});



3. Context. Why do you need to do this? We might know a better way to accomplish your goal.
Trying to show the topographic maps we create for our clients on our website in a 3d viewer.  Ultimately I would like to have contours and shading like the Propeller Aero plugin shows, but first I have to get it to show my data at all before I try doing fancy stuff like contours.



4. The Cesium version you're using, your operating system and browser.
Cesium 1.4, Agisoft 1.4, Ubuntu 16.04, chrome 63.0.3239.84, node.js 6.12.2, npm 3.10.10



Sean Lilley

unread,
Dec 24, 2017, 1:25:06 PM12/24/17
to cesium-dev
It does seem like it could be an issue with the tileset itself, and I personally haven't encountered a point cloud tileset produced by Agisoft before. Would you mind sending the data over for us to investigate? You can email a donwload link to me at sli...@agi.com.

Sean Lilley

unread,
Jan 9, 2018, 8:03:30 PM1/9/18
to cesium-dev
Now that https://github.com/AnalyticalGraphicsInc/cesium/pull/6088 is merged it's a lot easier to see tileset errors.

The one that's popping up repeatedly is:

Error: start offset of Float32Array should be a multiple of 4

Looking at the file more closely I see that one of the feature table properties is not byte aligned correctly:
"NORMAL":{"byteOffset":22695}

While it's just an implementation note right now, the spec states that properties should be byte aligned to their data type, so the byteOffset needs to be a multiple of 4. We plan on making this a requirement before 3D Tiles 1.0 is ready.


You may need to contact Agisoft about this bug in their exporter.

Poul Sørensen

unread,
Jan 26, 2018, 5:56:23 AM1/26/18
to cesium-dev
I wanted to follow up if anyone have forwarded this to argisoft.

I will give them a note otherwise.

George Nicholas

unread,
Jan 29, 2018, 4:47:01 PM1/29/18
to cesiu...@googlegroups.com
I have.  They gave me a pre-release version of 1.4.1 which may be working.  I was able to see the point cloud in cesium locally, however the building the point cloud represents is spread out over the entire city it's in.



George Nicholas

Founder

End Of Message
--

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/HiykPzLDwyw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages