把一间真实房间拍下来,再在屏幕里转过同一扇门,看见墙面的纹理、桌角的磨损和窗边的光,3D高斯泼溅确实能带来很强的临场感。问题常出现在演示结束以后:镜头能不能走到桌子背后?门口的重影能不能消掉?放进头显,会不会一移动就散开?
一段顺着采集路线播放的漂亮视频,只回答了部分问题。要把现实场景交付给用户,还得把“像”拆成几项:视角变化时是否稳定、空间尺度是否可信、目标设备是否跑得动,以及场景能否支持预定的交互。
图:室内空间采集工作流,AI生成示意图;不是论文或项目的实测照片。
它复刻的是视觉表现,不会自动得到完整实体
2023年Kerbl等人的3D Gaussian Splatting工作,用一组有位置、形状、透明度和颜色表示的三维高斯基元组织场景。基元投影到画面后进行混合,并根据多视角照片优化;训练过程中还调整基元密度,让表达能力集中在需要细节的地方。原论文展示了高质量的新视角实时渲染,但论文环境里的速度不是任意手机或头显的承诺。
这和给墙壁、椅子分别建立封闭网格不同。画面中的边缘可以由许多高斯共同形成,却不一定存在一张能直接拿来测量、碰撞或加工的表面。能看见桌面,不等于已经有适合物理引擎的桌面模型;能走进一段扫描场景,也不等于完成了建筑测绘。
项目立项时最好先写清交付目标。线上展陈可能更看重漫游画面;设备检修可能要求构件尺寸和识别;XR体验还要考虑安全边界、碰撞和坐标对齐。目标不同,采集和验收就不能沿用同一张清单。
最值钱的调整,往往发生在按下快门之前
以下以一间带桌椅、窗户和门洞的小型工作室为设计例子,不对应实际测试。先画出用户将要走的路线,再安排采集路线:如果用户会从门口绕到桌子侧后方,就必须让桌沿、椅背、门框同时出现在多个有位置差异的视角里。只围着房间中央转一圈,很容易把“镜头看到了”误当成“物体各侧都被看到了”。
采集时可分成一条主环线和若干局部补拍线。主环线保持相邻图像有连续重叠、相机有实际位移;补拍照顾门洞两侧、细腿家具、低处和遮挡背面。具体重叠量与拍摄密度应根据纹理、镜头和求解结果调整,不能把固定照片数量当作质量指标。
只在同一位置旋转相机,对方向观察有帮助,但缺少足够平移产生的视差时,三维深度约束会变弱。贴着同一平面一路平移、拍很多近乎相同的照片,也可能留下视角覆盖不足。拍摄路径应围绕预期观察区域组织,而不是围绕“凑够多少张”组织。
场景最好在这一轮采集中保持静态。人走动、门开关、屏幕换画面、窗帘随风摆动,都可能在不同照片里给出互相矛盾的证据。曝光、白平衡和焦距尽量稳定,先压住模糊与严重过曝;后续曝光补偿可以缓解部分差异,却不能把没有记录的细节恢复出来。涉及人物、屏幕信息或私人空间时,采集前就应处理授权与遮挡。
图:门框与家具形成多层遮挡,采集应覆盖预期观察路线。AI生成示意图。
先验相机,再验画面
常见流程会先用SfM求出相机姿态及稀疏结构,COLMAP是常用工具之一。它的官方教程把特征匹配、相机标定和多视角重建列在完整工作流中。对交付而言,求解结束后的第一件事不是立刻长时间训练,而是检查相机轨迹和重建组件。
主环线本来连通,却求出几个彼此分离的组件;一段相机位置突然跳到墙外;同一面墙出现两层稀疏结构——这些都值得回到照片检查。要区分照片未注册、匹配错误和纹理不足,不能只把训练轮数加倍。
同样,平均重投影误差低也不是“空间完全正确”的证明。重复纹理可能给出自洽但错误的匹配,大面积白墙可能缺约束。对尺寸有要求的任务,还需要可靠的尺度参考与独立检查;仅凭单目照片求解出的模型,一般不能直接当作有真实单位的测量成果。
比较稳妥的节奏是先做一次短训练和小范围漫游,发现断层就补采集、重求解。前端信息缺失,训练再久也不会自动知道椅子背面原本是什么样。
图:重建检查的概念场景,AI生成示意图;屏幕内容不构成真实算法结果或性能证据。
玻璃、亮面和细物体,是验收的好切口
镜面、玻璃和高光区域往往对视角更敏感。某一方向看起来很真实,换个方向却出现漂浮纹理或透明边缘,可能说明模型把一部分视角相关外观放在了不合适的空间位置。细椅腿、栏杆与植物叶片,则容易暴露遮挡、覆盖和渲染混合的问题。
碰到这些区域,应先问三件事:输入是否清楚、相机是否可靠、相应表面是否有足够视角覆盖。三项基本条件都成立以后,再讨论深度约束、基元增密和裁剪。删除一团漂浮基元,可能让视频好看一些,也可能删掉另一视角需要的细节,必须沿实际漫游路线复核。
官方参考实现后来加入了深度正则化、抗锯齿与曝光补偿等选项。使用这些能力时,要核对具体版本和输入要求。深度先验本身也可能有错误,增加约束并不自动等于获得测量精度;一组参数对这个房间有效,也不意味着换到玻璃展厅仍然有效。
留出视角,才能看见“记住照片”之外的问题
训练画面很漂亮,可能只是模型擅长解释已有相机位置。项目可以留出一部分具有实际位置差异的照片,不参与训练,再用这些视角检查重建。留出的镜头应覆盖门口、侧向位移和近距离观察;若只是从连续视频里每隔几帧抽一张,训练集和测试集仍可能太相似。
PSNR、SSIM等图像指标有助于比较版本,但不能替代路径检查。轻微的平均画质改善,未必解决门框重影;固定截图里的小缺陷,在双目观看或头部移动时可能更明显。建议同时保留三组证据:固定视角截图、实际漫游路径和目标设备性能记录。
验收路径可以很短,但要专挑问题区域:从门口侧移进入、贴近桌沿、绕过椅背、看向窗户,再沿原路返回。逐项记录是否出现空洞、重影、漂浮物、显著跳变与画面抖动。允许用户去哪里,采集和验收就应覆盖哪里;超出可靠重建区域的漫游,应在产品设计里设定边界。
端侧交付,预算不是一个“多少万点”
高斯数量影响文件与显存,但渲染成本还与屏幕覆盖、透明混合、排序、分辨率以及具体实现有关。许多尺寸很大、透明叠加严重的基元,可能比数量更多但投影较小的基元更吃力。因此只公布高斯数量,不能说明实际帧率。
给XR或网页端交付时,要在目标设备上测加载、峰值内存和漫游帧时间;XR还涉及双目渲染及其实现方式。桌面单目演示顺畅,不足以证明头显稳定。可以根据项目需要做裁剪、分块、压缩和层级细节,但每次减负都要沿同一组视角检查,避免把省下的资源换成用户眼前的洞。
如果场景需要角色行走、物品遮挡或虚实交互,视觉层和交互几何最好分别设计。高斯场景负责外观,另用经过检查的简化网格或碰撞体处理物理与边界,再把它们放到同一尺度、坐标系里。仅凭渲染深度生成一个碰撞面,也需要重新验证,尤其是透明物体附近。
图:目标XR设备验收场景。AI生成示意图,不代表实际重建画质或性能结果。
最终交付包除了模型,还应带上采集范围、可用漫游边界、尺度来源、目标设备、软件版本和已知缺陷。数据、代码与展示授权也分别核对:项目允许展示某个空间,不代表可以分发原始照片;能下载实现,不代表所有商业用途都自动获准。
高斯泼溅让现实外观进入实时三维的成本降低了,但它没有取消采集质量、几何约束和端侧预算。真正可用的复刻,是用户在允许的范围里换一个位置、靠近一件物体,场景仍站得住。这个判断比一段漂亮的飞行镜头更接近交付。
参考资料与范围
本文介绍静态多视角场景的工程方法;工作室、采集路径和验收步骤是本文整理的设计建议,不对应项目实测、帧率或客户案例。动态场景、精密测绘及复杂反射的专门方法不在本文范围。配图均为生成示意图。
创作说明:本文经AI辅助起草与资料核验,配图为AI生成示意图。