
在小说阅读器读本章
去阅读
距离新模型 Marble 1.1&1.1-Plus 发布不到一个周,李飞飞空间智能独角兽 World Labs 再度传来新消息——
开源 3D 高斯溅射渲染引擎 Spark 2.0。
我们为 3D 高斯溅射(3D Gaussian Splatting)打造了可流式传输的 LoD 系统,重新定义了 web 3D 渲染的可能性。
Spark 2.0 基于 Three.js 构建,用户可以通过 WebGL2,将包含 1 亿 +splats(3D 高斯点 / 泼溅点)的超大规模 3D 世界,流式传输到任意设备上,包括桌面、iOS、Android、VR。

例如下面的 Coit Tower 场景由超 4000 万个 splats 构成,却能在浏览器中实现完全交互:

在官方 Blog 中还有更多 3D 场景可以点开体验:

传统 3D 建模通过带纹理映射的三角形,一块一块拼出物体的表面。
3D 高斯溅射(3D Gaussian Splatting)则采用数百万个半透明椭球体(也就是 splats),通过这些椭球体的色彩融合,呈现出超写实的细节效果:

什么是 splat?
每一个 splat 都由位置、XYZ 三轴缩放、旋转角度、颜色、不透明度这 5 个属性定义。
将 splat 渲染到屏幕上最常见的方法是画家算法(painter ’ s algorithm)。
就像画画时先画远处的、再画近处的,把几百万个小椭球按从远到近的顺序排好,一层一层叠上去,实时算出最终画面。
这就像是数字版点彩画,只不过用的是 3D 高斯分布轮廓来作画。

对于这项成果,李飞飞第一时间给到了评论:
Spark 2.0 现已可在任意设备上流式渲染超 1 亿 splats!能为基于网页的 3D 高斯溅射渲染开源生态贡献力量,我深感自豪!

Spark 前身是 World Labs 开发的一款内部 3D 高斯溅射渲染引擎。
彼时市面上的 web 渲染引擎均存在明显短板,例如,部分引擎一次只能正确渲染一个 3D 高斯溅射对象;部分引擎无法不能动态动画化 splats;还有些引擎基于小众 3D 框架开发,或采用尚未普及的 WebGPU 技术,导致设备兼容性受限。
这款内部渲染引擎曾亮相于团队 2024 年发布的大型世界模型研究预览,以及早期场景展示项目 Lofi Worlds。

为了让更多开发者都能打造交互式 3D 高斯溅射 web 体验,团队整合技术积累,在去年开源了一款通用型 3D 高斯溅射渲染引擎。
当时名字还叫做Forge,量子位当时也有介绍,后改名 Spark。

Spark 基于主流 THREE.js 框架构建而成。同时,团队将技术底座定为 WebGL2,这是目前唯一能在几乎所有设备上稳定运行的 3D web API。
团队表示,Spark 的研发过程始终与 Marble 同步推进。
官方 Blog 中详细介绍了 Spark 的技术细节。
全新 Spark 2.0 实现了超大规模 3D 高斯溅射场景在网页端的预处理、流式加载与跨设备渲染。
关键在于融合了三项技术:
细节层次技术(LoD,Level-of-Detail):预先生成不同分辨率的 splats 数据,并根据相机视角智能筛选需要渲染的 splats 子集。对于距离过远、肉眼无法分辨细节的区域,减少渲染的 splats 数量,从而显著提升渲染性能。
渐进式流式加载(Progressive Streaming):采用"从粗到精"的加载策略,优先下载能最优化当前视角细节的数据。随着数据逐步下载,场景会不断细化,实现流畅的渐进式呈现。
虚拟内存(Virtual Memory):为 splats 页表分配固定的 GPU 内存池,根据用户在场景中的位置,自动置换 3D 高斯溅射数据块。借助这一技术,即使是通过网络获取的海量跨对象 splats 数据,也能被高效访问。
下面具体来看。
Level-of-Detail
在计算机图形学领域,Level-of-Detail 是处理大型 3D 场景的经典方案就是。它能根据物体与观察者的距离,自动调整渲染细节。当需要提升帧率时,可以降低细节等级;当用户静止观察时,则可以提高细节等级,呈现更精细的画面。
Level-of-Detail 的典型应用是 Mipmap 纹理映射:
将一张纹理图片逐级下采样,生成一组分辨率依次减半的纹理金字塔,最顶层是单个像素。这一技术能确保在任意距离下,都能快速采样到与屏幕像素尺寸匹配的纹理数据。
Level-of-Detail 的实现方案可分为离散型与连续型两大类。
离散型方案需要预先生成多套不同 splat 数量的模型版本,再根据物体包围盒与相机的距离,切换渲染不同版本。这种方法存在明显缺陷:
当用户在场景中移动时,模型细节的突然切换会产生"跳变"伪影;同时,将 splats 分块处理时,块与块之间的边界也会清晰可见。
Spark 采用的是连续型 Level-of-Detail,核心是为所有 splats 构建一个层级化结构——Level-of-Detail Gaussian splat tree。

Spark 会沿着该树的边界,精准筛选出最适合当前视口的 splats 子集,实现平滑无断层的细节过渡。

Spark 2.0 内置了两种 Level-of-Detail Gaussian splat tree 生成算法:
Tiny-LoD 算法:一种快速且轻量的算法,默认用于网页端的实时生成场景。
Bhatt-LoD 算法:一种高精度算法,默认用于命令行工具的离线处理场景。
这两种算法均为无训练依赖的方案,无需参考图像或其他额外输入数据,直接对 3D 高斯溅射数据进行处理即可。除此之外,Spark 也兼容其他第三方生成算法,例如 NanoGS。
Progressive Streaming
Spark 2.0 定义了一种全新的文件格式—— .RAD(全称 Radiance Fields,辐射场)。该格式不仅能有效压缩 3D 高斯溅射数据,还支持随机访问流式加载,实现了场景的渐进式精细化渲染,完美适配网络传输场景。
采用 RAD 格式后,3D 高斯溅射对象能立即以一个包含 64Ksplats 的粗糙版本呈现,随后系统会根据用户视角,优先获取用于优化可见区域细节的数据块,实现动态的优先级调整。

LoD splat tree 本质上是一个四维结构:包含三维空间维度与一维细节层次维度。
要实现流式加载的渐进式精细化渲染,必须将 LoD splats ,以合理的方式划分到 RAD 文件的各个数据块中。
实现这一目标的策略有很多,Spark 采用的策略核心是空间邻近性优先:
将三维空间递归划分为更小的区域,每个数据块都会按"从大到小"的顺序,填充对应空间区域内的 splats,确保每个数据块都能最大化呈现该区域的细节。
Virtual Memory
虚拟内存是一种经典的内存管理技术,通过划分固定大小的内存页,构建页表映射关系,用有限的物理内存,模拟出容量巨大的虚拟内存空间。
Spark 2.0 将这一技术创新性地应用于 3D 高斯溅射渲染:
它会在 GPU 中预先分配一个固定大小的内存池(容量为 1600 万个 splats),并构建一套页表映射机制,将 GPU 中的 64K splats "内存页",与 RAD 文件中的 64K 泼溅点数据块一一对应。

数据块的加载与置换规则如下:
根据 LoD splat trees 的遍历结果,将高优先级的数据块加载到空闲的 GPU 内存页中。
当 GPU 内存池被占满,且需要加载新的高优先级数据块时,会采用 LRU 算法,将优先级最低的内存页中的数据块置换出去。
Spark 的这一设计具备极高的灵活性:它支持同时加载多个 RAD 文件,并让这些文件共享同一个 GPU 内存池。对于每个 RAD 文件,Spark 都会维护两套映射关系:从数据块到内存页的映射,以及从内存页到文件和数据块的反向映射。
在对多个细节层次泼溅树进行遍历时,Spark 会统一记录所有文件的数据块访问顺序,最终生成一个全局数据块优先级列表,从而实现跨所有 3D 高斯溅射对象的加载与存储优化。
官方 Blog 中还介绍了更多技术细节,感兴趣的童鞋传送门在这里:
https://www.worldlabs.ai/blog/spark-2.0#lod-splat-tree
参考链接:https://x.com/i/trending/2044161909943918948
一键三连「点赞」「转发」「小心心」
欢迎在评论区留下你的想法!
— 完 —
� � 谁会代表 2026 年的 AI?
龙虾爆火,带动一波 Agent 与衍生产品浪潮。
但真正值得长期关注的 AI 公司和产品,或许不止于此。
如果你正在做,或见证着这些变化,欢迎申报。
让更多人看见你。� � https://wj.qq.com/s2/25829730/09xz/
一键关注 � � 点亮星标
科技前沿进展每日见
炒股配资平台提示:文章来自网络,不代表本站观点。