mayarenderpasses渲染方法.docx
《mayarenderpasses渲染方法.docx》由会员分享,可在线阅读,更多相关《mayarenderpasses渲染方法.docx(33页珍藏版)》请在冰豆网上搜索。
![mayarenderpasses渲染方法.docx](https://file1.bdocx.com/fileroot1/2023-1/12/1a8496eb-0418-496e-ab20-17b291fd4a22/1a8496eb-0418-496e-ab20-17b291fd4a221.gif)
mayarenderpasses渲染方法
关于maya多通道渲染
关于多通道渲染,这里介绍Muti-renderpasses中的高级分层以及叠加方式。
参照maya帮助中案例
合成方法:
Beauty=diffuse_level*(diffuse_raw+(indirect_raw*ao_raw))+
spec_level*spec_raw+
refl_level*refl_raw+
refr_level*refr_raw+
tran_level*tran_raw+
add_result
这里介绍一些各层:
1、diffuse_result=diffuse_raw*diffuse_level;diffuse_raw是直接照明效果,只有光影,没有颜色,而diffuse_level含有颜色信息
2、spec_result=spec_raw*spec_level:
spec_raw是没有衰减的高光范围,而spec_level只包含高光的色彩信息,值得一提的是如果mia_material/mia_material_Xshader的属性中specularbalance的值为1.0,
那么spec_level与refl_level是相同的。
3、refl_result=refl_raw*refl_level;refl_raw即无衰减的最强反射范围,而refl_level则是实际反射,包含了反射的颜色和BRDF(菲涅尔)曲线衰减效果。
BRDF(bidirectionalscatteringdistributionfunction)关乎间接照明,并且可以采样计算光子,包含了refl、refr的diffuse、glossy、和spec。
4、refr_result=refr_raw*refr_level;refr_raw是无衰减的最强折射效果,而refr_level是由能量守恒调节的实际折射效果。
5、tran_result=tran_raw*tran_level;tran_raw是无衰减的半透效果,tran_level是由能量守恒调节的实际半透效果。
6、indirect_result是间接照明的效果,包含了环境闭塞与漫反射颜色相乘的效果,indirect_raw带有间接照明信息却没有环境闭塞信息,ao_raw是环境闭塞的无衰减效果。
Indirect_post_ao=indirect_raw*ao_raw
7、add_result字面翻译是add_color
属性的直接反应,有待测试。
了解了各层的意义,那么合成的算法也就不难理解了:
Beauty=diffuse_level*(diffuse_raw+(indirect_raw*ao_raw))+颜色+(直接照明+间接照明)
spec_level*spec_raw+高光
refl_level*refl_raw+反射
refr_level*refr_raw+折射
tran_level*tran_raw+半透
add_result
下面以一个例子来讲解怎样进行这种方式的通道渲染以及合成方式:
在这个场景中有一只恐龙和一个地面,地面用来接收阴影,环境球提供照明,一盏平行光打出影子。
不分通道的渲染时间:
根据上面提到的分层方式分析,我们首先应该给恐龙分出:
diffuse_leveldiffuse_rawspec_levelspec_rawrefl_levelrefl_rawindirect_rawao_rawshadow_raw另外也可渲出indirectPostAoindirectResult比对效果使用。
为了使用后期的灯光效果,还应该渲染normalCamnormalWorld。
为了给恐龙做一个干净的通道,应当渲染dragonMatte层。
对于地面应当渲染floorShadowRaw,这里需要注意的就是地面与恐龙的阴影应该分为两层。
再加上默认渲染的beauty层。
测试渲染时间
综上所述,我们应当渲染出的有16层,如下:
FinalRender
ao_raw
Diffuse_level
Diffuse_raw
floorShadow_raw
indirectPostAo
Indirect_raw
Indirect_result
Beauty
normalCam
NormalWorld
Refl_level
Refl_raw
dragonShadowRaw
specLevel
Spec_raw
dragonMatte
下面分步进行操作:
1、新建一个渲染层,命名为beauty
2、为了将恐龙与地面分开,我们应当首先选中恐龙模型和灯光,在beauty层上右键,选择
双击新建的passcontributionmap重命名为dragon
3、同理,选择地板和灯光,新建passcontributionmap并重命名为floor。
4、以设置diffuseLevel和diffuseRaw为例,首先我们在渲染设置里,找到pass设置,
打开新建pass
,找到
,选中,然后在
输入diffuseLevel,并点击
,然后将
改为diffuseRaw,创建并且关闭,这样在scencepasses里面我们就有了两个passes
对于pass参数的设置参照之前所讲的。
5、在确保渲染设置窗口上方
是需要进行设置的渲染层之后,选择我们刚刚创建的两个passes,点击
,这样就加入了我们这个层的通道渲染,但是还不够,这个diffuseLevel和diffuseRaw我们只想针对恐龙进行拆分,所以应当在下面的
下拉菜单选择dragon
,然后点击
,再将创建的两个pass添加到dragonpassmap中,这样就只会拆分出恐龙的这两个通道。
其他的通道设置同理。
6、在渲染设置里讲各通道设置好后,我们到材质编辑器,这里我们给恐龙上的是mia_material_X_passes
shader
,这里先不对这个材质球进行介绍,正在对这个shader的maya帮助进行翻译,先告诉大家怎么用这个材质球进行通道拆分,需要注意的一点是如果需要渲染AO层,那么勾选useAmbientOcclusion
。
前面我们已经设置好了diffuseLevel和diffuseRaw两个passes,这时我们创建一个mentalray的节点writeToColorBuffer
在该节点的属性中选择
,并将该节点重命名为diffuseRaw。
7、按住中键,将材质球拖放到节点上,选择other
在弹出的关系编辑器中,左边选择
右边选择
,这样我们就真正设置好了diffuseRaw通道。
其他的通道同理。
8、总的都设置好之后
对名称以及格式等进行设置
,之后批渲染就可以了。
下面讲一下合成:
在nuke中总节点如下:
1、
2、
3、
4、
5、
6、
7、
这是基本的几个部分的合成,还需细调。
另外还对小场景进行了景深通道和3d矢量通道的拆分
Beauty
Depth
Depth的合成:
Depth效果:
另外,利用该材质球应该也可以拆出模拟sss效果,测试中。
WithoutSSS
WithSSS
对于多个物体的拆分:
一个简单场景
给小球,方盒子还有地面分别上三个材质
测试渲染时间为20秒
按上面的拆分方式得到
渲染时间21秒
DiffuseLevel
Diffuseraw
Beautyshadow
Floorshadow
misss_fast_shader_x_passes测试
sssBacklevel
sssBackRaw
sssBackResult
sssBackLecel*sssBackRaw=sssBackResult
diffuseLevel*diffuseRaw=diffuseResult
diffuseResult(screen)sssBackResult=beauty
(注:
本资料素材和资料部分来自网络,仅供参考。
请预览后才下载,期待您的好评与关注!
)