Cesium适配SOG高斯泼溅压缩格式

SOG 高斯泼溅压缩格式

SOG 是 Web3D 巨头 PlayCanvas 推出的一种用于 3D Gaussian Splatting 的革命性压缩格式。

在官方的测试数据中,SOG 格式能够将原始大小为 1GB 包含 400 万高斯的 ply 模型,压缩到惊人的 42MB。文件大小减少了 ~95%。实现秒级加载。

PlayCanvas 也推出了基于 node 的转换工具 SplatTransform,利用该工具可以通过调用 WebGPU 将原始的 ply 模型转换成 SOG。

更多的细节可以参考官方的文章:PlayCanvas Open Sources SOG: The WebP of Gaussian Splatting

开源的资料

The SOG Format 提供了 sog 的格式规范

SplatTransform 提供了 sog 压缩的方式

PlayCanvas Engine 是官方提供的基于 web 的渲染器实现

SuperSplat 是官方提供的浏览/编辑工具

移植 Cesium

效果截图

基于 Cesium 的实现主要参考 PlayCanvas Engine 里面的解析和渲染过程。

值的注意的是,最好使用新一点的 Cesium 版本进行移植,因为旧版本的 Cesium 会缺少很多 WebGL 的数据格式类型,官方支持 Gaussian Splatting 之后,这个问题才得到改善。

我的实现过程使用到的 Cesium 版本是 1.134,供大家参考。

如果无法更换 Cesium 版本,那么也可以通过修改源码的方式,来支持这部分数据格式。

官方支持为什么还要移植 SOG

如果大家体验过官方的 Gaussian Splatting,会发现几个问题:

  1. 缺少官方的转换程序:和 3DTiles 一样,官方只提供上传 Ion 的方式来进行数据转换,因此大部分时候为了获取更好的效果,我们只能使用一些商业软件,比如 CesiumLab 来进行转换。
  2. 高斯球排序效率低:快速移动视角,Gaussian Splatting 会出现闪烁的情况。

而 SOG 格式正好能解决目前这两个痛点。

经过移植后的实际测试 SOG 渲染更快,高斯球排序效率更高,提供官方的转换程序。

当然,SOG 格式相比于官方的方式,缺少了一个个人认为比较重要的东西 —— LOD。

这个部分就目前 PlayCanvas 官方放出的消息来看,已经实验性的支持了。后续正式推出后,会考虑持续跟进。

效果展示


Cesium适配SOG高斯泼溅压缩格式
https://www.liaomz.top/2025/10/24/cesium-gua-pei-sog-gao-si-po-jian-ya-suo-ge-shi/
作者
发布于
2025年10月24日
许可协议