高斯溅射 vs 网格 vs 全景:室内漫游该选哪种

同一个用途——向别人展示一个 3D 室内空间——却被拿来比较三种格式, 而它们其实并不是在同一个维度上竞争。选错格式不只是画质上的取舍问题; 它可能意味着选中了一种在结构上就做不到你之后需要的事情的格式。
这三种格式各自究竟是什么
高斯溅射从一组照片中重建一个真实场景,把它表示为 3D 空间中数百万个
带颜色、边缘柔和的小点。用足够多互相重叠的房间照片来训练它,就能渲染出
原始照片集里没有的新视角,从任意邻近角度看都做到写实。常见的格式是
.ply 和 .splat,而 SuperSplat 是查看、裁剪
与清理训练完成后的溅射文件的标准开源工具。
网格是传统的 3D 几何结构——顶点、面片、材质,全部作为独立对象可寻址。 它是被搭建出来的,而不是被捕捉出来的:可以是人手建模,也可以是程序化生成, 或者由一套流程从平面图推断几何结构,再用目录家具填充进去。
全景是对一个已完成场景、从固定取景点拍摄或渲染出的等距柱状图像, 通过球面查看器交付,提供可漫游、可环视的体验——但它是场景的一个视图, 而不是场景本身。
捕捉成本
溅射需要对一个真实存在的空间进行实地拍摄——数十到数百张互相重叠的照片, 再经过一次训练来重建溅射场。它要求房间在物理上真实存在。如果网格是从 平面图搭建出来的,就完全不需要实地拍摄,但仍然需要几何结构被建模 或者被推断出来。全景的捕捉成本完全取决于它渲染或拍摄的是什么—— 如果是对一个已搭建网格场景的渲染,成本很低;如果是真实相机拍摄, 成本和溅射的实地拍摄相当。
文件大小与设备支持
一个单一房间训练出来的溅射场,常见大小从几十到几百兆字节不等—— 数百万个点累加起来体量不小——要流畅渲染它,得靠真实的 GPU 算力; 在性能受限的设备上播放会吃力。网格场景的大小完全取决于它的几何结构 与贴图预算,而现代实时引擎能在更广泛的设备范围内高效渲染它。 一张等距柱状全景图就只是一个图片文件——最多几兆字节——能在任何 可以显示 JPEG 的球面查看器中运行,几乎没有任何设备门槛。
可编辑性问题——而且差距不小
这正是对比不再只是取舍、而变成结构性差异的地方。一个溅射场是一种 被捕捉下来的外观:没有网格可以选中,没有材质可以替换,没有独立的 「沙发」物体可以移动,因为这种格式从一开始就没有把场景表示为独立对象—— 它表示的是从多个拍摄位置看到的光线样子。要求编辑一个溅射场景, 问的其实是另一种性质的问题,跟要求编辑一个网格完全不同; 网格从构建之初就保留的信息,在溅射里从来就不曾存在过。

网格场景是可以直接编辑的——移动一面墙、替换一种材质、重新摆放家具—— 因为它保留了溅射场按设计就会丢弃的那部分结构化信息。全景渲染继承了 底层场景本身具备的可编辑性:如果它是对一个可编辑网格的渲染视图, 修改网格再重新渲染很直接;如果它是一张拼接照片,就和溅射方案一样固定。
为什么一个可编辑几何结构工具会选择全景,而不是溅射
一个存在的目的就是要让人能够改动房间——移动家具、替换材质、 调整布局——的设计工具,必须把房间表示为可编辑几何结构,没有商量余地。 这就排除了把溅射作为主要格式来提供的可能,无论它画面多写实, 因为一个溅射场没法成为你要编辑的那个对象。但它仍然可以在交付环节 派上用场:一旦一个房间以网格形式被搭建正确、优化好风格,把它渲染成 等距柱状全景图,就能提供一个写实、可漫游的视图,而不需要观者 拥有足以承受几百兆字节溅射场的 GPU 余量,也不需要放弃编辑源场景 并重新渲染的能力。
这正是 Flur 流程的形状:通过「配置」与「3D 几何」搭建可编辑网格几何结构, 在其之上进行一次真实感优化,再以已发布的等距柱状全景漫游作为交付格式。 Flur 不会生成高斯溅射——这里介绍这种格式,只是如实说明它能解决 和不能解决什么问题,而不是说它是产品的能力之一。
到底该用哪一种
要为一个已存在、已建成的真实空间提供写实浏览体验:溅射是正确的工具, 没有别的方式能做到。要搭建或改动一个必须保持可编辑的房间:网格, 毫无悬念。要把一个完工的房间交付成任何设备上都能走进去看、 而不需要对方下载一个庞大捕捉文件的东西:全景。这三者不是同一条 质量阶梯上的不同级别——它们是对不同问题给出的不同答案,而这个领域里 最常见的失误,就是把「写实程度」当成唯一重要的维度, 在一个实际需要底层可编辑几何结构的场合选了溅射。
立即开始
想了解全景格式背后具体的投影数学与捕捉机制,可以参考 等距柱状全景捕捉详解。 想了解全景步骤在一次完整房间搭建中处于什么位置,可以参考 3D 模型搭建流程完整解析。