今天端午假期最后一天,成都大热,闲来无事便想和大家分享一个小小知识点。关于shadow通道,现在大都公司都是根据渲染器的自动设置,分离出来的单独一层;但大家都知道如果要保持最物理的算法莫过于一起输出,这样能保证在direct和indirect光信息的影响下输出最具物理性的光线明暗中和的关系;只是由于很多镜头从渲染资源方面的考虑,这一层我们需要单独输出。常规而言如AR,RS,设置好物体对应属性,单立一层之后在aov单独输出shadow matte通道nuke便可以单独提取出阴影的alpha,这种操作可以满足正常项目的需求。在houdini里,这种方法也是常用方法。
下面我们说两个方案,如下测试场景
假设柱子是有运动的角色,摄像机是静止/微动的,这时候渲染方案务必是场景扩边单针,柱子单出,柱子对地的阴影单出。
方案A
01建立take, 对地面进行属性设置,即visible only to primary rays,仅对主光线(direct)可见。
02 在take里,对柱子进行渲染不可见设置。可以再物体geo上设置,如图
也可在最后输出的mantra_shadow上进行设置。例子里我们在mentra上设置它
03 建立mantra_shadow输出节点,对柱子进行渲染不可见设置,同时选择使用要照射阴影的主灯光
05 mentra 的aov,我们添加选择
06 输出,材质的置换信息是跟随的
07 预合成。对于这种室外简单的光影 结果还原度度几乎百分之百
方案2
殊途同路 (一些通用的常规设置遵循方案一设置,如哪些物体渲染显示之类这里不废话)
01 在地面的材质网络里,自定义链接提取shadow的节点,确保bind节点的命名和mentra上aov的命名是一致的。这里我们命名:sd
02然后我们输出,但你得到这样的结果:
03如上图,阴影的alpha显然是错的 ,你会发现柱子阴影所投射的alpha正面是没问题的 ,问题出在其他侧面,这样的alpha不可用。怎么解决呢
04重新输出,通道是正确的了
05nuke预合成,结果也是ok
以上两种方法,都可以顺利达到我们单独提取带有dis信息的shadow层的目的,简单便捷
下一次会和大家分享gamma和LWF等知识