前两天刷到Spark 2.0开源的消息,说实话第一反应不是兴奋,是松了口气。

李飞飞团队这次开源的,是一个基于Three.js和WebGL2构建的3D高斯泼溅渲染引擎,专为网页端设计,可以流式传输和渲染超过1亿个高斯泼溅点。简单说,你拍一圈照片生成的3D场景,现在可以在手机、平板、VR设备的浏览器里直接打开,不用装插件,不用等半天加载。

Spark2.0

干孪生八年,见过太多demo牛得像科幻片,真拿给客户一跑——卡成PPT。客户不会跟你说“显存不足”,他只会觉得你这个东西不行。

所以Spark 2.0让我想说的,不是什么黑科技爆发,而是三个字:能用了

其实背后的事没那么多弯弯绕

传统的3D模型,本质上是三角形拼凑。一个车间几十万个三角面,精密设备上百万个,全加起来几千万是常事。浏览器每秒钟要算这些三角形的位置、颜色、光影,还要算遮挡关系——不卡才怪。

那Spark 2.0用的3D高斯泼溅呢?本质上就是用带有透明度属性的半透明彩色椭球体,也就是splat,一个个堆叠出模型。每个splat不需要和其他splat维持复杂的连接关系,各自算各自的颜色、位置和半径就行——计算量自然掉下来了。

动图封面

使用纹理映射三角形网格(左)和高斯溅射(右)渲染同一物体。

说起来,这套东西以前也有。但Spark 2.0真正解决问题的,是另外三个东西。

第一,它引入了连续LoD(细节层次)系统。你的手机屏幕分辨率就那么大,没必要把所有几千万个splat从头到尾算一遍。Spark把场景里所有的splat组织成一棵“连续LoD树”,离得近的取细节,离得远的自动用低精度版本代替。整棵树受一个固定的splat预算控制,移动端大约50万个,PC端大约250万个——实际参与渲染的splat量始终在这个范围内浮动,帧率自然稳定。而且Spark还额外实现了一种近似注视点渲染的逻辑,把更多算力集中在视野中心方向,对VR场景挺友好。

左图:将输入叶片碎片合并到更大的内部节点碎片生成的LoD飞溅树,最多可达一个根飞溅。右图:Spark计算树切,根据当前视点选择渲染的splat。

第二,它设计了全新的.RAD文件格式。传统的3DGS文件无非两种,.PLY文件未压缩,1亿个splat大约2GB以上,也就是亮个相就够你内存喝几壶了;.SPZ压缩后大约200-250MB,但必须等整个文件下载完才能显示。而.RAD把splat切成64K个splat为单位的独立小块,分别压缩,文件头记录每块的偏移位置。第一块永远是整个场景最粗糙的64K个splat,一加载场景轮廓就可以立刻显示,然后系统自动根据你的视角会优先拉取你需要看到的部分——也就是像流式加载一样,模糊到清晰。

RAD文件结构,由一个可扩展的JSON元数据头部组成,后面跟随随机寻址的块。每个块是一个RADC文件,带有JSON头部和64K块splat的属性,按列顺序编码和压缩。

第三,GPU虚拟内存。移动端显存就那么大,装不下整个场景。它把数据切成小页,按视角动态换入换出,在有限显存里能访问几乎无限的数据。

这三项技术结合起来,最直观的感受就是:以前你发一个3D模型链接给客户,他打开等十秒还在转圈。现在打开后两秒就能看到一个基本形状,走动时画面逐渐从模糊变清晰,就像一个短视频加载时的策略——先给个模糊缩略图,你看着顺眼了再逐步加载高清细节。

但要挑毛病,这也不是万能药

我查了一下公开的落地案例。宁夏电力公司用无人机拍铁塔,用高斯泼溅还原施工现场,在虚拟环境里模拟脚手架搭建;中控信息那边也提到,基于3DGS的三维重建,效率比传统方案提升10倍以上;还有像公园、小镇、商业街等小场景通过高斯泼溅技术搭建,效果如下:

3DGS景区(视频素材来源:元游镜相)

但你仔细看就会发现,这些案例几乎都是静态展示——巡检、验收、设计推演,核心是“看清楚”,不是“动起来”。

目前公开能查到的动态案例只有一款叫Starspeed的太空射击游戏,上亿个高斯点在浏览器里跑战斗场景。但放到工业里,传送带上的工件、跑来跑去的自动导引小车,这些动态物体怎么处理?Spark 2.0的资料里还没看到答案。

它的底层渲染假设是静态场景,对动态物体每帧要重新计算排序,计算量会飙升。所以我的判断还是那句话:展示为主的场景,Spark 2.0的轻量化是实打实的好处;要是需要模拟一堆小车跑来跑去,传统方案可能更稳妥。

技术这东西,越深入越能看到边界

我不喜欢“颠覆”“未来已来”那种腔调。真正的落地,从来不是一夜之间的事。Spark 2.0开源不到一个月,它还年轻。但有个细节让我挺有好感——它的核心用Rust编译成WebAssembly,在后台独立线程跑,不阻塞主渲染。这种设计思路透着一股务实劲儿。

我做孪生这八年,最深的一个体会是:技术的进步,不是因为更聪明了,而是因为它开始知道用户需要什么。Spark 2.0暂时放弃了对动态物体的完美模拟,专注于把静态场景做到极致——这种取舍本身,就是一种成熟。

工业孪生的瓶颈从来不是画面不够真,而是真的东西跑不动。Spark 2.0帮我们解决了一半的问题。另一半,留给时间。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐