
如果说 9.0 有一个投入最猛的方向那一定是 Gaussian Splatting。官方发布稿用了take it to the next level来形容并且特别鸣谢了 Adobe 的贡献。本篇梳理这条从 7.0 一路铺到 9.x 的完整技术线五种格式、阴影、三角泼溅、多部分合成、数据可写以及 9.1 的球谐优化和 9.x 时代的流式加载。引言Babylon 的 GS 编年史先把时间线摆清楚因为很多9.0 新功能其实是多年铺垫的收割版本GS 里程碑7.02024首次支持 Gaussian Splatting 加载渲染8.02025.03专用GaussianSplattingMesh/材质类、NME 集成、SPZ 与压缩 PLY、球谐SH支持、显存与 CPU/GPU 优化9.02026.03重建整个功能集阴影、SOG/SOGS、三角泼溅、多部分合成、数据可写、正交相机9.12026.04降采样 SH、运行时 SH 阶数控制、一批 GS 工作流修复9.x2026.06实验性 streaming LoD数亿 splat 可导航官方的定位宣言很直白Babylon 不想只做一个 radiance field 数据的查看器而是要让 splat 像传统 mesh 一样可组合、可编辑、可上生产。9.0 的每一个功能都在服务这个目标。一、格式全席五种格式一条加载路径9.0 的加载器覆盖五种格式格式来源定位.ply3DGS 训练的标准产物原始数据体积最大.splatPLY 的类型化数组序列化加载快免解析压缩.ply社区压缩方案体积与兼容的折中.spzNiantic压缩格式比 PLY 小约 10 倍.sog/.sogsFraunhofer HHI 的 Self-Organizing Gaussians进一步大幅压缩使用方式和普通模型加载完全一致只需引入 splat loader 插件import babylonjs/loaders/SPLAT/splatFileLoader; const result await BABYLON.SceneLoader.ImportMeshAsync( , https://assets.example.com/, scene.spz, scene ); const splat result.meshes[0] as BABYLON.GaussianSplattingMesh;加载选项里有几个实用的flipY处理垂直翻转的 SPZ 文件输出、keepInRam保留数据在内存供后续updateData读写、spzLibraryUrl自定义 SPZ 解码库地址。一个有意思的历史细节SH球谐支持早年是为 PLY 放弃的——当年文件体积是痛点SH 数据太占地方SPZ 把体积打下来之后SH 解析才在 2024 年底补回来。这也解释了为什么今天SPZ SH是照片级质感的主流组合——梵蒂冈圣彼得大教堂的数字孪生项目走的就是这条路compressed PLY 起步最终因为 SH 切到 SPZ每场景 300~500 万 splat。二、Splat 阴影让 splat 真正落地社区呼声最高的功能。以前 splat 场景总有种贴图悬浮感根源就是没有接触阴影。技术障碍在于splat 用alpha blending渲染而传统 shadow map 假设几何体是不透明的。所以 9.0 的方案是复用引擎既有的透明阴影机制——必须给 ShadowGenerator 开启transparencyShadowconst shadowGenerator new BABYLON.ShadowGenerator(1024, light); shadowGenerator.transparencyShadow true; // 关键splat 是 alpha 混合渲染 shadowGenerator.addShadowCaster(splatMesh); ground.receiveShadows true; // 可选软透明阴影用抖动图案模拟柔和过渡 shadowGenerator.enableSoftTransparentShadow true;透明阴影的原理是按 fragment 的 alpha 值在 shadow map 里生成抖动图案dithering pattern——拉近看可能看到颗粒感配合 Blur Exponential 这类滤波方式可以大幅缓解。即便如此有了接触阴影的 splat 和地面/传统几何体的融合感是质变级的。三、Triangle Splatting把 splat 变成正常 mesh9.0 最具话题性的功能。Triangle Splatting 是列日大学和 UCLouvain 研究者提出的技术用不透明的三角形替代半透明的高斯椭球。产物是存储在标准 PLY 里的不透明顶点着色三角形 meshBabylon 直接加载渲染关键是应用一个 unlit 顶点色材质并关掉背面剔除const material new BABYLON.StandardMaterial(unlitVertexColorMat, scene); material.disableLighting true; material.emissiveColor new BABYLON.Color3(1, 1, 1); material.diffuseColor new BABYLON.Color3(1, 1, 1); material.backFaceCulling false;为什么这件事重要因为不透明几何体继承了传统渲染管线的全部红利正确的深度测试与遮挡——不再需要每帧全局排序传统 GS 最贵的操作之一兼容标准渲染管线——阴影、后处理、OIT 一切照常动态 LOD 的潜力以及最关键的——relighting 成为可能传统 GS 的光照烘焙在 SH 里无法重新打光正如 Cedric 在论坛所言不透明几何解决了传统 GS 在混合场景里几乎所有合成难题。需要厘清边界训练三角泼溅的可微渲染器目前依赖 CUDA但推理加载渲染产物在任何 WebGL/WebGPU 设备上都能跑。顺带一提论文作者本人曾现身 Babylon 论坛表示愿意协助集成——开源社区的美妙时刻。四、多部分合成addPart 与全局排序Gaussian Splatting 多部分合成多个独立 splat 资产经 addPart 合并后保持全局排序且每部分可独立变换传统痛点场景里放多个GaussianSplattingMesh每个 mesh 独立做局部排序两个 splat 物体空间交叉时渲染顺序就错了。9.0 的解法是compound mesh用addPart把多个 splat 资产合并进一个场景保持单一全局排序同时每个部分保留独立的可见性和变换可以单独移动、旋转、做动画// 复合容器 const compound new BABYLON.GaussianSplattingMesh(compound, null, scene, true); // 逐个加载部件并合并 for (const file of [chair.spz, table.spz, lamp.spz]) { const part new BABYLON.GaussianSplattingMesh(file, null, scene, true); await part.loadFileAsync(./assets/ file); compound.addPart(part, false); } // 每个 part 可独立变换/隐藏removePart 可移除底层机制是rig node支持每个 splat 携带一个整数标记自己属于哪个部分mesh 维护每部分的变换矩阵列表排序在合并后的全局 splat 集合上进行。配套的GPU picking可以精确选中复合场景里的单个部分。9.1 在这里修了两个真实生产问题GPU picker 现在会正确排除非活跃/隐藏的部分之前分割内容的选择行为是错的addPart的一个O(n²) 性能回归被修复——部件多的时候合并曾是卡点的。五、数据可读可写浏览器内的 splat 编辑器updateData让 splat 数据在内存中可读可写——意味着你可以在浏览器里程序化地生成、修改 splat 场景然后下载结果。这为浏览器端 splat 编辑工具打开了大门裁剪、着色、密度调整、多采集合成全都可以做成 Web 应用。材质层面GS 材质集成了MaterialPluginBase插件系统——不用 fork 核心材质代码就能给 splatting shader 注入自定义效果。六、9.1球谐的质量/性能杠杆SH 编码的是视角相关的颜色——splat 照片级质感的来源但也是内存大户。9.1 给了两个调节杠杆Downsampled SH creation从现有 splat 数据生成降采样的 SH 表示——离线把内存占用打下来Runtime SH degree control运行时动态调整 SH 阶数——低端设备降阶保帧率高端设备拉满保画质按场景实时切换另外几个值得知道的修复Viewer 加载 SPZ 的坐标翻转 bug镜像渲染已修Viewer 不再对全 splat 场景默认开启 SSAO——SSAO 是为多边形几何设计的用在 splat 上会产生黑色光晕。七、展望Streaming LoD9.x 时代进行时2026 年 6 月底官方放出了实验性的GS streaming LoD借助 PlayCanvas 开源的 splat-transform 工具把巨型 splat 转换成可流式加载的形式数亿 splat 的场景可以流畅导航且 PlayCanvas 的 GS 示例如 1100 万 splat 场景直接在 Babylon 里兼容运行。架构上AddGaussianSplattingStreamPart可以把一个 SOG LOD 流作为 compound mesh 的一部分——流式 splat 与静态部件在同一个 pass里完成深度排序和渲染。功能仍标记为实验性官方在收集反馈。八、实战配置速查场景推荐组合单物体展示电商、作品集SPZ SH 阴影 Viewer多物体合成场景addPart 复合 GPU picking 阴影照片级大场景SOG/SOGS 降采样 SH9.1超大场景城市级streaming LoD实验性9.x需要 relight / 混合传统管线Triangle Splatting建筑可视化 / 等距视角正交相机9.0 修复九、小结与下篇预告9.0 的 GS 更新完成了一个身份转变splat 从一种能加载的特殊格式变成了一等公民的场景资产——能投影、能合成、能拾取、能编辑、能流式加载。加上 9.1 的 SH 杠杆和 9.x 的 streamingBabylon 已经是 Web 端最完整的 GS 生产平台之一。下一篇换到另一个大主题大世界与地理空间渲染——浮点原点如何解决大坐标抖动、地理空间相机、3D Tiles 流式加载、基于物理的大气散射。