虚拟制片入门
想象一下,在拍摄《复仇者联盟》时,演员其实是站在一个绿幕前表演,但在摄影机的显示器中,我们却能实时看到角色置身于纽约街头或外星战场。这就是虚拟制片技术带来的魔力 - 它能让让虚拟与现实进行实时的无缝融合。
虚拟制片不仅仅是后期制作的工具,它是一种革命性的实时影视制作方式。本章节将用易懂的语言,为您揭开虚拟制片的技术面纱。
影视合成
在了解虚拟制片的概念前,理解传统的影视合成制作流程应该会对你很有帮助。
传统合成
在电影发展的早期,为了实现一些不可能的场景,摄影师们就开始尝试将多个画面组合在一起。演员在绿色背景前表演,后期制作人员可以轻松地将绿色部分"抠除",替换成其他画面。这就像是为真实拍摄的画面换上了一个新的背景,人物就像站在一个截然不同的场景里,而非绿幕当中。但受制于计算机图形还并未充分发展,替换上去的背景一般都是实拍或者手绘出来的。
当下合成的方法
随着计算机图形的进步,很多3D游戏中的场景都能做得非常逼真。在这个时候,使用计算机中的3D模型作为背景合成变成了可能。使用计算机虚拟背景的合成的原理可以被这样简化:即有一台真实的摄像机拍摄绿幕,绿幕当中有一个人在从左往右行走,摄像机就跟着它从左向右运动。 同时在虚拟的3D场景中也有一台"虚拟摄像机",它的运动要和真实摄像机保持完全一致。这样,当我们把绿幕抠掉后,用虚拟摄像机拍摄到的3D场景画面来替换,就能得到演员置身于虚拟场景中的画面。
不做摄像机跟踪会怎么样?
刚刚的例子里面,把现实摄像机的运动映射到虚拟摄像机的过程被称为“摄像机跟踪”,也就是跟踪真实摄像机的运动,让虚拟摄像机照着这个轨迹再运动一遍。那我再来举个例子,如果没有摄像机跟踪,会是怎么样的效果:演员依然从左向右走,真实的摄像机也从左向右运动。但是到了合成的时候,扣除了背景的画面里,虽然仍然能看得出来拍摄人物的摄像机实际上是在动的,但是但背后替换的虚拟场景却纹丝不动,就像一张静止的照片贴在后面,这就会产生明显的违和感。因为它违背了我们对真实世界的认知 —— 当我们移动视角时,远处的景物理应产生相应的视差变化。
所以,摄像机跟踪在虚拟背景的合成制作中非常重要。
理解六自由度(6DOF)跟踪
想象一下你手持一台摄像机,你会发现它能进行的移动可以分为两大类:
第一类是位置的变化,也就是常说的"平移":
左右移动(X轴):像横着走步一样的侧移
前后移动(Y轴):就像你向前走或向后退
上下移动(Z轴):比如蹲下或踮起脚尖
第二类是角度的变化,也就是"旋转":
俯仰(Pitch):像点头一样上下摆动
偏航(Yaw):像摇头一样左右转动
横滚(Roll):像歪头一样向两侧倾斜
这六种基本运动就构成了"六自由度"(Six Degrees of Freedom,简称6DOF)。
我们在上文中已经讲过了摄像机追踪在虚拟背景合成当中的必要性,那么在传统的后期流程中,要知晓真实摄像机的运动信息,主要依靠一种叫做"摄像机反求"(Camera Solve)的技术过程,你可能在AE或者Nuke中有见过。
首先,软件会在原始视频画面中寻找和跟踪"特征点"(Feature Points)。好的特征点通常是:
高对比度的点或者角点
在画面中容易识别的物体边缘
场景中固定不动的物体上的点
软件会自动跟踪这些点在每一帧中的2D坐标变化。 当获得足够多的特征点的2D运动轨迹后,软件会使用复杂的数学算法,计算出这些特征点在3D空间中的实际位置 ,最后再推算出摄像机相对于这些点的运动轨迹。
后期合成的局限
现现在你已经了解了后期合成的基本原理、摄像机跟踪的重要性,以及传统后期制作中通过特征点反求摄像机运动的方法。假设有位导演说"我想在绿幕拍摄完后立即看到加入虚拟场景的效果",让我们来分析一下在传统后期流程下这个要求有多么困难(这一部分你没听懂也没关系):
演员在绿幕前表演,摄像机跟随拍摄,并且摄像机也有运动。
摄影师把储存卡从摄像机里取出来,导出素材,交给后期人员。
后期团队将素材导入合成软件(如AE或Nuke),进行摄像机反求,获取运动数据 。
后期团队将真实相机的运动数据导入3D软件(如C4D、Maya等),三维软件里有一个虚拟场景,在其中重现摄像机运动,渲染虚拟场景画面。
将实拍画面和虚拟场景画面进行合成。
这样一套流程下来,半天就已经过去了。所以拍摄时不会真的像上面说的那样让后期立刻去做合成,而是在绿幕中拍完所有要做合成的镜头后,再统一进入后期制作阶段。
那这又会导致另一个问题,现场拍摄时候也不知道后期合成完成效果是怎么样的, 导演无法确定虚拟场景和真实表演的结合效果是否理想,摄影师也不能确定自己的运镜是否合适。如果发现问题,可能需要重新拍摄,这对于紧张的影视制作档期来说是很大的风险。
这些局限性正是推动虚拟制片技术发展的重要原因。那么,现代虚拟制片系统是如何解决这些问题的呢?我们接下来就详细探讨。
虚拟制片系统
而虚拟制片系统则通过实时跟踪和渲染技术彻底改变了这一现状。它不再需要繁琐的后期工作流程,而是能在拍摄现场即时呈现合成的效果。这种革命性的改变主要得益于以下几个技术突破:
实时摄像机跟踪系统,传统后期软件对真实摄像机的画面进行6DOF跟踪的效率非常低下,原因是软件需要从大量的视频帧中分析特征点的运动,这个过程不但耗时,而且容易出错,计算机要从二维的特征点运动推算出三维空间中的摄像机运动,这个数学计算本身就很复杂。而现代虚拟制片系统采用的专门跟踪硬件就不存在这些问题,我们以叙事工厂推出的StoryX CamTrack摄像机跟踪硬件为例,它采用了一个非常巧妙的设计:在拍摄用的主摄像机上,安装了一个额外的"观察者" - 一台配备特殊跟踪芯片的双目摄像头,它会在场景中主动寻找特征点。这个双目摄像头能够实时精确地知道自己在空间中的位置和朝向。由于它和主摄像机是绑在一起的,主摄像机移动时它也会跟着移动,就像一个细心的记录员,不停地向系统报告主摄像机的确切位置。而在现场光线复杂、有较大干扰时,能够采用不可见光的波段观察环境特征点,并使用加速度传感器辅助计算真实摄像机的位置。这种方案既快速又准确,完美解决了传统后期跟踪的各种问题。
摄像机性能的提升,4K、8K、12K……是不是听到这几年摄像机的厂商争相推出分辨率更高的摄影机,在分辨率提升的同时,大家很有可能忽视了相机能实时输出的分辨率也在提升,延迟也可以做到越来越低。很多消费级的相机带有一个HDMI2.1的接口,很多专业摄影机都带了SDI12K的接口,甚至是能通过一根网线来实时输出画面,这让很多相机能够实时输出高保真度、低延迟的视频信号。这个时候如果再给电脑配一个叫“采集卡”的硬件,就能把摄像机输出的视频信号实时捕获到电脑中。
实时渲染引擎的发展,随着计算机性能的提升,越来越多的3D游戏正在展现出惊人的画面质量。并且游戏本身就是要在用户键盘按键或者鼠标输入后,立刻就给出渲染结果给玩家看到的。传统的离线渲染器虽然能做出很棒的画面效果,但渲染速度太慢了。渲染一帧高质量的画面可能就要好几分钟,更不用说要实时输出25帧每秒的视频了。现代游戏引擎(比如虚幻引擎)则完全不同。它们采用了很多聪明的技术来平衡画面质量和运算速度,能够迅速、实时渲染出画面。
摄像机的跟踪信号能够是实时的、摄像机的画面信号也能是实时的,那如果游戏引擎也是实时的,那为什么不在游戏的渲染引擎当中运行虚拟场景,把真实摄像机的实时跟踪数据映射里面的虚拟摄像机上,然后再把实时渲染出的虚拟背景画面叠加到真实摄像机实时输出的视频信号上呢?恭喜你,你懂得了虚拟制片系统的底层奥秘。

基于这样的思想,使用绿幕+摄像机+实时摄像机跟踪系统+采集卡+渲染主机就组成了一套最基础的虚拟制片拍摄系统,当演员在绿幕布景中表演时,装有跟踪系统的摄影机会将其位置信息实时传输给渲染主机系统。导演通过监视器不仅能看到演员在绿幕中的实景画面,更能直接看到演员已经置身于虚拟场景中的最终效果。这种即时反馈让导演可以更好地把控画面效果,让灯光师能够根据虚拟场景调整实际灯光,也能帮助演员更准确地与虚拟环境互动。它还能帮助控制制作成本,因为许多原本需要实景搭建的场景现在都可以通过虚拟方式实现。
我是叙事工厂StoryX的严睿哲(各个平台的网名叫严格),一个摄影师、虚拟制片技术总监以及硬件工程师,希望与你分享更多虚拟制片相关的知识!


