a gltf 'profile' for an open format Point-cloud standard, leveraging glTF and 3d-tiles-next.
- GLTF: EXT_meshopt_compression
- GLTF: KHR_mesh_quantization
- GLTF: KHR_materials_unlit
- 3DTILES: EXT_mesh_features
- 3DTILES: implicit_tiling
- point primitives only
- only one node
- single buffer
- required buffer view for VEC3 positions (max size uint32) (do not break up into 65k buffer chunks)
- optional buffer view for VEC4 RGB colors (max size uint32) (do not break up into 65k buffer chunks)
- optional buffer view for VEC3 normals (max size uint32) (do not break up into 65k buffer chunks)
- single material using extension 'KHR_materials_unlit'
- finally, compress glb with GLTF_EXT_meshopt_compression (ie. try glTFpack )
"materials": [
{
"name": "unlit",
"extensions": {
"KHR_materials_unlit": {}
},
}
],
- Source: SketchFab cc
- Using KHR_materials_unlit
- Compressed with MeshOpt Compression, based on this conversation
- glTF version:
flower-pointcloud-MeshOpt_unlit
gltf bin - glb version: flower-pointcloud-MeshOpt_unlit.glb
"bufferViews": [
{
"buffer": 0,
"byteLength": 200789448,
"byteOffset": 0,
"byteStride": 12,
"name": "floatBufferViews",
"target": 34962
},
{
"buffer": 0,
"byteLength": 267719264,
"byteOffset": 200789448,
"byteStride": 16,
"name": "floatBufferViews",
"target": 34962
}
],
- all 3DTiles-Next extensions - https://github.com/CesiumGS/3d-tiles/tree/main/extensions
- convert from pointcloud 3dTiles v1.0 (PNTS-Draco) to 3dTiles v1.1 (glb-MeshOpt) I used this script: https://gist.github.com/wallabyway/d022f97191599c5d9dde4827aecec1e5
Add point-cloud to mapbox, via 3d-Tiles/glTF pointcloud file set
(watch this space)
three.js (ebeaufay) | Cesium (experimental) |
---|---|