视频通话中的实时 3D 虚拟背景
Voxal 的 3D 虚拟背景是由你的设备实时绘制、围绕你打光的动态场景,在直连通话中还可由对方设备重新绘制。了解其工作原理、测量结果与使用局限。

Voxal 的 3D 虚拟背景会用一个由你的设备实时绘制的场景取代你身后的房间,并通过打光和投影让场景与你融为一体,而不是一张静态图片。 在兼容的直连视频连接上,对方的设备可以自己绘制同一个场景,因此无需把合成好的背景当作视频发送。
下文将介绍:这项功能做了什么、如何工作、哪些已经测量过而哪些没有,以及在依赖它之前应该了解的局限。
认识 Voxal:没有负担的 push-to-talk
Voxal 是一款 push-to-talk(按键通话)应用,基于一个简单的理念:对话应该易于发起、跨平台可用,并避免不必要的基础设施。你无需账号即可创建或加入语音房间,网页版也无需安装。Voxal 还提供桌面端和移动端应用,支持噪声抑制、麦克风控制、免提模式、视频和屏幕共享。
打开一个房间,与朋友或同事一起加入,想说话时按住即可。喜欢免提?同样可以。
语音音频始终是点对点(peer-to-peer)的。Voxal 不会让你的语音经过媒体服务器。
视频和屏幕共享则是另一回事。它们可以使用直连,也可以在较大的房间中根据你的设置使用可选的视频中继。无论哪种方式,语音都保持点对点。
这种轻量的做法正是 Voxal 的有趣之处:它不想把每次对话都变成沉重的会议。而当你打开摄像头时,背景也不必再是被忽视的细节。
不只是一张图片的背景
大多数虚拟背景都遵循同一套做法:软件找出摄像头前的人,把人与房间分离,再与静态图片或视频合成。
Voxal 也支持这些常见选项。你可以保持摄像头原样、模糊背景,或选择自己的图片。
动画背景的工作方式不同。Voxal 不是播放预先渲染好的视频,而是构建一个三维场景,并在你的设备上实时渲染。场景由几何体、材质、光线和动画构成,而不是在你身后播放的一段影片。
Voxal 内置六个场景:
- Office: 十月清晨的哥本哈根建筑师工作室,低低的阳光透过高大的窗户洒入。
- Island: 潟湖上水上平房的阴凉露台,有青绿色的浅水和一棵倾斜的棕榈树。
- Cyber café: 里斯本一家由 90 年代网吧改成的浓缩咖啡吧,有彩绘瓷砖和老式终端。
- Mountain: 石灰岩尖峰下如镜的湖面,金黄的落叶松,远处水面笼罩着薄雾。
- Countryside: 六月傍晚托斯卡纳起伏山丘上的金色麦田。
- Neon rain: 夜晚港口城市上空的顶层公寓,玻璃上有雨水,地面如镜面般光亮。

每个场景都由你设备的图形硬件绘制。应用无需为此附带背景图片或视频。
这改变的不仅是外观。由于场景是生成的而不是回放的,它可以重新打光、可以带有你的影子,也可以对动作做出反应。在手机上,倾斜手机时场景会随之轻微转动。
背景会回应你
一个令人信服的虚拟空间不能只是好看,还应该让你觉得自己属于那里。
Voxal 的处理流程使用本地人像分割,把你从摄像头画面中分离出来,然后将你的轮廓与渲染好的 3D 场景合成。
它还会估算照在你身上的光线,并据此设置场景的曝光、色调和光照方向。目标是得到统一的画面:你和环境拥有相近的光照氛围,而不是像两个互不相干的图层。
你的轮廓还会在场景上投下柔和的阴影,帮助你感觉自己置身其中。
如果愿意,你也可以自己选择光照。选项包括固定的一天中的时段(早晨、正午、下午、傍晚或夜晚)、本地时钟,或你的屏幕主题。
带上你自己的世界
内置场景只是起点。在设置 → 视频 → 背景中,你可以添加:
- 360° 全景图。 任何等距柱状投影照片都可以,例如来自手机全景模式或 360° 相机的照片。你置身其中,拖动预览或转动手机时,画面会随之旋转。
- 3D 模型,格式为
.glb文件(glTF 的二进制形式),例如从 Blender 导出。Voxal 会使用模型自带的摄像机、灯光和动画。
自定义场景保存在你设备本地,不会上传到服务器,最多可保留 12 个。
巧妙之处:你的朋友可以渲染你的背景
在传统视频通话中,发送方发送的是成品画面:你、背景和其他所有内容合成在同一帧里。
对于内置场景,Voxal 提供了另一种选择。当 Let others draw my scene 开启,且有兼容的参与者与你直连时,对方收到的是以纯绿色底为背景的你,而不是成品画面。对方的设备会找到画面中的小角标,把你抠出来,并在你身后绘制对应的场景。
实际上,是两台设备各自独立地绘制了同一个世界。

该设置默认开启,你可以在设置 → 视频中关闭。只有当你选择了动画场景且有兼容的对端连接时,它才会生效。
为什么这很重要?对视频编码器来说,一片纯色比细节丰富的动画场景便宜得多。而且场景本身不必经过网络传输,因为它由几个数值构建而成:哪个场景、亮度多少、光从哪里来。
已测量的内容与未测量的内容
在受控的离线测试中(VP9、固定画质、1280 × 720、每秒 30 帧,使用移动的替身对象),内置场景上的合成画面约占 130–287 kb/s,而纯绿色底上的人物约占 96 kb/s。在相同画质下,比特数减少了 26–67%。
阅读这些数字时请牢记其局限:
- 它们来自使用替身对象的离线测试,而非实际通话。
- 真实通话并不以固定画质运行。其编码器会用掉所分配的全部码率上限。在实时通话中,好处是发送方的码率上限更低,而这一点尚未在真实通话中测量。
- 节省的幅度取决于场景、编码器、网络连接和相关设备。
此外,它能否生效也有条件限制:
- 它需要直连(点对点)视频连接(参见点对点是什么意思)。在默认路由下,这意味着两人房间。当视频经过中继(即 SFU)时,中继收到的始终是成品画面。
- 接收设备必须能够绘制该场景:需要 WebGL2、基于 Chromium 的引擎和硬件 GPU。如果做不到,发送方会继续发送常规的成品视频。
- 如果出现问题,例如头部遮住了角标,Voxal 同样会回退到常规视频。
- 它不适用于你自己的自定义场景,因为其他人没有你的文件。
我们不对与其他产品的带宽对比作任何声明,因为我们没有测量过任何其他产品。
为本地处理而设计
背景所需的图像处理都在你的设备上完成。一个小型机器学习模型通过 WebAssembly 在本地运行,在摄像头画面中找出你。背景在视频发送之前就已绘制并与你合成。不会有任何摄像头画面被发送到服务器来计算背景。
你的自定义全景图和 .glb 文件保存在设备的本地存储中,不会上传,也不会与其他设备共享。
你不必使用其中任何功能。当背景设为 None 时,Voxal 发送原始摄像头流,完全不运行背景处理流程。
有一点值得明确区分。语音音频始终保持点对点。摄像头视频有自己的路由选项,在较大的房间中可能经过可选的中继。中继在技术上可以看到它所转发的视频。本文描述的是这项功能的构建方式,并不是对绝对隐私的承诺,通话中的其他人仍然能看到你的视频。
面向开发者:场景是小型程序
内置场景是 Voxal 仓库中的一个小模块。场景必须是确定性的(由时间和带种子的随机函数驱动),这样另一台设备才能仅凭名称和几个数值重建出完全相同的世界。场景引擎文档说明了模块格式,自定义场景则介绍了你可以自行带来的文件。
对用户来说,这意味着有更多个性化通话的方式。对开发者来说,这意味着背景可以是一个小巧、可复现的程序,而不是一个庞大的媒体文件。
试试 Voxal
你可以使用简单的模糊、选择动画 3D 场景、上传图片、探索 360° 全景图,或试试你自己的 3D 模型。
虚拟背景不必是你身后的一张静态图片。它可以是由你的设备实时创建、打光并赋予动画的世界,而且在条件允许时,也是对方设备同样在创建的世界。
Voxal 以 MIT 许可证开源。功能和平台支持可能因设备和连接而异。

