Skip to content

For reference: glTF Extension KHR_gaussian_splatting for 3DGS scene representation #30101

@jo-chemla

Description

@jo-chemla

Description

Following thread NASA-AMMOS/3DTilesRendererJS#863 I just opened, @gkjohnson suggested I should cross-post it directly on the three.js repo. Feel free to close this and anyone interested can watch the universal splat thread instead - link below - since this 3DGS feature might be out-of-scope for the threejs library at the moment.

Solution

Here mkkellogg/GaussianSplats3D#47 is a mega discussion regarding a universal gaussian-splat format, with a lot of great takes and mentions - mostly regarding compression, like Niantic SPZ, and standardization.

An interesting recent comment by lilleyse (Cesium team member) redirects to the draft KHR_gaussian_splatting glTF extension as well as an implementation within CesiumJS in the experimental splat-shader branch. This extension adds _ROTATION and _SCALE attributes to a glTF POINTS, so these can be used to represent a gaussian-splat scene. If or once that standard settles and makes its way to official KHR_extension, it would be uesful for threejs to interpret this extension and give access to these extra attributes.

The Cesiumjs implementation extends that KHR_gaussian_splatting extension to a HLOD (Hierarchical LoD) tileset container of mesh scenes, OGC-3D-tiles, where every leaf node tile is a glTF scene that supports that gaussian-splat extension.

Alternatives

CesiumJS viewer will probably be the first reference implementation for that KHR_gaussian_splatting extension + OGC-3D-tiles

Additional context

Following the original release of the 3DGS paper by INRIA team at SIGGRAPH 2023, there have been multiple JS renderers and viewers implemented, some based on threejs like mkkellogg/GaussianSplats3D and some others which aren't, eg antimatter15/splat lumalabs or babylonjs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions