编者按:本文来自微信公众号韩的日志(公众号ID:hanshilin_com),作者:韩世麟,本站经授权转载。
Hello,大家好,这里是老韩。
今天给大家带来一篇投稿,是网友星星仔梳理的 V-Ray for 3ds Max 平台上的 Cryptomtte 使用流程。
因为我之前所发的 Cryptomatte 教程,是面向 SketchUp 用户的,而今天是专门面对 3ds Max 用户所写的文章。所以今天我打算重新叙述一下整个流程的逻辑,以保持教程思路的完整性。
以下是正文:
V-Ray for 3ds Max Cryptomatte 通道使用流程
我们在做渲染的时候,通常会出一张彩色通道图,方便后期做出选区,这张图通常长这样:
获取这种通道图的方式有很多,一般来说会使用材质ID(Material ID)渲染元素,甚至还有一种比较经典的方式是使用自发光材质来渲染。
有了这张图以后,我们怎么做选区呢?常见流程是在PS中,使用魔棒工具做出选区,但是这种方式有一定局限性:
魔棒工具很难精确地做出选区。 面对有模糊效果的选区,魔棒工具就无能为力了。
如上图所示,前景的椅子是没有对焦的,处于模糊的状态,那么如果想单独给它调色,我们就很难拿到准确的选区。
但是如果使用 Cryptomatte,我们就可以直接拿到有景深效果的选区:
在这个基础上调色,就会很简单了:
好的,接下来我们就来看一下,如何在 V-Ray for 3ds Max 平台上使用这个流程,以如下场景为例:
第一步,添加 Cryptomatte:
第二步,渲染,并且把成果图打包成 exr 文件:
操作方法:长按磁盘图标,选第三个“Save to single file”保存成一个文件,保存格式为 exr。
第三步,下载免费的 Cryptomatte 解码插件,安装到 Photoshop 上:
点击页面上大大的 Download,即可下载:
第四步,使用 Photoshop 打开成果图 exr 文件,会弹出如下面板,我一般习惯这么勾选,把 transparent 勾去掉,你也可以探索你自己习惯的方式:
顺利的话,这一个文件会被解码成多个通道图层:
注意:非常重要:如果这一步始终无法解码成功,请升级 V-Ray 渲染器版本。
好的,整体的思路流程就介绍到这里,以下三个独立的模块,分别解决三个方面的问题:
第一部分,32位每通道渲染成果,分层调色后期处理流程,虽然渲染设置是以 SketchUp 为例,但是后期处理方法是完全一样的:
第二部分,如何把解码出来的的通道批量挂成蒙版:
去插件官网博客,找到这个帖子:
https://www.exr-io.com/autolayermaks-script-production-boost/
里面其实就已经把使用方法讲解得很清楚了,但是是全英文的,所以我还是用中文介绍一下:
脚本文件百度网盘:
https://pan.baidu.com/s/1P3OmMyj7NhQYgHpTOuM9vg
提取码:gc1g
第三部分,为网友星星仔所作,讲解 V-Ray for 3ds Max 的 Cryptomatte 的5种分通道模式,对于实际工作流程来说非常重要:
Cryptomatte 渲染元素5种模式详解
文/星星仔
V-Ray for 3ds Max 的 Cryptomatte 渲染元素提供给了用户5中可选择的方式,来决定生成的遮罩以何种方式来判断场景中的物体哪些应该分在一个颜色中:
它们分别是:
- Node name
- Node name with hierarchy
- Node material name
- Node user property
- Layer name
今天我们就来讲讲这五种模式具体都是怎么生成遮罩的。
1.Node Name(节点名称)
顾名思义,Node Name 模式会判断 3ds Max 每个物体的名称:
就是上图红框里的字样,来决定遮罩的颜色,相同名称的物体会生成在一个遮罩中。3ds Max 默认生成的物体名称是不一样的,从外部导入进来的物体,如果出现重名也会进行重命名,所以作为 Cryptomatte 默认的 id type,默认直接生成的遮罩将会是这样:
这个场景中的物体个数一共是34个,若将生成的 EXR 文件导入到 PS 将会生成 34 个 Cryptomatte 遮罩图层,每个物件都会被分成一个黑白图层:
但是若是场景有成百上千个物体的话,PS 生成成百上千个图层将会非常消耗内存,后期处理起来也极其不方便,所以如果直接用默认参数,Cryptomatte 将会非常不好用。
这时就需要用到:Tools(工具)→Rename Objects(重命名对象)这项功能,批量将场景中的物体划分成几个大块:
这里我仅将场景里的物体区分为4个大块:黑棋,白棋,棋盘,地面。
区分好了名称之后,相同名称的物体将会渲染在同一个遮罩中:
Cryptomatte 效果:
此时我们将导出的 EXR 文件导入到 PS 中,能非常干净的得到我们自己手动设定的图层数量:
图层名称的规律是:渲染元素的名称+对象名称,非常便于查找!
这时有同学就要问了,如果我想设置完这个通道之后,再把这些物体分类细致一点,但是想在仅仅一次渲染中就得到两组通道,不想重复渲染也不想再重复修改 3ds Max 中的对象名称,怎么办?
Cryptomatte 于是提供了第二个通道模式来为大家解决这个问题:
2.Node name with hierarchy(具有层次的节点名称)
这项功能与 Node name 基本上类似,小伙伴们在测试第一个方法的时候应该会遇到一个问题:Node name 仅判断对象的名称,并不会判断组的名称,这时 Node name with hierarchy 就正好给大家提供了第二种遮罩获取方式。
我们给场景中的若干个相同名称的物体打组(黑棋小兵打成一组,两个车一组,两个马一组,两个象一组,皇与后一组):
然后再在渲染元素面板添加第二个 Cryptomatte 渲染元素,将其名称进行修改为:Cryptomatte2 来与第一个做区分(听说多个cryptomatte 渲染元素都是同一个名字的话在 PS 中解码会出错),并且将 id type 修改为:Node name with hierarchy:
再进行渲染:
此时我们会发现,相同名称的物体在不同的组中,颜色将会被区分出来,然后我们可以将一次性渲染了两组 Cryptomatte 通道的文件导入到 PS 中解码:
然后就可以同时得到2组 Cryptomatte 通道解码出来的所有蒙版!
3.Node material name(节点材质名称)
顾名思义,这个也就是判断场景中所有物体的材质,相同材质的物体将会被渲染在同一个颜色的通道,与 Material ID 渲染元素得到的结果类似,也可以在 PS 中将每一个材质解码成单个黑白图层(这个太简单就不详述)
4.Layer name(图层名称)
该功能是判断物体在层管理器中所在的位置,这里我将场景中的棋子按照一定规律分成了若干个图层:
渲染完之后 Cryptomatte 就会根据图层来区分对象的颜色:
正好对应8个层8个颜色。
说到这里,可能一些 3ds Max 用户就会质疑一个问题:上边所讲述的 Cryptomatte 的这几种分类方法,要么是利用对象名称,要么是利用图层,要么是利用分组,可是在我们公司的工作流程中,有严格的绘图规定,图层、分组、命名方法等,是不能随便乱改的。这时候可怎么办?说白了就是:我能不能自定义一套规则?
这时 Cryptomatte 的第五个功能就派上了用场:
5:Node user property(节点用户属性)
这个功能的用法比较奇特,首先选择模式为:Node user property 之后,下面同名的选项栏将会被激活:
我们将后面的内容全选复制,也就是复制“CryptomatteName”字样,(也可以自己输入任意的内容全选复制)
然后选择需要定义成同一种颜色的物体按右键选择:Object Properties(对象属性)
紧接着选择到第三个选项卡 User Defined(用户自定义):
刚才复制的内容粘贴到输入栏中,并且在后面输入=黑棋,最终如图所示:
确定之后再将其他物体以同样的方法添加备注:CryptomatteName=白棋,CryptomatteName=棋盘等等,以此类推,最后我们渲染测试一次:
这样我们就很轻松地使用自定义功能,将场景中的物体区分了颜色!
最后,比较重要的注意事项是:
- V-Ray 3.6 生成的 Cryptomatte,似乎无法使用 exr-io 插件解码,这个流程需要 4.0 以及以上版本的 V-Ray 才可以。
- 同时添加5个 Cryptomatte 渲染元素,并且设置为不同的通道模式,在同一次渲染中是可以并存的,一次渲染就可以提取出5套不一样的通道,不过通道数量会比较多,大家可以根据自己实际需求,选择其中最适合自己的提取方式,同时渲染来做后期处理。
好,以上就是星星仔和我共同为大家带来的完整版 V-Ray for 3ds Max 的 Cryptomatte 工作流程,希望对大家有帮助,感谢收看,我们下期再见!
|