Quick recap of the context:
-
sparkjs supports 3dgs scenes encoded as Playcanvas SOG v2 format since v0.1.10 as shown on the doc and this comment
-
Sparkjs 2 introduced support for tiled 3dgs scenes in the RAD format as shown in the very detailed v2 blog post, section level-of-detail. These are ~octree hierarchy with base 1.5, built via build-lod with bhatt-lod or tiny-lod modes, where each node contains a rad encoded, JSON metadata header followed by randomly-seekable chunks.
-
Playcanvas team built upon the SOGv2 format to design their own version of a HLOD hierarchical LOD tiled splats format, named streamed SOG, a binary spatial subdivision where each node geometry is encoded as sog set of webp textures.
Spark 2.0 supports SOGS files via a .zip file with manifest.json and referenced .webp images, and also the new extension .sog. However, the new Spark 2.0 file loaders don't support referencing manifest.json via remove URL and fetching the relative URL images. Please download and ZIP the files together and reference that directly for Spark 2.0.
It would be great to extend support for tiled splats within sparkjs to not only RAD, but also the streamed SOG format/specification, which would take advantage of the hierarchical structure of streamed-sog, and the existing sog decoding implementation.
Note at some point it might as well make sense to also support the OGC-3dtiles of glTF nodes packaged with the KHR_gaussian_splatting and KHR_gaussian_splatting_compression_spz_2, because an increasing number of implementations can produce such tiled-spalts - within the Cesium/Bentley ecosystem, as well as ESRI or independent tilers).
Quick recap of the context:
sparkjs supports 3dgs scenes encoded as Playcanvas SOG v2 format since v0.1.10 as shown on the doc and this comment
Sparkjs 2 introduced support for tiled 3dgs scenes in the RAD format as shown in the very detailed v2 blog post, section level-of-detail. These are ~octree hierarchy with base 1.5, built via
build-lod with bhatt-lod or tiny-lodmodes, where each node contains a rad encoded,JSON metadata header followed by randomly-seekable chunks.Playcanvas team built upon the SOGv2 format to design their own version of a HLOD hierarchical LOD tiled splats format, named streamed SOG, a binary spatial subdivision where each node geometry is encoded as sog set of webp textures.
It would be great to extend support for tiled splats within sparkjs to not only
RAD, but also thestreamed SOGformat/specification, which would take advantage of the hierarchical structure of streamed-sog, and the existing sog decoding implementation.Note at some point it might as well make sense to also support the
OGC-3dtiles of glTF nodespackaged with the KHR_gaussian_splatting and KHR_gaussian_splatting_compression_spz_2, because an increasing number of implementations can produce such tiled-spalts - within the Cesium/Bentley ecosystem, as well as ESRI or independent tilers).