Cesium支持显示3D高斯泼溅的3dtiles数据

Cesium支持显示3D高斯泼溅的3dtiles数据

cesium 支持显示3D高斯泼溅数据了,第一个版本是1.130.1 在 2025-06-16 发布,当前最新版本 1.131也还是在新示例中,来尝尝鲜

01

效果

官方示例里面是3dgs和倾斜的对比,我截了几张图,大家直观感受一下,左侧是3dgs,右侧是倾斜

远看

01

杆塔对比

01

导线都可以看到

01

门对比

01

植被对比

01
01

变压器对比

01

这里可以看到,相比倾斜数据,3dgs数据在中远距离视角的效果是很有优势的(整体颜色,杆塔显示效果,导线显示效果都比较好),但是在近距离视角就会显得模糊(门,植被),而且有些视角,界面会上闪烁。

数据结构

这几天我一直在看数据是怎么组织的,主要是两个方面,tileset.json 和glb,主要是 KHR_spz_gaussian_splats_compression 扩展,它是 KHR_gaussian_splatting 的压缩形式,

目前1.130.1版本只支持 KHR_spz_gaussian_splats_compression 这个,后面可能也会支持 KHR_gaussian_splatting 格式,KHR_gaussian_splatting数据量为前者的 5~10 倍。

tileset.json

tileset.json 中增加了扩展 KHR_spz_gaussian_splats_compression

"asset": {
    "version": "1.1"
},
"extensions": {
"3DTILES_content_gltf": {
    "extensionsRequired": [
    "KHR_spz_gaussian_splats_compression"
    ],
    "extensionsUsed": [
    "KHR_spz_gaussian_splats_compression"
    ]
}
},
"extensionsUsed": [
    "3DTILES_content_gltf"
],

glb

增加了扩展 KHR_spz_gaussian_splats_compression,相关信息可参考 KHR_gaussian_splatting

glb 里关键的信息我列出来, 主要包括:

01
{
    "accessors": [
        {
            "componentType": 5126,
            "count": 300000,
            "max": [1,1,1],
            "min": [-1,-1,-1],
            "type": "VEC3"
        },
        {
            "componentType": 5121,
            "count": 300000,
            "type": "VEC4"
        },
        {
            "componentType": 5126,
            "count": 300000,
            "type": "VEC3"
        },
        {
            "componentType": 5126,
            "count": 300000,
            "type": "VEC4"
        }
    ],
    "extensionsRequired": [
        "KHR_spz_gaussian_splats_compression"
    ],
    "extensionsUsed": [
        "KHR_spz_gaussian_splats_compression"
    ],
    "meshes": [
        {
            "primitives": [
                {
                    "attributes": {
                        "COLOR_0": 1,
                        "POSITION": 0,
                        "_ROTATION": 3,
                        "_SCALE": 2
                    },
                    "extensions": {
                        "KHR_spz_gaussian_splats_compression": {
                            "bufferView": 0
                        }
                    }
                }
            ]
        }
    ]
}

效果

技术飞速发展,一不小心可能就错过了很多好玩的。3dgs的效果很早就在网上看到过,有些视频,文章图片刻意突出优势,当时看起来很惊艳,等到自己从github闪把数据拉下来看,发现那些只有某些角度,不免会有些失望。之前在B站上也看到过有人对比倾斜,3dgs,nerf的效果,了解个大概。3DTiles Gaussian Splatting 这个示例做的很好,让我对这种技术有了更深入的了解。

之前网上有很多方案,有的叠加div,有的做自己的格式,但是都没法做到很大影响,这个版本3dtiles支持之后,感觉有了落地的影子,不得不感慨,官方实力真强,开源的力量真强。

发表评论