2026年5月26日

Gaussian Splatting 插件新功能

在本次 Evergine 新版本中,我们继续推进 Gaussian Splatting 插件,引入了两项重要的新能力:支持 SOG 压缩格式 以及完整的 WebGPU 渲染支持。这些新增功能带来了更高的存储效率,并为该插件适配下一代渲染管线做好了准备。

3D Gaussian Splatting 回顾

3D Gaussian Splatting 是计算机图形学中的一项先进技术,通过将点云中的点(即“splats”)投影到 3D 空间中,并对每个 splat 使用高斯函数,来创建高保真、照片级逼真的 3D 场景。该技术支持复杂的视图依赖视觉效果,超越了传统的点云渲染,能够生成动态且栩栩如生的可视化效果。

3D 空间被定义为一组高斯分布,每个高斯的参数通过机器学习计算得出。

它类似于计算机图形学中的三角形光栅化:不同的是,这里绘制的是高斯体而非三角形。每个高斯体由其位置、协方差、颜色和透明度来描述。

新功能

本次 Evergine 版本为 Gaussian Splatting 插件 带来了重要的新能力,扩展了格式支持和渲染后端灵活性。

SOG 格式支持

该插件现已支持由 PlayCanvas 开发的 SOG 格式,这是一种高度压缩的 Gaussian Splatting 文件格式,其名称代表 空间有序 高斯体。它基于弗劳恩霍夫海因里希·赫兹研究所的研究论文 《通过自组织高斯网格实现紧凑的 3D 场景表示》(Morgenstern 等人,ECCV 2024)。PlayCanvas 采纳并推广了这种格式,使其适用于实时 Web 部署。

SOG 工作原理:将高斯体视为纹理

SOG 背后的核心洞见在于,描述 Gaussian Splatting 场景的所有数据(位置、颜色、透明度以及被称为 球谐函数 的复杂视角依赖光照信息)都可以排列成规则的 2D 图像,就像视频游戏中的纹理一样。一旦场景数据以这种方式组织起来,标准图像压缩(与 JPEG 或 PNG 使用的压缩方式相同)就能极其高效地对其进行压缩,因为图像编解码器正是针对这类结构化、空间连贯的数据进行了高度优化。最终得到的文件大小仅为其他格式的几分之一,且视觉质量损失可忽略不计。

为什么 SOG 优于压缩的 .ply

压缩的 .ply 格式的一个关键限制在于,虽然它量化了 splat 的位置、尺度、旋转和基础颜色,但它 不压缩球谐函数(SH)系数。球谐函数编码了视角依赖的颜色效果,即 splat 的外观如何随观察角度变化,它们占据了总文件大小的很大一部分,尤其是对于以高 SH 阶数捕获的场景。

由于 SOG 将所有参数(包括 SH)存储为 2D 网格图像,它使用相同的图像压缩管线,像压缩其他数据一样高效地压缩 SH 系数。这是其文件大小具有显著优势的主要原因。

SOG 格式的主要优势包括:

  • 基于纹理的存储:所有高斯参数被组织成 2D 网格并作为图像压缩,能够复用高度优化的图像压缩技术。
  • 球谐函数(SH)压缩:与压缩的 .ply 格式不同,SOG 完全压缩了 SH 系数,而这正是高质量捕获中文件大小的最大贡献者。
  • 显著更小的文件体积:网格组织、局部平滑性约束和图像压缩的结合,相较于原始 3DGS 实现了 19.9 倍至 39.5 倍的压缩比,相较于压缩的 .ply 约为 5 倍,同时保持了视觉质量。
  • 简单的解码过程:解压 SOG 文件仅需标准图像解压后进行重新缩放,无需复杂的码本或神经网络。
  • 更快的加载时间:更小的文件直接转化为更快的资产加载,改善了最终用户体验,尤其是在流式传输场景中。
  • 对 Web 和移动端友好:紧凑的表示形式使 SOG 成为在资源受限环境中部署 Gaussian Splatting 场景的理想选择。
实际文件大小对比

为了说明其影响,以下是一个使用同一场景导出为每种格式的真实示例。以压缩的 .ply 作为基准:

格式文件大小备注
CarmonaRomanBridge.ply(原始)691.3 MB原始未压缩的 3DGS 输出,约大 3.9 倍
CarmonaRomanBridge.compressed.ply(基准)179.5 MB—
CarmonaRomanBridge.sog35.7 MBSOG 文件,约小 80%(约小 5 倍)

与已经压缩的 .ply 相比,SOG 格式节省了约 80% 的存储空间,这种缩减完全由球谐函数压缩驱动,而这正是压缩的 .ply 格式根本不支持的功能。

WebGPU 渲染支持

Gaussian Splatting 插件现在可以使用 WebGPU 作为其渲染后端。这并非一项简单的补充:它需要同时在两条战线上开展工作。一方面,Gaussian Splatting 插件 本身进行了更新以支持 WebGPU 渲染路径,使其排序、缓冲区管理和绘制调用适应 WebGPU API。另一方面,Evergine 的 WebGPU 后端 的某些区域也得到了修复和改进,以确保所有功能能正确地协同工作。

WebGPU 为 Gaussian Splatting 带来的优势
  • 现代 GPU 访问:WebGPU 提供了类似于 Vulkan 和 Metal 的底层、显式 GPU 控制,从而在 splat 排序和渲染过程中更高效地利用 GPU 资源。
  • 在支持的平台上性能更佳:在支持 WebGPU 的平台和浏览器上,与基于 WebGL 的渲染相比,此后端可以提供更高的帧率和更低的 CPU 开销。
  • 面向未来的架构:随着 WebGPU 在浏览器和平台上的普及,这项投入确保了 Evergine 的 Gaussian Splatting 能力在不断发展的 Web 生态系统中保持相关性和高性能。
  • 为即将推出的功能奠定基础:WebGPU 解锁了计算着色器能力,这对于该插件未来的增强功能至关重要。

下一步计划

我们正积极致力于在未来的版本中为 Gaussian Splatting 插件带来更先进的渲染能力。

随机光栅化

目前最激动人心的开发领域之一是基于研究论文 “StochasticSplats:用于免排序 3D Gaussian Splatting 的随机光栅化”(Kheradmand 等人,ICCV 2025)的 Gaussian Splatting 随机渲染。它提出了一种根本不同的方法,用于在屏幕上合成 splat。

传统的 Gaussian Splatting 渲染依赖于 Alpha 混合,这要求所有 splat 在每一帧之前都相对于相机进行 从后到前的排序。这个排序步骤计算开销很大,对于大型场景,尤其是在高帧率下,可能成为瓶颈。

随机渲染采用了一种完全不同的方法:

  • 无需排序:splat 在渲染前无需排序,消除了经典 Gaussian Splatting 的主要性能成本之一。
  • 无 Alpha 混合:随机渲染不使用半透明图层混合,而是采用一种 随机透明度 形式,结合抖动和专门的着色效果,以达到视觉上等效的结果。
  • 顺序无关:无论 splat 的绘制顺序如何,最终图像都是一致的,极大地简化了渲染管线。
  • 更高的性能潜力:通过消除排序依赖,这种方法为在复杂场景中实现更好的 GPU 并行性和更高的持续帧率打开了大门。

同样值得注意的是,采用 WebGPU 作为渲染后端,为实现更高质量的随机渲染解决方案打开了大门。我们期待在此功能成熟时分享更多细节。

结论

此版本为 Gaussian Splatting 插件带来了两大进步:原生支持 PlayCanvas 的紧凑型 SOG 格式,其关键优势在于完全的球谐函数压缩;以及能够使用 WebGPU 后端渲染 Gaussian Splatting 场景。这些新增功能共同使该插件更通用、更高效,并为实时 3D 渲染的未来做好了准备。随着随机渲染即将到来,更精彩的还在后头。

作者:David Ávila Membrives,高级研究员

David avila
作者
David Ávila
Plain Concepts Research