1、mayarenderpasses渲染方法关于maya多通道渲染关于多通道渲染,这里介绍Muti-render passes 中的高级分层以及叠加方式。参照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
2、*diffuse_level; diffuse_raw是直接照明效果,只有光影,没有颜色,而diffuse_level含有颜色信息2、spec_result=spec_raw*spec_level: spec_raw是没有衰减的高光范围,而spec_level只包含高光的色彩信息, 值得一提的是如果mia_material / mia_material_X shader的属性中specular balance的值为1.0,那么spec_level与refl_level是相同的。3、refl_result=refl_raw*refl_level ; refl_raw即无衰减的最强反射范围,而re
3、fl_level则是实际反射,包含了反射的颜色和BRDF(菲涅尔)曲线衰减效果。BRDF(bidirectional scattering distribution function) 关乎间接照明,并且可以采样计算光子,包含了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
4、是由能量守恒调节的实际半透效果。6、indirect_result 是间接照明的效果,包含了环境闭塞与漫反射颜色相乘的效果, indirect_raw 带有间接照明信息却没有环境闭塞信息 ,ao_raw 是环境闭塞的无衰减效果。Indirect_post_ao = indirect_raw * ao_raw7、add_result 字面翻译是 add_color 属性的直接反应,有待测试。了解了各层的意义,那么合成的算法也就不难理解了:Beauty = diffuse_level * (diffuse_raw + (indirect_raw * ao_raw) +颜色+(直接照明+间接照明)
5、spec_level * spec_raw + 高光 refl_level * refl_raw + 反射 refr_level * refr_raw + 折射 tran_level * tran_raw + 半透 add_result下面以一个例子来讲解怎样进行这种方式的通道渲染以及合成方式:在这个场景中有一只恐龙和一个地面,地面用来接收阴影,环境球提供照明,一盏平行光打出影子。不分通道的渲染时间:根据上面提到的分层方式分析,我们首先应该给恐龙分出:diffuse_level diffuse_raw spec_level spec_raw refl_level refl_raw indire
6、ct_raw ao_raw shadow_raw 另外也可渲出 indirectPostAo indirectResult 比对效果使用。 为了使用后期的灯光效果,还应该渲染 normalCam normalWorld 。为了给恐龙做一个干净的通道,应当渲染 dragonMatte层。对于地面应当渲染floorShadowRaw ,这里需要注意的就是地面与恐龙的阴影应该分为两层。再加上默认渲染的beauty层。测试渲染时间综上所述,我们应当渲染出的有16层,如下: Final Renderao_rawDiffuse_levelDiffuse_rawfloorShadow_rawindirect
7、PostAoIndirect_rawIndirect_resultBeautynormalCamNormalWorldRefl_levelRefl_rawdragonShadowRawspecLevelSpec_rawdragonMatte下面分步进行操作:1、新建一个渲染层,命名为beauty2、为了将恐龙与地面分开,我们应当首先选中恐龙模型和灯光,在beauty层上右键,选择双击新建的pass contribution map 重命名为dragon3、同理,选择地板和灯光,新建pass contribution map 并重命名为floor。4、以设置diffuseLevel和diffus
8、eRaw为例,首先我们在渲染设置里,找到pass设置,打开新建pass,找到,选中,然后在输入diffuseLevel,并点击,然后将改为diffuseRaw,创建并且关闭,这样在scence passes里面我们就有了两个passes对于pass参数的设置参照之前所讲的。5、在确保渲染设置窗口上方是需要进行设置的渲染层之后,选择我们刚刚创建的两个passes,点击,这样就加入了我们这个层的通道渲染,但是还不够,这个diffuseLevel和diffuseRaw 我们只想针对恐龙进行拆分,所以应当在下面的下拉菜单选择dragon,然后点击,再将创建的两个pass添加到dragon pass m
9、ap 中,这样就只会拆分出恐龙的这两个通道。其他的通道设置同理。6、在渲染设置里讲各通道设置好后,我们到材质编辑器,这里我们给恐龙上的是mia_material_X_passes shader ,这里先不对这个材质球进行介绍,正在对这个shader的maya帮助进行翻译,先告诉大家怎么用这个材质球进行通道拆分,需要注意的一点是如果需要渲染AO层,那么勾选use Ambient Occlusion。前面我们已经设置好了diffuseLevel 和diffuseRaw 两个passes ,这时我们创建一个mentalray的节点writeToColorBuffer在该节点的属性中选择,并将该节点重
10、命名为diffuseRaw。7、按住中键,将材质球拖放到节点上,选择other在弹出的关系编辑器中,左边选择右边选择,这样我们就真正设置好了diffuseRaw通道。其他的通道同理。8、总的都设置好之后对名称以及格式等进行设置,之后批渲染就可以了。下面讲一下合成:在nuke中总节点如下:1、2、3、4、5、6、7、这是基本的几个部分的合成,还需细调。另外还对小场景进行了景深通道和3d矢量通道的拆分BeautyDepthDepth的合成:Depth效果:另外,利用该材质球应该也可以拆出模拟sss效果,测试中。Without SSSWith SSS对于多个物体的拆分:一个简单场景给小球,方盒子还有
11、地面分别上三个材质测试渲染时间为20秒按上面的拆分方式得到渲染时间21秒Diffuse LevelDiffuse rawBeauty shadowFloor shadowmisss_fast_shader_x_passes 测试sssBacklevelsssBackRawsssBackResultsssBackLecel * sssBackRaw = sssBackResultdiffuseLevel * diffuseRaw = diffuseResultdiffuseResult (screen) sssBackResult = beauty (注:本资料素材和资料部分来自网络,仅供参考。请预览后才下载,期待您的好评与关注!)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1