1、【Maya】分层渲染技术(三)渲染通道 RenderPass(上)三维动画 2009-07-19 09:47 阅读 450 评论 1 字号: 大 中 小 【RenderPassForMentalRay 介绍】Maya2009 添加了三项新功能: nParticle 内核粒子与 AnimationLayer 动画层和 MentalRay 渲染器的 RenderPasses 渲染通道。以下就介绍下 RenderPasses 的渲染技术。场景中的物体,除了自身材质,它还会受到光源及环境的影响,其表现特征有:漫反射,镜面反射,高光,折射,自发光,透明度,半透明度,阴影等。就好比计算机颜色的四个通道:红
2、绿蓝 Alpha,这些表现特征可作为场景中物体的光学通道来定义。以此理解为基础,软件开发者引入了渲染通道的概念。RenderPass(渲染通道)在 Maya2009 之前是 MayaSoftware 和 MentalRay 共有的渲染方式,Maya2009 特别为 MentalRay 增加了新的 RenderPass 分层渲染功能。RenderPass(渲染通道)是在 RenderLayer(渲染层)的基础上进行通道分离的:一个渲染层只能分离所包含物体的一个属性,而渲染通道则可将一个渲染层中的物体进行多个属性分离。简而言之,就是一个渲染层中可以建立无数个渲染通道,以简单的渲染设置完成大量图层的
3、渲染。RenderPass(渲染通道)的创建并不复杂,其思路也容易理解,我们只要明白其参数原理即可进行。RenderPass(渲染通道)包含一个重要功能,就是 render pass contribution maps(渲染通道成分贴图),其作用就是将多个渲染通道赋予一类成分贴图,对渲染后的图片进行命名及保存,相当于渲染层下的子渲染层。当对复杂场景中的大量物体进行通道分离,可想而知,生成的渲染图片将会很丰富(或者说杂乱)。要合理的进行文件管理,我们需要制定规范的命名及保存路径。multi-render passes(多组分渲染通道)的渲染方式仅支持 mental ray 的渲染方式,使用 Ma
4、ya software(Maya 软件渲染器)的渲染方式时应采取分层渲染方式(RenderLayer)。【总体流程】1.创建渲染通道成分贴图(render pass contribution maps);*该步骤也可以省略,但是成分贴图能更好的控制灯光、物体以及它们间的通道联系,因此创建成分贴图是很好的选择。如场景中有 6 个物体和 3 个灯光,我们可以只对其中的 2 个物体及 1 个灯光所产生的漫反射,高光,阴影等进行分开渲染。2.对应每个渲染通道成分贴图(render pass contribution maps),创建渲染通道(render pass);3.渲染场景,为渲染图片进行命名及
5、文件夹设置;*遇到较多通道,可进行渲染通道的成组,即建立渲染通道设置(render pass sets),对设置(set)进行渲染 操作实例 1全景的多通道渲染首先要说的是,如下这样一个大场景(早期遗产,模型材质都很糟糕这个大家就先忽略吧),渲染速度会很慢,因此我不打算在 Maya 中耗费时间来测试照明的渲染效果 同时也为了更好的发挥分层渲染的作用。1.添加一个方向光源,打开光线追踪;在 mental ray 的渲染设置中开启 FG 功能FinalGather 是一种模拟全局光的光子收集技术。*如果需要渲染 AO(AmbientOcclusion 环境闭塞,或称 OCC 白模效果)通道,需要将
6、设置面板下的AmbientOcclusion 勾选。2.设定好摄像机角度后,选择 mental ray 渲染器执行渲染。3.由于光源不足,因此整个画面显得阴暗;此时选择摄像机,Ctrl+a 进入摄像机的属性编辑面板,在Environment 区块中将摄像机背景颜色 BackgroundColor 设置为纯白色,FG 就会收集相机颜色照亮场景,画面效果将会更明晰。4.选择场景中所有的物体和灯光,创建一个新的渲染层;点击渲染层的设置图标,进入渲染设置面板中的Passes 栏。*如果你看不到 Passes 右边的图标按钮,则将面板的边框向左右拉宽即可看到。5.点击 RenderPasses 区块右边
7、的 CreateNewRenderPasses(创建新的渲染通道)图标,弹出一个PassList(通道列表)窗口。6.PassList 下是 mental ray 所支持的渲染通道分类,我们可以选择多个所需要渲染的通道;NamePresets(名称预设)区块是对通道进行前缀和后缀名称的添加。因为 Maya2009 的渲染保存路径中多了这样的命名方式,增加前缀或者后缀有利于区分各类渲染图片。CreatePassSet 勾选后,可对当前选择的 PassList 下的渲染通道成组,当你需要对多个物体的多个通道进行渲染,设置 PassSet 能简化渲染管理。7.结果列表。当完成对 PassList 的
8、通道选择,在 ScenePasses(场景通道)框中将出现设置的结果。因为我在选择渲染通道时,设置了通道前缀名称为“Gundam_”,而 PassSet 的名称为“N1”,因此显示如下图。此时的选择结果存在于场景文件中,但不会被渲染所识别。*选择 Set 或者 Pass,右键弹出菜单中可以设置渲染层覆写8.联合渲染通道。如果没有设置 PassSet,那么我们将需要选择全部的渲染通道,下移至AssociatedPasses(联合通道)框中;因为我在选择时设置了 PassSet,因此我只需要将(Set)N1 下移到AssociatedPasses 框中即可。需要注意的是,PassSet 创建后不会
9、包含任何渲染通道,需要开启成员连接编辑器,将左边的RenderPassSets 和右边的 RenderPasses 进行连接(选择后背景色改变,如灰底,即表示连接完成)9.执行 Rendering 模块下的 Render-BatchRender,进行批渲染。在渲染设置的保存路径中选择了,渲染图片将按所设置的“前缀+渲染通道”的名称方式进行命名。*Maya 是在渲染后期对图层进行通道分离的,因此渲染过程中我们看到的是所有未完成渲染的通道图片,而不是通常按顺序生成的图片;MasterBeauty 是 Maya 默认会生成的当前层的 Beauty(姑且称为“观赏通道”)通道,至于是否能禁止该图片的生
10、成还没进行研究。10.测试后期合成。*如果只想获取漫反射 Diffuse,应选择 DiffuseWithShadows(不带阴影的漫反射),否则 Diffuse 通道图片将包含阴影(本例中的阴影图片因此失去作用。# !)。而由于使用了 FG 功能,因此以上几个常规的渲染通道是不能得到 Beauty 通道那种最终渲染效果的漫反射通道不受间接光照影响。11.回到 RenderPass 的 PassList,选择如下通道:AO (环境闭塞),Reflection(反射),Shadow(阴影),Specular(高光),GlowSource(辉光),Indirect (间接照明),并且在 Set 中设
11、置新的通道连接关系。12.渲染并合成。*因为增加了 AO 模式的图层叠加,因此图片显得更有深度感;不过辉光通道效果并不明显。最后对比下直接渲染,通道分层,后期处理的三种不同效果。*需要注意的是,当摄像机背景为白色,FG 将使最终渲染图片的 Alpha 透明通道出现白边,需要后期修缮;而通道渲染则不会出现这个问题。 【总结】流程:建立渲染层-选择通道-联合通道或 Set-批渲染(其中可根据实际情况修改渲染图片的保存方式) RenderPass 实际操作并不复杂,不过大家也会发现,仅通过这些简单设置,无法得到 RenderLayer 那样的分层渲染结果。因为 RenderPass 是基于 Rend
12、erLayer 上创建的,而我们的 RenderLayer 只有一层。如果 metal Ray 渲染仍使用多个 RenderLayer 渲染层,那么 RenderPass 就没发挥太大作用;而且Maya 总是会对该层进行一次全局 Beauty 渲染,尤其渲染动画序列,太多 RenderLayer 渲染层将造成资源的浪费除非你需要对渲染输出进行多种不同的设置。为了解决以上问题,我们要使用 RenderPass 的一个重要的功能:创建成分贴图(Create Pass Contribution Map)。下次研究内容,多组分通道的渲染渲染通道成分贴图( render pass contribution maps)的运用。