李飞飞团队开源 Spark 2.0:突破 3DGS 渲染难题,降低空间智能创作门槛

张开发
2026/4/16 23:18:06 15 分钟阅读

分享文章

李飞飞团队开源 Spark 2.0:突破 3DGS 渲染难题,降低空间智能创作门槛
“AI 教母”李飞飞团队开源 Spark 2.0突破 3DGS 渲染难题降低空间智能创作门槛智东西 4 月 15 日报道今天“AI 教母”李飞飞的世界模型团队 World Labs 开源了动态 3D 高斯泼溅3DGS渲染器 Spark 2.0。李飞飞本人在该成果发布的第一时间评论称“Spark 2.0 现在可以在任意设备上流式传输超过 1 亿个高斯泼溅能够为基于网页的 3DGS 渲染开源生态做出贡献我们感到无比自豪”Spark 系列模型于去年首次发布是一个专为网页构建的动态 3D 高斯泼溅3DGS渲染器。它与网页端最流行的 3D 框架 THREE.js 集成并利用 WebGL2 在任意带有网页浏览器的设备上运行包括桌面端、iOS、Android 以及 VR 设备。与上一版本相比Spark 2.0 新增了一套细节层级LoD系统能够在任意设备上流式传输并渲染超大规模的 3DGS 世界。此外新版还使用了.RAD 的 3DGS 文件格式支持渐进式细化的流式传输而虚拟泼溅分页系统则通过固定的 GPU 内存分配实现了对无限泼溅世界的访问通俗来讲就是可以渲染无限大的 3D 场景。如此流畅连贯的效果是怎么实现的针对大规模场景的扩展难题Spark 2.0 运用了 3 项图形学与系统底层方案细节层次优化、渐进式流式加载以及虚拟显存管理。李飞飞团队在博客中对 Spark 2.0 背后的三项技术进行了十分详细的展开具体如下采取连续式细节层级稳定渲染百万级泼溅在计算机图形学中处理大型 3D 场景时常常采用细节层级系统该系统会根据物体与观察者之间的距离自动调整渲染的细节程度。不同的细节层级方法介于离散式与连续式之间形成一个技术谱系。采用离散式细节层级LoDLevel-of-Detail时系统需要为泼溅效果制作多个版本从精简到精细依次递增再根据各版本的近似边界与相机的距离在不同版本间进行切换。Spark 的早期系统设计支持离散模式但其存在明显缺陷当用户在场景中移动、不同版本突然切换时画面会出现明显的跳变此外将泼溅效果按区块分组后用户还能看到清晰的边界痕迹。Spark 2.0 的 LoD 设计采用了一种连续式 LoD 方法所有泼溅都存在于一个层级结构中即 LoD 泼溅树。Spark 2.0 会沿着树的一个边界切割面单独选取泼溅从而在视口内优化泼溅的细节。树中的每个内部节点都是其子节点的一个低分辨率版本通过将子节点的多个泼溅合并成一个新的泼溅来近似表示子节点泼溅的形状和颜色。这个过程一直持续到树的根节点——一个单一的、大的泼溅它聚合了该物体中所有泼溅的整体形状和颜色。利用这棵 LoD 泼溅树Spark 2.0 会计算出穿过该树的一个“切片”从而为当前视口选取最佳的 N 个泼溅进行渲染。通过设置一个最大泼溅预算 N根据设备类型不同通常在 50 万到 250 万个泼溅之间系统确保每帧只需渲染恒定数量的泼溅从而获得稳定、高帧率的渲染性能。通过上下调整 N 值即可在帧率和泼溅细节之间进行权衡。Spark 2.0 通过同时遍历多个 LoD 泼溅树实例对该算法进行了进一步扩展。与仅从单一根节点开始遍历不同针对每个 3DGS 物体拓展后的算法会将其屏幕尺寸及泼溅节点 (dm0,Sm0) 一同加入初始优先队列后续流程与原有逻辑保持一致可在场景中所有 3DGS 物体上同步筛选需细化的细节层级。这一设计让大规模组合世界的创建变得简单高效只需在空间任意位置添加 3DGS LoD 物体Spark 2.0 便能自动计算出每帧需渲染的所有 LoD 泼溅的最优全局子集。设计新型文件格式大场景 3D 世界在网页上秒开Spark 2.0 定义了一种新的文件格式.RAD代表 RADiance 场该格式能够压缩 3DGS 数据并支持随机访问流式传输从而在数据通过网络传输时实现渐进式细化。目前最常见的两种 3DGS 数据文件格式是.PLY 和.SPZ它们代表了两种不同的数据编码方式行式存储和列式存储。.PLY 文件是按行顺序存储的在接收到数据后立即显示泼溅从而实现渐进式加载。但它未经过压缩且编码精度存在浪费。.SPZ 文件将相似类型的数据按列顺序存储在一起从而获得了更好的压缩率。但遗憾的是它无法实现渐进式加载因为在任何泼溅获得其所有属性之前必须接收完整的文件。为实现 3DGS 数据的高效压缩与流式传输李飞飞团队设计了全新的.RAD 文件格式。该格式编解码简洁、扩展性强、编码精度可调节同时支持随机访问。文件结构十分清晰以 RAD0 文件头开头随后依次为头部元数据长度、元数据 JSON以及一个或多个各含 6.4 万个泼溅的数据块。头部元数据记录了所有数据块的偏移地址与字节大小支持任意顺序读取数据块内容。单个数据块也采用相似结构以 RADC 块头起始接着是块元数据长度、元数据 JSON最后为该 6.4 万个泼溅的压缩数据。泼溅各项属性按列存储可分别选用自定义编码方式。同类数据集中存放再通过 Gzip 压缩能获得出色的压缩率。头部采用 JSON 编码可通过版本字段与新增可选字段保障后续扩展。数据类型编码与压缩算法均以字符串名称在元数据中指定方便后续扩展新类型。采用虚拟内存开辟 1600 万泼溅固定显存池虚拟内存是一项内存管理技术它以固定大小的物理内存为基础向程序提供大容量的虚拟地址空间并通过页表以固定尺寸的页为单位完成虚拟地址与物理地址的映射。Spark 2.0 将这一思路应用到 3DGS 渲染中。具体来讲李飞飞团队在 GPU 上开辟了一块可容纳 1600 万个泼溅的固定显存池自动管理 GPU 中每 6.4 万个泼溅为一页的“显存页”与.RAD 文件中对应大小的虚拟数据块之间的映射。数据块会按照 LoD 遍历顺序加载到空闲页面中当页表占满且新数据块优先级更高时系统会按最近最少使用LRU策略淘汰旧数据。Spark 2.0 支持同时加载多个.RAD 文件并共用同一张页表。对每个文件系统会记录数据块到页表的映射以及页表到对应文件与数据的反向映射。在遍历多棵 LoD 泼溅树时引擎会记录数据块与文件的访问顺序形成全局统一的优先级排序进而对场景中所有 3DGS 物体的泼溅加载与存储进行统一优化。结语Spark 2.0 降低空间智能的创作门槛争夺基础设施定义权从去年的首次亮相到今日的 2.0 版本迭代Spark 的进化轨迹某种程度上也映射着 3DGS 这一技术的成熟曲线。三维内容的交付长期以来被两座大山压着一是资产太重动辄 GB 级的文件让网页端望而却步二是渲染太贵高端 GPU 才能流畅运行的场景手机浏览器只能围观。Spark 2.0 通过连续 LoD、.RAD 格式和虚拟显存“三板斧”让高质量三维内容像普通图片和视频一样在互联网上自由流动、即点即看。李飞飞团队选择将该技术开源降低了空间智能的创作门槛同样也是在争夺下一代空间内容基础设施的定义权。

更多文章