当前位置导航:炫浪网>>网络学院>>图形图像>>MAYA教程

Maya Fake 教程之-阴影灯光篇

先欣赏最后的效果图:

1、 基本场景角色,地面和一盏平行光(Depth Map Shadows),Resolution: 512

2 先对比图吧,地面是10倍,30倍, 80倍,阴影贴图的变化;

3 、解决:进入灯光属性如下调整,基本解决了问题。

4、可是如果对象不是一个呢,问题还是存在。

5 、是否在大场景中贴图阴影(Depth Map Shadows)就无法用了呢?现在我们来尝试一种全新的概念来解决。关掉现在这盏平行光的阴影贴图建立新的spot灯光,方向调整到于平行光相同。(也可以建立orientConstraint,来约束新创建的spotLight)

6、 对spot进行调整,先取消Use Auto Focus ,调整 Focus和Cone Angle相同;

7 、调整灯光角度,能看到主角为好。

8 、渲染测试,投影非常理想,除了多了个聚光灯的光圈。

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吧,

享受他的快捷和直观。

相关内容
赞助商链接