Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need reference implementations for cesium-native users #855

Open
csciguy8 opened this issue Apr 8, 2024 · 2 comments
Open

Need reference implementations for cesium-native users #855

csciguy8 opened this issue Apr 8, 2024 · 2 comments

Comments

@csciguy8
Copy link
Contributor

csciguy8 commented Apr 8, 2024

It could be useful to have a set of "how to get started examples" for anyone wanting to integrate cesium-native into their project for the first time.

This would be a little different from just referencing Cesium for Unreal or Cesium for Unity in that these examples would be as simple as possible to help guide the user through integration.

There could be multiple reference examples:

  • A C++ application integrating all of cesium-native to stream tiles
  • A C++ application integrating only parts of cesium-native (Ex. load Gltfs only)
  • A non-C++ application integrating cesium-native (C#, web assembly, etc)

Ideally, these examples would also be built by CI, to make sure any supported use cases are always working.

Feel free to chime in with other ideas as well.

@javagl
Copy link
Contributor

javagl commented May 11, 2024

This is certainly not a "reference implementation". But have created (and occasionally updated) https://github.com/javagl/cesium-cpp . This is a pure command-line application that uses cesium-native, and offers some "dummy" implementations for the TilesetExternals.

It allows things like reading all glTF sample assets with cesium-native, or loading a tileset and performing some view updates programmatically - basically "emulating" what a real runtime/renderer/application would be calling.

This is not intended to offer any form of stability. There are no maintenance guarantees. Until now, I only used it for very basic debugging and testing. But maybe someone else also finds something useful in there.

@timoore
Copy link
Contributor

timoore commented May 13, 2024

I've pointed people to vsgCs and received some positive feedback about it. Some of the things going for it:

  • It's a complete implementation, but the target API (Vulkan Scene Graph) is much simpler than the other targets with which I'm familiar (Unreal, Omniverse);
  • Some of the parts are directly useable in other contexts. In particular, its asset accessor, based on libcurl, has made its way into Cesium Omniverse and other Cesium projects (so I'm told);
  • It has a working example of GltfReader::loadGltf,. Working with this function allows implementors to get the basics of glTF loading to work before tackling the streaming of 3D Tiles.

vsgCs is not particularly well documented, but I think the code is generally pretty clear.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants