Closed baothientran closed 3 years ago
The 3D Tiles Validator is picking up a small error:
slilley@Lithium:~/Code/3d-tiles-validator/validator$ node bin/3d-tiles-validator.js -i ~/Downloads/San_Diego/Elevation_1_1GSModels_1_1GTModels_1_1GTModels_2_1.json
Tileset must declare its geometricError as a top-level property.
@lilleyse I've updated the fix in the new commit and update tests to check it as well
@lilleyse I just realize I have an unused function combineTilesetJson(const std::vector<std::filesystem::path> &tilesetJsonPaths, const Core::BoundingRegion ®ions, std::ofstream &fs);
. This function was in TileFormatIO.h and TileFormatIO.cpp. This is now removed in the new commit
Overall, the way you've structured the tileset files makes a lot of sense. During testing I did have a few observations that I think could improve this PR.
--combine Elevation_1_5
(https://github.com/CesiumGS/cdb-to-3dtiles/issues/37)--combine Elevation_1_1
. The tileset.json will refer to itself recursively.--combine
if you want to combine them into the same tileset. Someone may want to convert elevation without the imagery. However, the converter would need to print an error if imagery is converted and elevation is not. (https://github.com/CesiumGS/cdb-to-3dtiles/issues/38)--combined
is only supplied once or not supplied at all (e.g. not --combine=Elevation_1_1,GSModels_1_1 --combine=GTModels_2_1,GTModels_1_1
) then I think the tileset should be called tileset.json
instead of, say, Elevation_1_1GSModels_1_1GTModels_2_1GTModels_1_1.json
so it's very obvious that it's the root tileset.tileset.json
and instead should follow a naming convention similar to the b3dm tiles.I've created issues for the remaining items:
--combine Elevation_1_5
(https://github.com/CesiumGS/cdb-to-3dtiles/issues/37)--combine
if you want to combine them into the same tileset. Someone may want to convert elevation without the imagery. However, the converter would need to print an error if imagery is converted and elevation is not. (https://github.com/CesiumGS/cdb-to-3dtiles/issues/38)Thanks for opening the issues @baothientran. I verified the fixes for everything that was checked off. I also ran the converter and loaded the tilesets in CesiumJS to confirm that nothing strange happened.
I briefly looked at the code, didn't have any comments.
Fixes #19
Add new option to combine multiple tilesets into one. For example: To combine Elevation with component selectors 1_1 and GSModels with component selectors 2_1 into one, we can do like this:
You can repeat that option multiple times to group different local tilesets into different global tilesets. For example: To group Elevation and GSModels into one tileset and group all GTModels in different tileset, we can do:
With or without the option, the converter still groups each dataset from different GeoCells into a different global tileset for each dataset:
For example, if CDB has two GeoCells with coordinates (N32, W118) and (N32, W119), and each GeoCell has elevation and GSModels dataset, the tiler will combine all the elevation of all GeoCell into one global tileset for Elevation. Same with GSModels. Below is the new organization for global tilesets: