VTK::IOCesium3DTiles#
vtk3DTilesWriter - Convert a multiblock dataset to the 3D Tiles format.#
Currently, to create a valid 3D Tiles dataset we may need additional conversions: from GLTF to GLB and from GLB to B3DM. We can use JavaScript tools to do these conversions.
Install conversion and validation scripts#
Using node and npm installed on Ubuntu 20.04:
cd ~/external/3d-tiles-tools/;npm install 3d-tiles-tools
. Help at: https://github.com/AnalyticalGraphicsInc/3d-tiles-tools/tree/master/toolscd ~/external/gltf-pipeline;npm install gltf-pipeline
. Help at: https://github.com/CesiumGS/gltf-pipelineClone https://github.com/CesiumGS/3d-tiles-samples. and then
npm install.
Clone https://github.com/KhronosGroup/glTF-Validator and then follow Building section.
Convert data to GLB or B3DM - Optional#
See Testing/Cxx/Test3DTilesWriter for conversions of Jacksonville data
stored in OBJs and or Berlin data stored in CityGML.
Note that the test saves the 3D Tiles data using GLTF files.
If needed, you can use GLB or B3DM, but you’ll need to do the following conversions
manually:
cd ~/projects/VTK/build/Testing/Temporary/jacksonville-3dtiles/
cd ~/projects/VTK/build/Testing/Temporary/berlin-3dtiles/
Convert gltf to glb
find . -name '*.gltf' -exec bash -c 'nodejs ~/external/gltf-pipeline/bin/gltf-pipeline.js -i ${0} -o ${0%.*}.glb' {} \;
find . -name '*.gltf' -exec rm {} \;
find . -name '*.bin' -exec rm {} \;
Check glb validity
~/external/glTF-Validator/build/bin/gltf_validator Testing/Temporary/TestGLTFWriter.glb
Convert glb to b3dm
find . -name '*.glb' -exec bash -c 'nodejs ~/external/3d-tiles-tools/tools/bin/3d-tiles-tools.js glbToB3dm ${0} ${0%.*}.b3dm' {} \;
find . -name '*.glb' -exec rm {} \;
View in Cesium#
Use 3d-tiles-samples
Link the tileset created for previous set:
cd ~/external/3d-tiles-samples/tilesets; ln -s ~/projects/VTK/build/Testing/Temporary/jacksonville-3dtiles
cd ~/external/3d-tiles-samples/tilesets; ln -s ~/projects/VTK/build/Testing/Temporary/berlin-3dtiles
Start web server:
cd ..;npm start
google-chrome jacksonville-3dtiles.html;google-chrome berlin-3dtiles.html
Test the tilesets using 3d-tiles-validator#
cd ~/external/3d-tiles-validator/validator/
node ./bin/3d-tiles-validator.js -i ~/projects/VTK/build/Testing/Temporary/jacksonville-3dtiles-points/tileset.json
node ./bin/3d-tiles-validator.js -i ~/projects/VTK/build/Testing/Temporary/jacksonville-3dtiles-colorpoints/tileset.json