杨德勇

(北京大千阳光数字科技股份有限公司,北京 100080)

1 Deep的概念

1.1 Deep的含义

Deep的字面含义指的是:深度。一帧Deep序列在三维制作中可以理解为带有所渲染物体在相机里的位置信息的一张图片及在二维视角是一张图在三维视角是有前后位置信息的(如图1、图2所示)。Deep是将每一个像素里的信息以点的方式记录下来并带有普通序列的Alpha、Color等层信息,同时点上还记录了点与点和点与相机视角为基准的位置信息的一种序列格式。在Nuke中我们通过“DeepSample”节点查看Deep序列的属性信息,其中包括位置信息。

1.2 Deep在动画制作中的定位

图1

图2

当Deep具有上述所说的功能后就不难发现在软件的文件对接上通过输出Deep会解决很多通常会遇到的问题。随着Houdini软件在国内行业内的兴起和大众化,使得大多数动画制作在动画与特效流程上逐渐抛弃了Maya来制作特效效果,逐步转为Maya做完动画后输出相关文件abc到Houdini制作特效元素,最终根据不同的特效元素选择Houdini输出特效元素序列,或者将特效元素返回给Maya的灯光组进行渲染。但在此之中,Houdini进行水、粒子、烟火爆炸、云雾及其它特效时与场景模型之间经常存在交互问题,Maya材质的置换贴图、资产代理和毛发Houdini是无法读取的,反之Houdini中的粒子是无法直接输出到Maya进行渲染使用的,而Deep技术的出现很好地解决了这个问题,双方软件各自输出带有三维空间位置信息的Deep序列在Nuke中进行合成,这样在不同的位置自然形成有效的遮挡和深度关系,如图1、图2所示。

2 Deep在各软件中的应用与对接

2.1 Deep层在Maya和Houdini中的输出

在Maya中输出Deep一般基于Arnold渲染输出,只需要在渲染设置中更换渲染序列输出格式为“Deepexr”,如图3。

在Houdini中输出Deep一般是基于Mantra渲染输出,只需要在相应的渲染节点选择“Images”下“Deep Output”中的“Deep Camera Map”并修改好序列格式即可输出,如图4。

图3

图4

2.2 Maya输出的场景模型Deep在Houdini中的应 用

前文已经说过Deep是带有以渲染相机为基准的三维空间位置信息的序列,那幺Houdini作为一个非常开元的后期制作软件是可以通过进行一些后台操作后,将Maya输出的Deep序列引入到Houdini中,取读正确的位置信息进行遮罩渲染(在此可能会有疑问既然都可以输出Deep到Nuke中进行合成为何在此要赘述遮罩渲染,原因会在下面的章节进行解释),这样可以很好地解决abc文件无法记录Maya中的毛发和置换信息而导致在Houdini中做遮罩渲染出的序列与Maya场景模型渲染的序列不匹配的问题。

将Maya输出的Deep导入Houdini中使用首先要考虑的是两个软件默认的空间比例不同,Maya的默认空间是一个网格代表0.01米,而Houdini是1米,所以在Houdini制作特效元素之前,大多情况都会对Maya导过来的文件进行缩放。假设缩放0.1倍,那幺在Houdini中的Maya文件位置信息整体以世界坐标为中心乘以0.1。将Deep直接导入到Houdini是无法使用的,因为Maya输出的Deep带有的位置信息是Houdini处理过的场景10倍,所以如果将Deep导入进Houdini做遮罩或者位置参考,需要先对Deep进行等比缩放后才能进行后续操作,具体操作如下:

(1)Mantra渲染节点的设置

首先在需要进行Deep操作的Mantra渲染节点中找到“Edit Parameter”中的“Render Properties”输入“View” 然后将“Background Z-Scale”和“Background Image as Matte”移到“Existing Parameters”并应用(如图5),在Mantra外部面上就会显示出这两个参数选项。“Background ZScale”含义即景深刻度,也就是世界空间的比例大小刻度。“Background Image as Matte” 在Houdini中的释义为将渲染背景深度相机中的图作为一个哑光对象。当这个属性是开启的时候,Mantra抛弃了本身摄像头映射的颜色,并且来自深度摄像头映射的Alpha不会被放入最终的图像中。这是深阴影映射文件的默认行为,即是否将相机内的Deep拿来作为遮罩影响层。

图5

然后将“Background Z-Scale”与场景缩放比例相匹配(如图6),这样就做到从Maya输出的abc或者fbx文件在Houdini中进行缩放后制作的特效元素与Maya输出的Deep序列的深度位置信息完全吻合。

图6

(2)Camera节点的设置

找到渲染的Camera中最底层的“Camera-Shape”中的“Background Image”选项,直接将Maya输出的Deep序列导入进来(如图7)。同时我们通过视窗面板旁的“Display Background”可以对导入的Deep进行二维可视化(如图8)。

图7

图8

(3)Deep在Mantra中的渲染

图9

图10

在Houdini中勾选“Background Image as Matte” 进行的渲染结果为图9呈现的效果,不勾选进行的渲染结果为图10呈现的效果。在Houdini中以勾选“Background Image as Matte”将Deep作为遮罩进行渲染较为常用,我们在制作《风语咒》饕餮出世的场景特效时Maya涉及到大体量的树木的资产代理、山体的置换和人物群集等场景元素,这些都是在Houdini中不好还原,然后作为遮罩渲染的Maya文件,同时大体量的Maya文件作为abc输出后,一个文件的大小就可能达到上百GB,这样的abc在Houdini中运行操作起来成本巨大。所以最后选择Maya输出Deep序列然后到Houdini中作为遮罩渲染,很好地解决了软件之间文件不好互导的问题。

2.3 Deep在Nuke中的基本合成与查看

Nuke是将渲染组和特效组所有渲染的镜头素材进行归总合成输出的软件,在影视行业的不断发展过程中,Nuke不断地更新和成长,现已成为影视制作中不可或缺的软件,其优秀的三维软件文件格式读取能力加上自身可进行三维视角显示和操作,可以将abc或者fbx格式相机导入进Nuke做最后的细节调整,为呈现更好的镜头效果创造了更多的可能性。

在Nuke中导入Deep序列不能直接拖拽进行合成操作,需要通过“DeepRead”节点导入序列。“Deep Transform”节点可以对素材进行位置偏移,因为没有遮罩的影响,有些不受边界框裁切的素材进行小幅度位移是不受影响的。“Deep Merge”节点对多个素材进行合并显示与Nuke中的常规“Merge”节点作用相似。“Deep To Points”节点用来在三维视角里显示Deep的位置(每个点都记录一个像素内的信息),多与“Camera”节点配合使用,其呈现效果示意见图2。“Deep Sample”节点查看Deep序列的属性信息其中包括位置信息。

3 总结

3.1 Deep在动画项目制作中的优势与不足

3.1.1 Deep在Maya、Houdini以及Nuke这三个软件之间对接中的优势

综上所述,Deep技术的信息储存方式革新了影视流程化作业方式。其优势大致归为以下几点:

(1)解决了Maya里的物体材质置换和Houdini材质置换不互通渲染遮罩容易产生偏差的问题。两者的材质贴图都有着自己的组合方式,如果要实现同样的置换效果需要超高成本的测试渲染比对。

(2)解决了Maya里的毛发系统和Houdini不互通渲染遮罩产生偏差的问题。Maya最新使用的毛发插件为XGen系统,而Houdini一直都是自己的流程系统。两者都不能输出类似于abc、fbx和vdb格式记录毛发信息的互通文件。

(3)解决了Maya中资产代理(如树林)和Houdini不互通的问题。Maya通过代理物大大节省了软件的运行成本,但在软件之间的素材对接上产生了大问题,代理物无法直接读取进Houdini使用。

(4)节省了精模导abc的耗时过长和文件缓存过大的问题,有了Deep流程作后盾就不用导高精度的abc文件进Houdini做遮罩渲染。

(5)缩短了制作周期,前期确定场景简模和动画关键帧,就可以开始Houdini的特效制作,不涉及遮罩渲染,不会因为动画和模型环节有细微的调节从而导致特效素材需要重新输出渲染。

3.1.2 Deep在Maya、Houdini以及Nuke这三个软件之间对接中存在的劣势

首先前面所提到的在Houdini中用Deep做遮罩渲染的原因是Deep文件很大,一张exr容量一般都超过1GB,如果复杂一点的场景输出一帧Deep可能需要3GB以上的储存空间,如果一个项目整体元素复杂,整体都出Deep序列可想而知需要超大容量的服务器做支撑。同时Deep文件储存量大,其精确的点记录方式也使得Nuke的读取和渲染压力巨大,所以在有些不需要在Nuke里进行位置偏移等处理的特效元素,直接在Houdini中作为遮罩渲染以节约硬件和软件成本。

Deep虽然可以很好地记录位置信息,但是以点的形式记录每个像素的信息和常规的模型是不同的,所以在Houdini中作为遮罩渲染不能产生和模型做遮罩渲染一样的阴影关系。同时Deep在Houdini中作为遮罩渲染不能接收漫反射等二次照明,即特效素材对场景模型的光照影响是无法实现的,都需要后期制作或单独出简模影响的阴影层和影响层到后期处理等方式来解决阴影关系和二次照明的问题。

3.2 Deep技术的出现在影视动画行业的意义

我们已经深刻体会到Deep技术对整个行业流程的改变,诸如Weta Digital、Animal Logic、MPC和ILM等国际顶尖视效公司都在用Deep技术服务于项目创作,《少年派》《普罗米修斯》《超人:钢铁之躯》《饥饿游戏2:星火燎原》《复仇者联盟》《环太平洋》和《霍比特人》等视效大片的制作都使用Deep深度合成技术。Deep技术的诞生是影视动画行业在不断发展和创新的体现,它提高了影视动画制作效率和效果。