中广联演员委员会就AI换脸合成、影视素材魔改发声明
4月2日,据中国广电联合会演员委员会,当前,AI换脸合成、声纹克隆复刻、影视素材任意篡改、魔改、擅自抓取演员影像声频用于AI模型训...
扫一扫用手机浏览
▲Spark 2.0官宣开源(来源:X)
李飞飞本人在该成果发布的第一时间评论称:“Spark 2.0现在可以在任意设备上流式传输超过1亿个高斯泼溅!能够为基于网页的3DGS渲染开源生态做出贡献,我们感到无比自豪!”
▲李飞飞评论(来源:X)
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背后的三项技术进行了十分详细的展开,具体如下:
▲LoD泼溅树(来源:World Labs博客)
树中的每个内部节点都是其子节点的一个低分辨率版本,通过将子节点的多个泼溅合并成一个新的泼溅来近似表示子节点泼溅的形状和颜色。这个过程一直持续到树的根节点——一个单一的、大的泼溅,它聚合了该物体中所有泼溅的整体形状和颜色。 利用这棵LoD泼溅树,Spark 2.0会计算出穿过该树的一个“切片”,从而为当前视口选取最佳的N个泼溅进行渲染。通过设置一个最大泼溅预算N(根据设备类型不同,通常在50万到250万个泼溅之间),系统确保每帧只需渲染恒定数量的泼溅,从而获得稳定、高帧率的渲染性能。通过上下调整N值,即可在帧率和泼溅细节之间进行权衡。 Spark 2.0通过同时遍历多个LoD泼溅树实例,对该算法进行了进一步扩展。与仅从单一根节点开始遍历不同,针对每个3DGS物体,拓展后的算法会将其屏幕尺寸及泼溅节点 (dm0,Sm0) 一同加入初始优先队列,后续流程与原有逻辑保持一致,可在场景中所有3DGS物体上同步筛选需细化的细节层级。 这一设计让大规模组合世界的创建变得简单高效:只需在空间任意位置添加3DGS LoD物体,Spark 2.0便能自动计算出每帧需渲染的所有LoD泼溅的最优全局子集。
▲.RAD文件格式(来源:World Labs博客)
文件结构十分清晰:以RAD0文件头开头,随后依次为头部元数据长度、元数据JSON,以及一个或多个各含6.4万个泼溅的数据块。头部元数据记录了所有数据块的偏移地址与字节大小,支持任意顺序读取数据块内容。 单个数据块也采用相似结构:以RADC块头起始,接着是块元数据长度、元数据JSON,最后为该6.4万个泼溅的压缩数据。泼溅各项属性按列存储,可分别选用自定义编码方式。同类数据集中存放,再通过Gzip压缩,能获得出色的压缩率。 头部采用JSON编码,可通过版本字段与新增可选字段保障后续扩展。数据类型编码与压缩算法均以字符串名称在元数据中指定,方便后续扩展新类型。
▲虚拟内存(来源:World Labs博客)
数据块会按照LoD遍历顺序加载到空闲页面中;当页表占满,且新数据块优先级更高时,系统会按最近最少使用(LRU)策略淘汰旧数据。 Spark 2.0支持同时加载多个.RAD文件并共用同一张页表。对每个文件,系统会记录数据块到页表的映射,以及页表到对应文件与数据的反向映射。 在遍历多棵LoD泼溅树时,引擎会记录数据块与文件的访问顺序,形成全局统一的优先级排序,进而对场景中所有3DGS物体的泼溅加载与存储进行统一优化。