影视特效镜头跟踪技术精粹(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-23 19:12:10

点击下载

作者:李伟

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

影视特效镜头跟踪技术精粹(第2版)

影视特效镜头跟踪技术精粹(第2版)试读:

前言

CG技术传入我国至今也有十多年了,笔者一直使用的3ds Max软件也从第5版更新到了2014版,一路走来,笔者作为从业者见证着行业的蓬勃发展;同时作为学习者也深深感到自己以及这个行业都走到了一个十字路口。行业的细分和精细化已成为必然趋势,十项全能包打天下的高人将被更加专业化组合的团队所取代,一如今日的好莱坞。

作为从业多年的资深三维动画师,影视特效中的镜头跟踪技术一直是自己钻研的领域,处理的镜头不计其数,其中不乏非常棘手甚至跟踪失败的镜头。虽然运动匹配的技术远不如大片里粒子、流体、烟火等其他特效炫目,难度也不大,但却是特效领域最根基的东西之一。可惜在这个浮躁的社会里,这等重要的根基却往往被人忽略。许多网上论坛里不乏相关软件的使用教程,甚至中文的帮助手册也广为流传,非常感谢这些资源的制作人,我也从中受益良多。但是把手伸进海里不等于你就触到了海底。很容易想象出,那些依照教程跟踪完毕然后叫嚣真简单的人,在遇到质量不佳的情况时会如何地手足无措。

学习参考国外大师的跟踪技术,归总整理自己多年的跟踪经验,然后系统化地构建运动匹配的一套东西,让后来者能够一识庐山真面目,而不执迷于某个局部正是本书的初衷。引导读者从容地处理不同类型的镜头跟踪任务是本书最终的目的。

本书主要以boujou和PFTrack为例,分16章介绍了影视特效领域中的镜头跟踪内容。第1章和第2章讲述了运动匹配的工作体系,整体的工作流程以及静止镜头的透视匹配;第3章~第7章包含了对运动匹配程序原理的阐述,以及镜头跟踪的完整示范;第8章和第9章讲解了摄影机的相关属性以及如何进行前期拍摄的现场控制;第10章和第11章介绍了处理疑难镜头的技术并展示了5项实例;第12章和第13章介绍了PFTrack这款跟踪软件的主要特点以及立体跟踪的方法;第14章~第16章讲述了如何跟踪运动的物体以及跟踪数据在其他场合的应用。

本书内容丰富,结构清晰,技术参考性强,讲解由浅入深循序渐进,相关案例大多来自杭州时光坐标公司的现实项目,贴近实战。非常适合广大CG爱好者,尤其是想进入和正从事影视特效工作的初、中级读者阅读;对于具有运动匹配经验的业内人士,同样具有很高的参考价值。同样的主题,站在一个全新的角度,相信你会看到不一样的内容。

心有所得而不吝惜与人,士子本色也。今汇编成册留书于世,读者若能从中有所收获,幸甚幸甚。参与本书编写的,还有曹燕、方容、段炼、唐春丽、胡曙光、梅德忠、冉军、程荣、佘虎、肖渊、王军、魏露平和周肖。在此表示感谢。李伟2013.06.30第1章运动匹配概论1.1 什么是运动匹配

毫无疑问,如今是一个CG泛滥的时代。无论是好莱坞大片中征服了无数眼球而不露破绽的特效,还是电视剧里花样百出的场景,甚至是每天电视里重复播出的令人厌烦的广告,你都能看到CG元素被合成到画面中的例子(如图1.1.1所示)。

对此,你可能会赞叹其中模型师精细的建模工作,贴图师逼真的纹理绘制,动画师流畅的动作设定等,但是你是否意识到了,能让这些CG元素骗过你的眼睛,相信它真的存在于所营造的镜头里,其实首先应该归功于运动匹配师完美的运动匹配(Matchmoving)。任何一个需要被放置到实拍镜头中的CG元素,都必须进行运动匹配,并且优秀的运动匹配结果将是整个视效生产线得以正常运行的基础。图1.1.1 CG元素在影视中的应用

那么什么是运动匹配呢?运动匹配也叫摄影机轨迹反求或镜头跟踪,是将CG元素的运动与实拍素材画面的运动相匹配的过程。为了更好地解释这一点,让我们先考虑一个最简单的视效合成情景。

如图1.1.2所示,这是一个平移的镜头。摄影机向左移动,相应的画面中的桌子则向右移动。现在我需要在桌子上的圆圈处放个CG的茶壶,在没有外力作用的情况下茶壶是应该静止于桌面上的,那么通过镜头的画面上来看,这个CG的茶壶应该随着桌子一起向画面右侧移动。想象一下,如果这个茶壶没有动,或是运动的速度与桌子在画面中移动的速度不一致,你会看到什么?一只无形的上帝之手拨动杯子在桌面上乱窜,显然这不是我们想要的。图1.1.2 CG的茶壶如何匹配画面中运动的桌子?

要解决这个问题有两个办法:一种是预先设定好摄影机的运动路径,并以数字化的方式将路径导入三维软件,这样三维软件中的摄影机将直接继承现实中摄影机的运动信息,从而获得CG杯子的匹配动画。这种解决方式称为运动控制(Motion Control)。运动控制技术能获得高精度的摄影机路径,但是对摄影机进行精确操控的电子机械设备成本高昂,且设备体积较大,对场地要求较高。摄影机运动控制技术在国外被广泛应用到电影电视中,但国内受成本限制,应用范围有限(如图1.1.3所示)。图1.1.3 使用Motion Control进行精确拍摄

另一种是直接进行拍摄,然后使用运动匹配软件采集画面的运动元素,反向求解出摄影机的运动路径和场景特征,然后将其导入三维软件,从而完成匹配工作(如图1.1.4所示)。这种解决方式称为运动匹配(Matchmoving)。运动匹配技术会依据镜头画面的不同而呈现不同的工作状态,受画面因素限制较大,但技术简单易行,成本较低,而且不受地形限制,因而在影视行业得以普及应用。实际上国内目前大部分的视效镜头都是采用运动匹配的方法进行CG元素与实拍镜头的合成。图1.1.4 使用Matchmoving解算摄影机运动1.2 一次典型的运动匹配

一次典型的运动匹配,包括对摄影机运动的解算和环境特征的再现两个部分。解算出摄影机的运动,可以使CG元素与画面的运动相匹配;而重建3D环境特征则有助于将CG元素放置到场景中合适的位置。静帧的透视匹配,使用独立的运动匹配软件对运动的镜头进行解算都属于此类。

为了更好的解释运动匹配的内容,我先引入一个代表性的例子。如图1.2.1所示,这是电视剧《大工匠》中的一个视效镜头。导演需要一个冬日大雪的场景,但是因为拍摄时间的限制,不可能无限期地等待下雪的日子,人工造雪也有难度,因此决定用电脑特效来制作这个下雪的环境。图1.2.1 等待添加雪景特效的电视剧镜头

在拍摄那天,导演根据剧情需要,决定如何拍摄这个镜头,当然也包括摄影机的位置和运动方式。导演和摄影师会先操作摄影机运动几次,并观看视频的回放来察看拍摄的结果。然后当他们正式开拍的时候,两名演员在一个大水泥筒内相依而睡,水泥筒被吊车吊起,摄影机的焦点跟随水泥筒而动。一旦导演对拍摄的镜头满意了,摄影机拍摄的素材会被采集出来,然后交给视效公司来添加环境中的雪景。

当视效公司接到数字化的镜头素材,他们开始讨论这个场景需要添加哪些CG元素。讨论的结果是将其分为三部分:一个动画师来制作水泥筒两端的三维积雪,一名技术导演来做天空满天飞舞的飘雪特效,最后一名合成师来制作整个场景遍布的雪霜。当然,他们也需要一个运动匹配师来对这个镜头进行运动匹配。

视效艺术家的目标是使他们的3D元素像摄影机记录的场景一样真实。动画师需要让三维积雪的形态与水泥筒的外形完美匹配,技术导演需要让天空的飞雪像真的一样。运动匹配师需要解算出场景被摄影机记录下来的时候,摄影机的位置在哪儿,以及它是如何运动的。

这里运动匹配师扮演了一个重要的角色,因为要使积雪、飞雪跟场景真实地匹配起来,他就必须确保CG物体被CG摄影机所“拍摄”的方式跟真实摄影机拍摄场景的方式一致。想象一下,如果水泥筒边缘部分的CG积雪跟水泥筒的运动有丝毫差异,任何人都会知道这是假的。

理想的情况下,特效镜头的拍摄过程中,特效公司会派出视效总监参与布景,并测量场景中关键的参数。例如摄影机的镜头焦距、离地高度、摄影机与水泥筒的距离、水泥筒的直径等,并绘制一张粗略的布景图,记录下可能会用到的道具和灯光的位置。

一般而言,动画师、技术导演和运动匹配师是同时开始工作的。因为拍摄时已经测量过一些数据,动画师知道水泥筒的直径,可以配合画面开始水泥筒和积雪的建模和材质调试工作,技术导演知道整个场景的大小,可以测试飘雪的粒子特效。这些前期的工作彼此之间相对孤立,使得一个团队可以有效地利用时间和人员。

在这期间,运动匹配师首先要检视素材,思考这段镜头里摄影机是如何运动的。他会将素材导入运动匹配软件,并开始跟踪场景中的2D特征点,看那些点如何在屏幕上运动。2D跟踪通常需要场景中包含可识别的静止的物体(例如建筑物的边角,规则的图案等),然后随着镜头画面的更替,软件会自动跟踪这些特征。

一旦运动匹配师跟踪完一些2D特征点,软件会对这些跟踪点进行分析,然后计算出摄影机与场景中其他元素的相对位置。最后,运动匹配师会输出一个场景到三维软件中,这个场景将包含一个动画的摄影机以及被他跟踪出来的所有特征点的3D位置。

经过必要的测试后,如果运动匹配师对跟踪的结果感到满意,他会将动画师制作的水泥筒和积雪的模型导入这个包含摄影机动画的场景,并依据跟踪出来的特征点合理地放置水泥筒模型的位置。如果所有的工作都得以完美进行的话,播放动画,在摄影机视图里,他将看到CG积雪以正确的透视和比例跟随画面中的水泥筒一起运动。

最后,他需要保存这个匹配好摄影机的场景。动画师和技术导演将调用这个场景来完成自己更细致的工作。动画师会在匹配好的积雪上进行更深入的雕塑,技术导演会依据摄影机和水泥筒的位置控制自己的粒子运动。最后他们会使用这个摄影机来渲染动画(如图1.2.2所示)。合成师会将所有这些元素结合在一起,经过调色加工得到最后的成片。

需要说明的是,在分工极度细化的好莱坞,设有运动匹配师(Matchmover)一职来专门负责3D运动匹配,并将匹配好的场景提交给生产流程上的其他人。国内的影视公司目前分工没有那么细,一般由接手镜头的三维动画师直接完成该镜头的运动匹配。但是为了方便叙述,本书中依然使用“运动匹配师”来代表完成运动匹配的人。图1.2.2 完成运动匹配并渲染出来的积雪和飘雪的画面。当镜头播放的时候,CG的积雪、飘雪的透视和运动关系应该与拍摄的原始素材一致1.3 运动匹配的工作体系

在介绍运动匹配工作的流程之前,我想先简单讨论一下现实中的摄影机是如何工作的,因为摄影机是三维世界和二维图像的桥梁,它也是运动匹配工作的核心。现实中,当摄影机开拍之后,它基本上就只做一件事:捕捉三维世界的视觉信息并记录到二维的图像上。不妨想象一下那一瞬间究竟发生了什么。

来自场景的光线通过摄影机镜头被聚焦到胶片上,胶片曝光记录下光照信息,然后快门关闭,曝光后的胶片被更换、重置,然后快门再次打开,整个过程重复进行。对数码摄影机而言,胶片被CCD(Charge-Coupled Device)所替代,它电子化地捕捉光线信息,然后以数字形式存储到各种存储设备中。

3D动画程序中的摄影机都是基于真实摄影机的,它是真实摄影机在光学和结构方面完美的数学化模型。跟真实的摄影机一样,它们有焦距和压片背(film back——胶片摄影机中用于限制胶片上感光范围的装置)。但是它们只是简单地获取它们所在的、人造的、计算机生成的环境信息,而不是获取真实世界的光线。

无论你如何处理曝光的胶片或是进行3D渲染,最终的图像都是一个投影。这就是说,三维的场景被变平为此场景的二维表现中。我们是如此习惯于这些变平的图像,以至于我们很难注意到它们,但是每次我们看电视或电影的时候,我们实际上都是在观看一个三维场景的平面记录(如图1.3.1所示)。

如果说摄影机的作用是采集三维的世界,制作二维的图像,那么一名运动匹配师的工作则恰恰相反。运动匹配师必须采集一系列二维的图像,并创建一个三维的世界。这两者之间的桥梁就是摄影机。如果关于摄影机的信息能被重建,那么就有可能指出在拍摄时的3D环境是怎样的。这些有关3D环境和摄影机的信息就是运动匹配师最终要提交给动画师进行工作的东西。图1.3.1 当一个摄影机捕捉到一张三维世界的图像,它实际上捕捉的是来自这个场景而被投影到摄影机图像平面的光线

尽管有很多不同的方法来完成每项任务,但对每个镜头而言,一名运动匹配师的工作流程几乎都是相同的(如图1.3.2所示)。这张图展示了一个完整的运动匹配工作体系。

一般来说,运动匹配工作是从分析素材开始的。这是整个流程中最重要的一步,虽然并不会花费多少时间,但分析的结果会直接影响你采用何种工具来完成这项工作。对镜头进行仔细的观察能帮你做出正确的决定,避免意想不到的问题,并估计花费的时间。尤其最后一项,考虑到运动匹配工作对整个生产线的影响,控制合理的耗费时间对于保证整个项目的进度有重要意义。

对素材的分析过程并没有很明确的约束步骤,因为确定运动匹配的难度涉及多方面的因素,往往只能依靠经验来判断。虽然经验并不总是正确的,但有些共性的问题是需要被考虑的,这包括:

• 摄影机是否运动了?如果是,那么它是如何运动的?运动得有多快?时长多少?

• 素材是什么格式?是电影镜头、高清、标清?画面是否被压缩?颗粒和噪点的程度怎样?

• 需要在镜头中放置什么元素?对匹配的精确性要求如何?

• 使用运动匹配结果的是谁?他们将如何使用?

当然,这些仅仅是一些皮毛,但是你考虑的问题越多,你就越清楚自己需要做什么。当你对接手的镜头做出了大致的评估之后,接下来需要汇总所收集到的数据,为接下来的解算摄影机做准备。图1.3.2 运动匹配工作体系图。运动匹配师收集来自不同渠道的数据,根据镜头的需要,使用这些信息来解算并设置场景,然后提交一个匹配好摄影机的场景

解算摄影机的过程几乎就是从摄影机无数种可能的运动中挑选可能符合画面要求的那一种。显然,拥有的信息越多,越容易确定哪种运动趋势是你想要的。实际操作中你能收集到的数据并不总是齐全,有时除了手头上的镜头画面什么都没有,也有可能某人参与了现场拍摄,并详细地记录了所有摄影机的信息,实地测量场景的概况,从而提供给你丰富的参考资料,而大多数时候都介于这两者之间。不过,庆幸的是现在运动匹配技术已经相当完善了,即便数据很少,也能支持你进行解算,并且解算的结果至少是可用的。下面列出了一些最有用的数据:

• 摄影机信息,例如焦距、孔径和胶片类型。

• 现场环境信息,包括摄影机高度,物体离摄影机中心的距离,以及镜头中出现的场景中各种不同物体的测量数据。

当一切准备就绪之后,运动匹配师要开始解算摄影机的所有内部和外部属性。虽然有很多方法来做这件事,但是不断的尝试、反复的校正是贯穿始终的。总的来说,解算摄影机有两种方式:人工模拟和运动匹配程序自动解算。

在运动匹配程序出现之前,所有的运动匹配工作都是需要人工模拟的。用这种方式来跟踪一个序列帧需要对摄影机的位置进行推测,然后反复修正直到完成匹配。人工模拟来解算一个摄影机不是一件容易的事,极其耗时,并且整个过程枯燥无比,无非是进行熟练地猜想摄影机的信息,然后依据画面调整摄影机系统,直到完成跟踪。虽然运动匹配程序出现之后,大多数时候都不需要进行人工模拟,但对那些运动匹配程序无法解算的镜头,人工模拟依旧是唯一的选择。例如:静帧或者说静止镜头,强烈运动模糊的镜头,严重不规则抖动的镜头,以及物体间运动关系复杂的镜头,等等。

随着计算机技术的发展,跟踪软件出现了,这使得运动匹配师通过使用一种被称为照相测量法(photogrammetry)的尖端技术,在某种程度上能自动地跟踪摄影机。这些软件基本上都有一个相似的流程。首先,图像中诸如场景的边角,或是十字标记(一般在蓝屏素材中被用来标明墙壁上的点)这样的特征在2D的图像中运动时被“追踪”。然后程序通过在数学上分析这些2D追踪的标记的运动,对摄影机进行解算。这些软件包通常会生成一个动画的摄影机和3D标记,它们反映了那些在2D中被追踪的特征点在三维空间中的位置。通常运动匹配师使用这种方式最多,因为它是完成运动匹配的最容易的方法。

还有一些方法来自人工模拟和自动跟踪技术的衍生。有时根据工作流程的不同,还有一些个性化的解决方案。例如,从运动匹配软件解算出来的2D跟踪信息可以通过使用自定义的脚本,被运动匹配师用来解算镜头的平移。

尽管摄影机是运动匹配工作里最主要的考虑因素,但是解算出摄影机只是完成了运动匹配流程的一半。运动匹配师不仅要考虑关于摄影机的所有因素,他们还必须重建实拍素材中环境的三维特征,匹配环境,以便为接下来动画师或技术导演等人员的工作提供位置参考。

图1.3.3所示的4张图展示了这个工作的意义,运动匹配不仅仅是解算摄影机,也不仅仅是重建环境,还需要给出这两者间的关系。图1.3.3 这些图像说明了正确解算摄影机和正确放置场景间的关系

在实际工作中最容易犯的毛病是第二种,如果你把第二张匹配图和第四张比较,可能看不出什么大区别,但是在摄影机参数错误的时候,要强行在摄影机视图中匹配,往往需要破坏模型应有的形态。如图1.3.4所示,你可以看到在摄影机视图中看上去完美匹配的建筑,在三维空间中的样子。左图与图1.3.3中的第二张图片对应,因为摄影机错误,所以破坏了房子的结构来匹配画面。右图与图1.3.3中的第四张图片对应,显示的是正确匹配后建筑的形态,你可以看出,它是一个完美的立方体。图1.3.4 摄影机错误,若强行在摄影机视图中匹配建筑,结构上肯定不正确

运动匹配师具体要重建多少环境,这取决于镜头的需要。如果只是一个简单的角色走路,动画师也许仅仅需要一个简单的地平面,另外一些场景也许需要粗略的几何体来投射阴影。而在有些时候,例如对环境进行数字扩展,运动匹配师可能需要解算出一个非常精确的摄影机,构造细节化的几何体,并摆放好位置。因此在开始一次运动匹配之前,最好先确定什么类型的3D物体将被放入场景,以及它需要被正确地放置于何处(如图1.3.5所示)。图1.3.5 运动匹配师建立的虚拟地面

3D环境有多种来源。通常运动匹配师自己创建粗略的几何体,或者被提供一个布景来匹配镜头中的环境。有时运动匹配师也会先提供一个粗略的环境模型,然后由专门的模型师在此基础上创建细节化的东西。运动匹配师使用他们在进行运动匹配过程中解算出来的3D标记来获得关于场景立体空间关系的信息。但是,不管这些信息来自哪里,建立大致的环境并设置场景匹配通常是运动匹配师的职责,这样在生产线流程下游的艺术家就不必为此而担心。

一旦运动匹配解算完成,我们需要对其精准性进行测试。一个糟糕的运动匹配通常会导致实拍素材与CG元素之间出现明显的分离。例如,CG元素看上去是在跟着实拍场景一起移动和旋转,但是它突然朝其他的位置移动了,或是缓慢偏移了所期望的位置。测试运动匹配需要将3D物体合成到图片序列中,然后随着序列的播放来检查是否有异常的运动趋势或抖动。

大多数时候,运动匹配师会将一个低模物体,或者说代理物体放置到场景中,帮助他们检测运动匹配的质量。检查一个物体是否有滑动的一种最好的方法是给这个物体指定一个棋盘格纹理,并将其不透明度降到一般,然后将其渲染出来,这将有助于显现3D空间的滑动(如图1.3.6所示)。图1.3.6 使用半透明的棋盘格纹理测试地面匹配

由于运动匹配的结果会对生产线下游的艺术家的工作产生直接影响,因此在提交场景前必须进行彻底的检测,确保匹配的结果正确无误。否则,一个糟糕的运动匹配进入下游的工作流程,最终会导致整个流程的失败,在项目时间紧凑的影视行业,这种错误会带来极大的工作压力。

当测试通过,匹配好的场景就可以交付给生产线下游的艺术家了。当然有些细节问题还需要处理,例如:

• 场景的轴向,单位,比例(3ds Max的坐标系是z轴向上,Maya是y轴向上)。

• 场景中需要包含哪些物体,如环境、角色等。进行场景匹配时,往往会导入解算出来的参考点,这些数量巨大的参考点在匹配完场景后,一般都需要删掉,或保留关键的一小部分。用于测试匹配的物体和纹理,也需要合理处理。

• 物体的命名习惯,保存格式。

一个有着良好组织结构和清晰的层次关系的场景会使其他人的工作更容易,这也让你不大需要向其他人去解释场景的构成。1.4 运动匹配在视效生产线上的定位

在生产社会化的今天,影视行业跟其他行业一样,分工细化,各个部门相互协作完成任务。那么运动匹配在整个视效生产线上究竟充当了什么角色,又是如何与其他部门协调工作的呢?

图1.4.1展示了一个相当典型的视效生产线流程,注意运动匹配是怎样与其他部门配合的。运动匹配师获取全分辨率的原始素材,解算运动匹配,然后提交3D场景给动画师或技术导演,这是最主要的一个分支。当然如果需要的话,运动匹配数据也会提交给其他部门,如绘画或合成。图1.4.1 视效生产线上运动匹配师需要与其他部门紧密合作第2章匹配静止的镜头2.1 教程:静帧透视匹配

现在你应该知道了运动匹配是如何在一个项目中进行的,接下来我们将实际地处理一个镜头。在这个教程里,你要创建一个简单的运动匹配场景,并解决许多CG艺术家曾经面临过的一个问题:透视匹配。

也许运动匹配最简单的形式就是匹配一张静帧(或者是固定镜头)的透视了。通常,这被用在那些充当背景的3D元素上。因为摄影机没有运动,所以需要做的就是配置摄影机与物体的相对位置,让模型的透视看起来正确无误。即使如此,不断的尝试和匹配物体也会是让人倍感挫折的。通常我们需要尽可能地获取一些必要的信息,以便快速而准确地完成匹配的工作。这些信息包括:

• 用来拍摄固定镜头的摄影机的焦距。

• 当画面被拍摄时摄影机的高度。

• 在真实场景中,从摄影机到物体的距离。

• 场景中物体的大小。

在理想的状态下,拍摄镜头的人应该提供以上所有这些信息,但是在大多数时候,这只能是妄想了。在这个教程中,你需要名为perspective.jpg这张图片,它位于光盘目录下tutorial_files\Chapter_02\sceneassets\images子目录里(如图2.1.1所示)。考虑到这个教程的目的,我们假设一个最糟糕的情况:没有任何关于拍摄这张图像的摄影机和环境的信息。处理这种情况的最好的方式是系统性地逼近问题。通过仔细地评估并构建一个跟真实世界场景相似的3D场景,我们就可以在解算中不断进行校正,最终获得一个理想的匹配结果。图2.1.1 我们需要创建一个摄影机,这样3D物体可以被放置到马路上2.1.1 收集场景数据

现在先让我们仔细看看这张图像,我们需要为动画师提供一个与之匹配的摄影机和场景,想想我们能从中获取哪些信息。(1)焦距。

单靠这一张图像很难指出摄影机的焦距是多少。对于一张静帧而言,摄影机的焦距并不需要非常准确,只要能估计出大致的范围即可,广角(焦距小于35mm)?长焦(焦距大于50mm)?还是一般的正常焦距(焦距在35-50mm)?对此,有两个方面的内容可以帮助你进行判断:镜头畸变和景别。

镜头畸变是光线在进入镜头时,由于镜片厚度的差异,由边缘进入的光线向内发生扭曲的现象(如图2.1.2所示)。镜头的焦距越小,镜片中心和边缘的厚度差异越大,镜头畸变就越严重。所以广角镜头一般都有较明显的镜头畸变,相对的长焦镜头几乎看不出有镜头畸变,但长焦镜头的画面会有很强的距离压缩感。图2.1.2 广角畸变的图像,尤其是画面的边缘,你可以看到右侧的树已经完全弯过来了

镜头的焦距不同,在同一个地点所能纳入的影像范围也不一样。导演根据剧情需要,选用不同的镜头来表现不同的画面。广角镜的成像范围广,多用于表现全景,强调场景的宏大、开阔。正常焦距的画面跟人眼的视觉范围相近,一般用在中近景,用于事件的陈述。而长焦镜多用于特写镜头,尤其是场景限制,无法近距离拍摄的情况。

就本例而言,看不出有明显的镜头畸变,景别为中近景,因此我们先猜测镜头焦距为标准的35mm,然后看情况再进行调整。(2)测量数据。

本例中我们得不到任何测量数据,但是有一些生活常识可供参考。这是一个仰视的镜头,考虑到电线杆上广告牌的一般高度,这个镜头很可能是一个人站在地面上拍摄的。也就是说摄影机的离地高度不应该超过2m。(3)地平线的位置。

大多数的图像都反映出了地平线的位置,从透视学上说就是水平点所在的线。从地平线的位置上,我们能得到摄影机的一个很重要的信息:它在x、y轴向上的旋转属性。摄影机沿x轴旋转,画面会有仰俯变化,即地平线在画面中的升降;摄影机沿y轴旋转,画面会有倾斜变化,即地平线在画面中左右倾斜,考虑到视觉的稳定性,一般地平线都是水平的。本例中很明显地平线几乎位于画面中央,那么摄影机应该是平视(如图2.1.3所示)。图2.1.3 依据物体透视线的交点,找出地平线的位置(4)距离。

关于建筑离摄影机的距离和建筑自身的比例数据,我们都没有。如果能获得这些建筑的蓝图或是模型,那么我们可以做一些实际测量。当然现在只能做一些大致的估计了。2.1.2 设置摄像机

对于运动匹配的工作而言,整个过程并不是线性的。通常这是一个跳跃式的进程,我们先做一些工作获取一个粗略的结果,然后基于一些确定的事实来处理细节,并逐步完善它,直到我们让匹配的工作达到所需的精度。这是一般的工作流程,下面我们将通过一些步骤来实现建筑和道路的透视匹配。(1)评估场景。

因为我们要处理的是一个固定镜头,所以关键是匹配图像的透视,并指出建筑和道路的相对位置。现在假设我们需要在右侧前景马路的空地上停上一辆车,并在路面留下阴影。要做到这一点,我们需要知道摄影机的位置和马路的位置。(2)建立一个摄影机,并使用这张静帧作为背景图像。

首先我们需要一个自由摄影机来开始工作(注意不是目标摄影机)。因为最终的目的是让物体和镜头对齐,我们将需要设置摄影机或环境,这样当我们从摄影机来观察时,图像将出现在3D物体背后作为背景。打开3ds Max2009,设置好项目文件夹的位置,然后按“Alt+B”调出背景设置窗口,将perspective_match.jpg设置为背景图像。然后按“F10”,在渲染设置窗口中将分辨率设置为720×576,然后在原点建立一个Free Camera自由摄影机,并将系统单位设置为“米”。你也可以打开配套光盘目录tutorial_files\Chapter_02\scenes下的pespective_match_start.max文件(如图2.1.4所示)。图2.1.4 透视匹配的max文件

你会看到一个标准的35mm摄影机,位置在原点上,摄影机背景已经设置好了。

提示:3ds Max2009具有项目管理能力,这样能保证文件所关联的贴图、视频等处在正确的位置。请在开始制作前,在3ds Max2009中将项目文件夹设置到tutorial_files目录下相应的章节目录上。例如,现在你需要使用第一章的max文件,先将项目文件夹设置为tutorial_files\Chapter_02(如图2.1.5所示)。图2.1.5 设置项目文件夹(3)估计摄影机的焦距。

我们在进行摄影机设置时需要知道的主要的两件事就是焦距和光圈。正如之前所言,我们不知道这个镜头的确切数值,因此我们需要去猜。作为起点,我先假定这个是35mm的镜头。(4)估计胶片背板(fi lm back)。

本例中,我不知道胶片背板的具体值,如果你知道摄影机的品牌型号,可以在网上搜索这些值。如果你不知道胶片背板,你最好设置成标准值0.980″×0.735″或是使用你的动画软件的默认值。因为这些值比较复杂,所以我将在第6章中解释,而现在我们使用这个值来进行工作。(5)设置摄影机的高度。

之前已经提到,这是我们最能够推定的值。我们给这个摄影机假定一个平均高度,大约离地1.75m,因此我们把摄影机放置到z轴1.75m的地方。(6)设置摄影机的仰角。

我们之前已经找出了地平线的位置,现在我们要设置摄影机在x轴上的旋转角度,以便匹配地平线的位置。在3ds Max中选中摄影机,在命令面板的摄影机属性中,勾选“Show Horizon(显示水平线)”。在摄影机视图中,你应该能看到一条黑色的水平线(如图2.1.6所示)。如果你没有看到这条黑线,那么请检查你的摄影机,它的位置应该处于水平面以上,即z坐标大于0,另外看看它的x轴的旋转值,是否是俯仰过头了。然后,调整摄影机旋转属性的x值,使图中的黑线与我们之前找到的地平线的位置对齐。本例中,摄影机旋转属性的x值约为89.7。图2.1.6 设置摄影机,显示水平线2.1.3 添加环境几何体

现在我们已经有一个设置过的摄影机了,我们需要开始将几何体充实到场景中。当动画师准备好要将汽车放到马路上时,他们将需要知道这条道路究竟在哪儿。测定场景中物体位置的这个任务就落到运动匹配师肩上了。这个几何体需要精确地与图像匹配,这样任何被添加到场景中的附加物体能出现在正确的位置上。你通常不必为整个场景构建模型,只需要创建那些会与CG物体直接交互的东西,以便动画师能进行对位,如本例中的路面。

为场景创建几何体与之前的摄影机设置是相互关联的,因为物体在画面中的表现跟这两个因素都有关系。所以你需要不断调整摄影机和几何体,直到它们都被校正到正确的位置。不过一旦你建好了一两个物体,那么要创建剩下的物体将变得非常容易,因为你已经构建起了基本的空间关系。同样的,一旦你建好了物体,你会发现此时要找到摄影机的准确位置会容易得多。(1)创建一个道路和建筑。

从这里开始事情变得复杂了,因为我们获取的信息非常少。我们需要观察环境,通过识别日常物体的大小来估计建筑的大小。每层楼大概有4m高,总共有6层,这样整个楼高应该在24m左右,宽度约16m。同样,我试着使用视觉上的线索来估计道路的宽度,这是一个8车道的主干道,每条车道约4m宽,这样整个路面应该有32m宽。

在3ds Max中新建一个plane(平面),命名为road,用于模拟路面,属性如图2.1.7所示。参考背景图片,将其空间位置设置为(21,55,0)。

然后新建一个box(方块),命名为building,模拟深黄色的建筑,属性如图2.1.8所示。图2.1.7 平面属性图2.1.8 box属性(2)移动建筑到一个大致的距离。

这可能是最难估计的值了。没有太多的线索来了解拍摄者离建筑有多远,因此我需要猜测一下这段距离会是多少。不过有了道路作参考,先将建筑的模型移动到道路的另一侧,空间位置为(52,92,0),这样基本的布局就出来了(如图2.1.9所示)。图2.1.9 初始场景布局(3)调整摄影机角度,使物体的转角与图像中建筑的转角对齐。

现在我们的摄影机只是进行了粗略的设置,我们可以开始对齐物体的工作了。比起不断随机尝试一次匹配好整个物体,先试着将模型上的一个点对齐并锁定到图片的特征上要容易得多。这将在3D场景和2D场景之间创建一个共同点,并获得一个基础来构建更好的匹配(如图2.1.10所示)。图2.1.10 调整摄影机的位置和z轴旋转值,让方块的一角与建筑重合

如果物体的透视和比例不对,请不要担心,现在只需要关注3D建筑的一角,让它和图像中建筑的一角对齐。这里的意图是在CG物体和真实世界场景之间找一个共同点。如果我们能对每个角都正确地对齐,那么我们就能以此为基础来对齐剩下的场景。现在我们假定摄影机的高度和距离是正确的,因此我们不想移动模型。本例中,我简单地旋转了下摄影机,并调整摄影机在水平面上的位置,直到右上角的点与图像排列在一起。2.1.4 创建摄影机系统

现在我们要在3D软件中创建摄影机系统(camera rig)。一个摄影机系统在概念上,跟现实生活中的摄影机系统类似,例如吊杆、悬臂之类的。它能在场景中更方便地移动摄影机。这些系统究竟如何构建,在不同的软件里各不一样,但是它们通常都包含一个或多个虚拟物体(或简单的非渲染物体),以及与之成组(grouping)或父子链接的摄影机,这样摄影机可以围绕不同的轴点进行移动。

本例中,我们已经将CG建筑与图像中大楼的一角对齐了,因此在这两者间建立了联系。我们希望在保持这个对齐的状态下移动摄影机,所以我们将创建一个摄影机系统来实现这一点。下面是创建并放置摄影机系统的具体步骤。(1)为这个系统创建一个父物体。

在场景中创建一个Point帮助物体,并将其命名为CameraRigs。使用捕捉,将point放置到我们在之前章节排列好的3D建筑的右上角的位置,如图2.1.11所示。图2.1.11 放置point虚拟物体(2)将摄影机父子链接到虚拟物体CameraRigs上(如图2.1.12所示)。

注意在链接过程中,保持摄影机待在原来的位置(不要捕捉到point的位置上去了)。图2.1.12 通过创建一个point虚拟物体CameraRigs(看起来像十字架),并将其放置在建筑右上角的位置,一个摄影机系统得以建立。然后将摄影机父子链接到CameraRigs上(3)使用摄影机系统来旋转摄影机到合适位置。

我们现在可以旋转摄影机系统的虚拟物体来重新定位摄影机,并试着匹配图像的透视。我们只沿着y轴旋转它,因为我们最有力的数据现实照片是在街道上拍摄的,所以我们要建立这种关系。如果沿着其他轴向旋转系统,这会升高或降低摄影机与地面的距离,这将与我们所采用的信息不符。

如果沿y轴旋转摄影机系统之后,建筑仍然没有对齐,你也许不得不调整下摄影机的旋转。这将导致建筑的一角与图像上楼顶的一角分离,因此你需要重新放置它。你也许不得不在旋转系统的y轴和旋转摄影机之间反复几次,以便获得更好的透视(如图2.1.13所示)。

摄影机系统给你更多的自由来控制如何放置摄影机。你将在运动匹配的过程中频繁地使用它们,而它们也确实可以帮你少受挫折。图2.1.13 请注意这个系统是如何通过旋转虚拟物体来调整摄影机的位置的。当你在y轴上旋转point时,摄影机会围绕这一点在x轴和z轴上进行移动。这会在你调整透视的时候,使3D建筑的一角与图像楼顶的一角保持对齐的状态

至此,我们一直在使用渐进法来处理摄影机和建筑。现在我们有了所需的所有东西来更贴近地进行运动匹配,寻找摄影机准确的设置以及建筑正确的大小和形态。在这个阶段,我们要试着将场景完美地对齐。(1)焦距是否正确?

现在摄影机只是概略地进行了放置,我们可以做一些实验来看看它的焦距是否正确。焦距猜测起来会有一些困难,但镜头焦距越小,画面所能容纳的东西就越多。下面3幅分别是15mm、35mm、80mm镜头所呈现的画面(如图2.1.14所示)。注意其中两根红线的变化,镜头焦距越小,两根线越向内缩。图2.1.14 从上到下依次为15mm、35mm、85mm镜头的画面

在不断的尝试之后,最终确定镜头焦距为28mm。你也许需要据此对建筑的位置做一些调整。你最好将这个与调整焦距一起进行,因为这两者都会导致相似的结果,会让建筑在图像中看起来更大一些或更小一些。(2)调整建筑的大小。

现在建筑的大小不是很正确,这有可能是我们之前所猜想的建筑大小与实际有误差所致。所以我们需要调整一下各个方向的尺度以便和图像匹配得更好。当你缩放建筑的时候,你应该以底部的面为轴心进行缩放,这样它的底部将保持在地面上,只有上部会发生变化。如果你从几何中心进行缩放,它将变得更难控制。在大多数软件里,你可以通过移动物体的轴心点到底部来进行缩放(如图2.1.15所示)。图2.1.15 从它的底部重新缩放建筑,以完成匹配(3)继续调整摄影机的旋转、组的旋转以及物体的位置,直到获得合适的结果。

此时仅仅需要对摄影机或建筑进行细微的调整。创建摄影机系统的一个好处是它给你更多的自由度,同时又不失准确性。摄影机系统的帮助物体允许你围绕CG建筑旋转摄影机到不同的位置。借助于确立地平线的位置,实际上我们已经确定了摄影机在x轴和y轴的旋转值,所以我们只需要让它绕z轴旋转即可。如果你需要调整摄影机的距离,你可以沿着x轴和y轴移动摄影机。(4)放置第二栋建筑。

一旦我们解决了摄影机和第一栋建筑的位置,那么第二栋建筑的放置工作就很容易了。从图片中我们可以看出,它们的正面是平行的,因此我们可以简单地复制现有的建筑,然后沿着x轴和y轴移动,直到3D物体的右侧边线与图像中建筑的右边线相吻合。接着,我们向上滑动模型直到边角都对齐了,然后缩放CG建筑到合适的大小完成匹配(如图2.1.16所示)。图2.1.16 通过复制原始物体,并沿x轴滑动,第二栋建筑被轻松放置成功

放置完这两栋建筑,你已经可以提交一个有着正确摄影机的场景了,并且它包含了充足的信息来展示给动画师或技术导演,告诉他们CG物体需要放到哪儿。如果我们要在道路上添加一辆跑车从镜头前飞驰而过,如图2.1.17所示的那样,我们建造的CG道路可以指示要把它放到哪儿。光盘目录tutorial_fi les\Chapter_02\scenes下的pespective_match_fi nish.max文件是最终完成的匹配文件。对于场景

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载