Maya渲染教程之-阴影灯光篇
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Maya 渲染教程]Maya Fake 教程之-阴影灯光篇<一>先欣赏最后的效果图:
1、基本场景角色,地面和一盏平行光(Depth Map Shadows),Resolution: 512
2 先对比图吧,地面是10倍,30倍, 80倍,阴影贴图的变化;
[Maya 渲染教程]Maya Fake 教程之-阴影灯光篇<二>接[Maya 渲染教程]Maya Fake 教程之-阴影灯光篇<->:
9 、复制这盏spotLight,将它的阴影关掉
10、将复制的灯光强度调整为 -1,渲染测试;耀眼的强光没有了,投影非常理想;
11 、同样复制上述两盏spotLight为其他的角色打光:
12 、渲染测试:
13、思路:
由于阴影贴图的尺寸是投影质量的关键,我们如此可以避开大尺寸的阴影贴图,提高渲染时间,同时又可以保证投影的质量。
在动画时只要将上述的灯光成组,跟随角色移动就好了。
例如在大场景奔跑的人物,快速飞驰的车辆等等,在大场景中的一切一切。
思路有了,在用的时候每次总要执行上述操作显然是比较浪费时间,我们用MEL来继续完成这个工具。
这是我已经完成的脚本核心内容
///////////////////////////////////////////////////
string $soliSpot = "soliSpot" ;
string $SpotL = `shadingNode -asLight spotLight` ;
//建立第一盏灯光
string $shape[] = `ls -dag -sl` ;
setAttr ($shape[0]+".dms") 1 ;
//打开阴影属性
setAttr ($shape[0]+".useDmapAutoFocus") 0 ;
//关掉自动适应阴影贴图
string $Spotf[] =`duplicate -rr` ;
//复制灯光
parentConstraint -mo -weight 1 $SpotL $Spotf[0];
//进行约束控制
scale 0.5 0.5 0.5 ;
//放缩反向的灯,以方便观察
setAttr ($Spotf[0]+".dms") 0 ;
setAttr ($Spotf[0]+".overrideEnabled") 1;
setAttr ($Spotf[0]+".overrideDisplayType") 2;
//关掉阴影,制作成模板,使其不能被选择
//以免误操作
string $shape1[] = `ls -dag -sl` ;
string $connectAttr;
$exp1 = ($shape[0]+".df"+"="+$shape1[1]+".df"+"="+$shape1[1]+".ca"+"="+$shape[0]+".ca;"); $exp2 = ($shape1[1]+".in"+" = -"+$shape[0]+".in;") ;
expression -s ($exp1 + "\r"+$exp2 );
//用表达式控制两盏灯的关联关系
$connectAttr ="connectAttr -f "+$shape[0]+".color "+$shape1[1]+".color";
eval($connectAttr);
//进一步的属性链接
//使得,大多数操作,可以关联
select $SpotL ;
//选择主灯,方便视图调整。
///////////////////////////////////////////////////
以下是我原创的完整脚本工具
spotL.mel (1.97k)
14 、脚本的信息:
脚本spotL暂时没有用户界面,其实也不需要,只要在命令行执行"spotL",即刻得到阴影灯。
阴影灯对于场景不提供照明,只提供阴影。
如果场景中只有阴影灯是渲染不出物体的。
脚本将阴影灯的大小进行了放缩,方便观察。
关掉了对于反向辅助灯的操作,因为此时大多数的操作都可以关联的。
如果删除了阴影灯的主灯,只需稍稍拨动时间线,或是再次渲染即可删除相应的辅助灯。
无需担心场景的多余垃圾。
但是阴影灯的组会保留,清理场景即可。
脚本适用于支持maya的所有渲染器,且都有非常好的渲染速度。
如此,再大的场景我们也不怕了,放心大胆的用Depth Map Shadows吧,享受他的快捷和直观。