3D Tiles: the next big step for Cesium and 3D geospatial

I’ve continued to look at the possibility of using this for fly-through and 3D visualization of weather model data, with selective display of values or ranges of values.

Considering the data isn’t really representative of surfaces (the way a typical point cloud would be), but rather represents true volume data, from what I’ve gathered, it looks like rendering in the form of tetrahedrons, each vertex having its own value and smoothly interpolated between them, would be ideal. By mapping specific data values or value ranges to alpha values and/or colors on the fly, great flexibility in visualization surfaces and volumes within the data could be achieved (assuming this could be done!).

I’ve looked at the current spec and I haven’t seen anything regarding tetrahedron rendering, though it could obviously be an option with point clouds. Is something like that possible? I understand WebGL is capable of rendering tetrahedrons.

Best,
Jonathan

Hi Jonathan,

Strictly speaking, WebGL can’t render tetrahedrons; it renders triangles.

However, you could build what you want using 3D Tiles today with the b3dm tile format by storing triangles for tetrahedrons. On the client, you could then map feature (tetrahedron) attributes to colors just like, for example, we would map building heights to colors.

For more performance and flexibility, a custom tile format would be the way to go.

Patrick

Hi all,

A few big updates on 3D Tiles:

  • We presented 3D Tiles in the Closing Plenary at the OGC Technical Committee meeting last week. There was a great audience with lots of interest. Check out the slides, which include several examples of the amazing work folks are already doing with 3D Tiles.
  • We flushed out an initial version of declarative styling for 3D Tiles, which enable writing concise expressions, often using feature properties, to determine feature color, translucency, and show/hide. There is also a pull request into the 3d-tiles branch for this in Cesium, #3699.
  • Finally, we’re starting to zoom in on timing for a draft 1.0 spec and Cesium release. This will include the base tileset.json and styling schema and tile formats for: batched 3D model (b3dm), instanced 3D model (i3dm), point clouds, composite, and vector data. We expect this to be early fall (in the US) and to include shadows (shadows branch).

Thanks,

Patrick

Hi all,

virtualcitySYSTEMS developed a very nice app using 3D Tiles. Check out the Berlin Atlas of Economy, switch to 3D, and zoom in:

http://www.businesslocationcenter.de/wab/maps/main/

Patrick

Very cool, thanks for sharing!

Any information/detail about the source of the dataset used for the buildings? Is it from osm?

I suspect it is the dataset described in Slide 22 here: http://cesiumjs.org/presentations/3D-Tiles-OGC-DC.pdf

I believe it is a combination of open and commercial data.

Patrick

Ho,

the base dataset (500k buildings with textures) is open data and can be downloaded at the following link.

http://www.businesslocationcenter.de/en/downloadportal

The application http://www.businesslocationcenter.de/wab/maps/main/ uses about 300 additonal high quality models for important landmarks.

Theses models are unfortunatly not open data.

Hi all,

Cache management is now in the 3d-tiles branch, see #3808. This is one of the last core 3D Tiles features; the bulk of the work now is on the vector tile format and rounding out the point cloud and instanced model tile formats.

No code changes are required to use the cache; Cesium will automatically cache the “most important” 256 tiles (by default) in memory. You can change the default by setting Cesium3DTileset.maximumNumberOfLoadedTiles, and explicitly unload cached tiles that are out of view by calling Cesium3DTileset.trimLoadedTiles.

There is also a new event, Cesium3DTileset.tileUnload, that fires when a tile is unloaded from the cache.

Let us know your feedback when you upgrade!

Thanks,

Patrick

Hi all,

I updated the 3D Tiles roadmap to include all the items needed to merge the 3d-tiles branch into master for the 3D Tiles draft 1.0 spec. Please review and let me know if there are things you would like to see (or not).

At this point, the Cesium code is in really good shape for the core 3D Tiles engine (including unit tests and reference doc), and the bulk of the remaining work is tile formats.

Patrick

Looking really nice! Is their a good reference site for learning how to create custom 3d tiles?

Thx!

Thanks Nathan.

For generating 3D Tiles, the spec has a lot of tips. As we get our implementation further along, we will write tutorials on the Cesium blog.

Patrick

Hi all,

Slides for the latest 3D Tiles talk by Sean and me at FOSS4G NA are now up:

3D Tiles: Beyond 2D Tiling

The talk contains 3D Tiles motivation and use cases that you’ve probably seen before, but also has a lot of deeper technical content in the second half.

Patrick

Hi all,

A few updates on 3D Tiles:

Patrick

Good work. We are excited for the spec to go stable so we can start looking at how we can use it to enhance our app.

I know that there was initial plans on temporal 3d tiles (something that would solve once of our problems very well) Is this still in the roadmap? What is the scope of work for temporal?

v/r

NJK

Hi Nicholas,

Thanks for the kind words.

For temporal 3D Tiles, we are looking at two thing:

Also, what kind of app are you building? Do you have a link to a demo? Would love to check it out.

Patrick

Hi Patrick,

I am very excited about 3D tiles and have been reading whatever I can find about the specs. I would love to see the slides and video from the Web3D conference last weekend. Any idea when those will be posted?

Thanks,

Justin

Justin - thanks for the kind words. The slides will be posted this week. The video is up to the conference, but I expect it will be posted soon. I’ll update this thread as things get posted.

Patrick

We do not have a public demo. Sorry.

Patrick,

Are there any plans to support sprites in the 3D tiles branch? I imagine it would be similar to the billboard in the current API.

v/r

NJK

Hi NJK,

Yes, sprites can be done either through instanced glTF with a custom shader or the upcoming vector tile. For example, see:

https://www.youtube.com/watch?v=OSJLQFD01lU

Patrick