CesiumGS / cesium-native

Apache License 2.0
433 stars 213 forks source link

3D Tiles Serializer #278

Closed IanLilleyT closed 2 years ago

IanLilleyT commented 3 years ago

There should be a 3D Tiles serializer for Cesium Native that goes between C++ and JSON. It would function very similarly to the glTF serializer and could probably use the same JSON schema <-> C++ generator located here, but with a few tweaks, as brought up in https://github.com/CesiumGS/cesium-native/issues/270. Note that right now only the glTF reader is generated automatically, not the writer (see https://github.com/CesiumGS/cesium-native/issues/228 for generating glTF writer).

The 3D Tiles serializer would not be responsible for pnts, b3dm, glTF, or any other external buffer data. It would only do the tileset.json. One challenge will be external tilesets. For now, we could keep it simple and let the caller create the external tilesets themselves (possibly using the 3D Tiles serializer).

Ultimately we'll want this to work with 3D Tiles exensions too, similar to how extensions are done in the glTF, but getting it working with the base 3D Tiles schema is a good start. I attached a small sample tileset below.

Resources: 3D Tiles schemas: https://github.com/CesiumGS/3d-tiles/tree/master/specification/schema 3D Tiles extensions: https://github.com/CesiumGS/3d-tiles/blob/3d-tiles-next/3D_TILES_NEXT.md 3D Tiles Metadata extension: https://github.com/CesiumGS/3d-tiles/tree/3d-tiles-next/extensions/3DTILES_metadata/1.0.0/schema Sample data: sign.zip

Localhost sandcastle for viewing sample data

CC @baothientran @kring

krupkad commented 3 years ago

@lilleyse Current status of this work (as of Aug 11):

kring commented 2 years ago

This has been implemented.