Skip to content

Add support for streamed SOG #375

Description

@jo-chemla

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions