Skip to main content

Streaming 3D Capture Data using 3D Tiles

Advances in photogrammetry, computer vision, and cloud computing have made capturing high resolution 3D scans accessible - most smartphones can now masquerade as portable 3D scanners.

We’ve also seen some really amazing datasets come from combining these advances with the swarm of drones taking flight every day, opening all kinds of possibilities for 3D mapping, civil engineering, and the age-old practice of our users dazzling their clients. What we need is a good way to stream and display that data.

One major use case for our upcoming Massive Models Tiling Pipeline is converting high resolution 3D captures into 3D Tiles. Here’s a drone capture of AGI’s Headquarters, flown by Nate McBee, converted to a 3D model using Bentley ContextCapture, and then converted to 3D Tiles using our pipeline:

Overview

Overview

Before

After

Check out the density difference in the wireframe views:

Here, the view shows many tiles at various levels of detail reassembled into a complete view of the sculpture. Larger boxes generally indicate lower detail and thus coarser simplification.

Before

After

Of course, the model looks better withtextures than without.

Our tiling pipeline repacks textures roughly based on what texels each tile references. This allows more efficient streaming and also divides the original-resolution textures so they do not exceed WebGL limits.

Here is a tile containing the face portion of the Cesar sculpture and a blown-up view of its texture (left and middle). Compare this texture with a zoomed-out view of the original texture (right).

Cesar repacked texture vs original

Here’s a high-detail tile from the AGI HQ model (left top) with its repacked textures (left bottom). Compare this with a zoomed-out view from just one of the two original ~67 megapixel textures (right).

AGI HQ repacked texture vs original

Finally, we’re working hard on making our model tiling pipeline faster and more robust; with multi-process acceleration, tileset generation can saturate all of a machine’s cores.

Send help

Speeding up tileset generation helps speed up testing, which in turn speeds up getting this feature ready for integration into cesium.com. Stay tuned for more updates!

As always, if you want to see how your massive models stream with 3D Tiles, send me a note at gary@cesium.com or tweet to @CesiumJS.