Cesium in 2018 - what do you want to see?

I am most interested in enhancements and fixes for terrain support. So +1 on:

  • Polylines on terrain and textured polygons on terrain, #2172

In addition, I’d like to see (in order of importance):

  1. Fixes for tile loading issues. I see this often, where on first page load tiles do not render and I see through the Earth into the stars. I believe this is captured in #4894 and/or #6021. It looks like there may be a fix forthcoming?

  2. Support of client-side terrain data (+1 on same request upthread). Just like we can add an image tile by using Cesium.SingleTileImageryProvider, I’d like a Cesium.SingleTileTerrainProvider that can be defined with heightmap-style terrain data at run-time. While it would be nice to be able to merge this with another global terrain provider, a first step would be to support SingleTileTerrainProvider as the single terrain provider (i.e. defines elevation as 0 everywhere outside of the data limits). If this is not in the plans, I’d appreciate any advice on how to pursue implementation of such a SingleTileTerrainProvider and any issues that are expected.

  3. Enhanced depth testing against terrain. Being able to turn depthTestAgainstTerrain on adds nice realism into the scene, but it also introduces problems:

  • Billboards can unexpectedly become partially or totally obscured. This issue was mentioned here but I don’t see any linked issues.

  • It is all or nothing for lines. I want to be able to turn it off for some lines that represent purely graphical links but keep it on for lines that represent physical links. The issue is discussed here, which I just bumped. That thread links to #2694, but that looks like something different. Should a new issue be created?

Thanks!

Jacob

VR support via WebVR would be great. I've had a coworker that tried to use the NICTA plugin with an Oculus and was having trouble.

The use case was just basic HMD support, I don't think he needed controllers or anything. I think NICTA just needs a few bug fixes to work since it looks like WebVR changed some of the calls a bit but it was going to take more time than I had

Hi Edward, your +1’s have been taken into account! We do have Cesium Pro available which contains support for viewshed analysis.

Thanks for following up Alberto, we have an issue open for that in GitHub here if you want to track it. I’m still not quite sure what your proposed handling of Gimbal lock would do, if you have more information please let us know.

Hi Jacob,

  1. This branch in GitHub may address the issues you are having, try it out if you can.

  2. While often requested, client-side terrain data changes will probably not be supported, at least in the near future. For performance sake, the goal is to do the heavy terrain processing offline, and only use Cesium for the visualization.

  3. I think the billboard issue you are describing is this one. For polylines, we plan to work on #2172 shortly, does that cover what you need?

Thanks,

Gabby

Hi Sean,

We are tracking fixing WebVR support in #4311, I’ll note your +1.

Thanks,

Gabby

Hmm. I thought I posted a message like this earlier in the thread, but I don’t see it - maybe I didn’t hit send or something.

Gabby, I think what several of us are asking for is the ability to define/add multiple terrain providers rather than a single provider, and have Cesium be smart enough to request terrain tiles from each of the providers as necessary. As far as I can see, this wouldn’t involve “client-side terrain data changes” or “heavy terrain processing”, just the ability to combine terrain tiles loaded from multiple sources

The “parentUrl” metadata property described in https://github.com/AnalyticalGraphicsInc/cesium/pull/5864 looks awfully similar to the concept I’m picturing, where Cesium would switch which terrain tileset it’s downloading from based on specified limits. I think what we’re interested in is the ability to specify that programmatically, similar to imagery layers.

Notional pseudocode:

const {terrainLayers} = scene;

const globalTerrainProvider = new Cesium.CesiumTerrainProvider({
url : “/path/to/worldwide/medium-res/terrain”
});

const localizedTerrainProvider = new Cesium.CesiumTerrainProvider({
url : “/path/to/localized/high-res/terrain”
});

terrainLayers.add(globalTerrainProvider);
terrainLayers.add(localizedTerrainProvider);

``

Hi Mark,

I see the distinction you’re making. Rather than “layering” two data sources on top of one another, you would rather have finer control over what tiles pull from each terrain provider. Thanks for the pseudocode and clarification, that may be a feature we consider.

Thanks,

Gabby

Hi all,

Keep the suggestions and +1’s coming! We’d also like to know if you have VR and AR use cases, and why 3d maps in VR/AR may be important to you.

Thanks,

Gabby

3D Tiles:

It would be nice to have a full chain of open source tools for 3D content and 3D tiling.

I've personally worked through from DAE-embeded KMZ all the way to 3DBM files. Currently what's missing is the batch id part for 3D Tiles so it's difficult to go further creating an interactive 3-D cityscape. A tool that generates basic 3D Tiles structure with logical batch id codes from glTF/glb files would be great if that sounds practical.

BTW, I havn't heard of the progress of 3D Tiles as a community standard in OGC for a while. Would be glad to hear about where it is so far.

Doc and code example improvements:

For API docs, a single page with function-categorized index followed by all the API references maybe? Something like what's provided by Leaflet.js would be great.

Go Cesium Team!

Thanks for the support! :slight_smile:

We are working on new tools for 3D Tiles, specifically some that involve processing citiy buildings with KML and collada. Unfortunately, it’s not open source. However, I’ll note your suggestion for logical batch id’s.

There has not been any significant progress with OGC standards. It’s quite a process, and unfortunately, we do not currently have the time to dedicate ourselves.

We have some doc and code example improvements in mind, let us know if you would like to see anything specific!

For the API docs, the landing page is a full list: https://cesiumjs.org/Cesium/Build/Documentation/, but categorization would definitely help make that less overwhelming.

Thanks!

Gabby

Hi Patrick and Gabby!!
Now, Im working on my Master Thesis project on the application for bike usage analysis by integration of IoTs data through SensorThingsAPI and 3D City Model (3DTiles)

And, I have already built a nice application thanks to Cesium and its very nice tutorial!! I love Cesium :slight_smile:

It would be great if the Cesium can do some following things :

  • draw the CZML-Path (Time-series) with the option to “CLAMPTOGROUND” directly. (However, im using “sampleTerrainMostDetailed” to help me clamp it by request the height for each lat/long position and build CZML from it)
  • Build a map pin with Maki+some alphabet.
  • Styling the roof of 3DTile city model. (For example: roof - red and wall - white) (I am not sure if this one already existed or not) My raw city model format is in CityGML and convert it to 3DTile with FME. And Im able to style it freely with 3DCityDB and export as glTF and use 3DCityDBWebClient library to visual the glTF 3D City but it take much longer to render glTF citymodel than the Cesium3DTile.
  • Is it possible to Clamp 3DTile the terrain? Right now, im using Height offset translation technique which provide good result but when zoom really close, some building still overlap by the terrain.
    Thanks!!

Joe T.S.

Hi Joe,

Thanks! :slight_smile: Great to hear you’re doing cool things with Cesium!

draw the CZML-Path (Time-series) with the option to “CLAMPTOGROUND” directly

The underlying geometry is called a Polyline, and Polylines on terrain are in the works currently.

Build a map pin with Maki+some alphabet

You should be able to do that with billboard and label entities. Just grab the Maki SVG files and set the billboard images.

Styling the roof of **3DTile **city model

While you can style the color of an entire building feature, unless each roof is also an individual feature, I don’t think this is currently possible. However, the is a good use case for expanding on 3D Tiles Styling. (If the roof is an individual feature, this should be straightforward using the current styling).

Is it possible to Clamp 3DTile the terrain

Not currently, but this is part of our long term plan to have terrain on by default in Cesium (see #5942).

If you have questions about any of these individual questions, feel free to open a new thread!

Thanks,

Gabby

I just checked on the progress of the OGC community standard. We’re in the final stages of 3D Tiles being accepted as a community standard. We anticipate this around summer, so keep an eye out!

Thanks,

Gabby

在 2018年1月2日星期二 UTC+8上午4:08:47,Patrick Cozzi写道:

Hi all,

We would love input from everyone on what Cesium features, bug fixes, doc improvements, etc. are most important to you. Please reply with any and all feedback. Even a simple +1 for a particular feature is valuable.

I'm pretty confidence we will see the following features in 2018 since someone is already working on them or has kindly committed to work on them:

Subsurface/undersea visualization, #6047Decreased CPU usage, especially on mobile and when not animating, #1865Post processing framework for improved visual quality, silhouette highlighting, etc., #5808Polylines on terrain and textured polygons on terrain, #2172Improved label quality, #5022Improved point cloud visual quality, #6069Cloud visualization, #5962Improved rendering performance, e.g., #5851Entity z-ordering, #4108
Other potentials for 2018 and beyond include:3D Tiles. What specifically?glTF. Draco mesh compression, keeping up with new extensions, etc.VR / AR / MR. What specifically?TypeScript definitions. Volunteers? :slight_smile:
ES6 modulesIntegration with three.js/BabylonJS/A-Frame. What are your use cases?
KML improvements and bug fixes. What specifically?Doc and code example improvements. What specifically?Commercial tools for 3D content and 3D tiling from the Cesium team through cesium.com
All input is valuable and deeply appreciated so please chime in!

We'll keep this thread going all year, but would love to see a critical mass of input in January.

Thanks,
Patrick

--

twitter.com/pjcozzi

I'd like to see how to highlight or locate the model.Node.
I met with the trouble about it.When I get the node objects by the way of "getNode()",at the same time I want to locate or highlight it to show where it is in the whole models.However I couldn't found any properties like color or x,y,z(lon lat height) just matrix.Therefore I hope 2018 version can solve it to highlight gltf node.
e.g.
node = model.getNode(id);
function createModel(id, url, height, lon, lat) {
var scene = viewer.scene;
var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(lon, lat, height));
var model = scene.primitives.add(Cesium.Model.fromGltf({
id: id,
name: id,
color: Cesium.Color.fromAlpha(Cesium.Color.WHITE, parseFloat(1)),//viewModel.color viewModel.alpha
url: url,
modelMatrix: modelMatrix,
allowPicking: true
}));
return model;
}

Hi 99lovingly,

This looks like a more specific question that deserves it’s own thread. Perhaps you can start a new one with your question?

Thanks,

Gabby

To the best of my knowledge there is no free tool to convert a dataset (say 20k .dae or .glTF models) to 3D tiles to be used with Cesium.

For me this would really be an incredible achievement.

Best,
Roberto

Hi @Roberto
You can try 3DCityDB to view glTF models on Cesium!!

The attached image is my output for viewing glTF city model.

Regards,

Joe
เมื่อ วันพฤหัสบดีที่ 8 กุมภาพันธ์ ค.ศ. 2018 10 นาฬิกา 05 นาที 12 วินาที UTC+1, Roberto Minelli เขียนว่า:

Hi Roberto, Joe,

We are working on tools to do just that! (Commercial tools for 3D content and 3D tiling from the Cesium team through cesium.com). If you have data you want to convert now. Feel free to reach out to Tim as part of the 3D Tiles Pioneers program.

Thanks!

Gabby

Hello,

We are benchmarking 3D GIS viewers and here are the missing features. I might be wrong, and also some features seems to be included in your commercial offer, (I contacted your colleague Tim about it):
- built-in measuring tools: length (including "real" length including with the terrain), surface area and volume (over and below a plane)
- visualizing underground features (such as pipes)
- Using a global terrain provider and a local terrain provider. For instance, using a MNT/MNE that you have on a specific area, as stated in other post in this threads
- viewshed / field of view analysis
- more tutorials on how to have textured 3D buildings displayed in Cesium
- Video recording of a scene animation (fly-to, stops, etc.)
- import/export in standard formats (3DS, Collada, KMZ, CityGML, etc.)

Still, Cesium is a great product :slight_smile:
Thanks,
Fabien