
导言:
本教程为大家讲解,使用Maya模拟光线追踪阴影的制作方法,制作方法比较简单,非常实用,希望对大家有所帮助。
下面教程开始
在用Maya默认渲染器渲染投影的时候,我们可以设置两种阴影类型,分别是Depth Map Shadow 和Raytrace Shadow,Raytrace Shadow 是基于真实的光学物理运算得到的,但是计算速度很慢,Depth Map Shadow虽然渲染速度很快,但是不能很好的表现体积光源投射的阴影,比如一盏面光灯的阴影。
我们观察这样的阴影有其独特的特性,即从物体和地面的接触点开始,阴影是由实到虚变化的,如下图所示,我们可以看出两种阴影的明显区别。这个教学介绍一种可以用Depth Map Shadow方式来模拟真实阴影变化的方法。(图01)

图01
第一步
打开场景,或者我们参考上图制作一个相似的场景。分别在三个关键位置创建三个Locator,如图命名为Lightlocator、Startshadow和Endshadow,分别代表灯光的空间位置、阴影的开始位置和阴影的结束位置。(图02)

图02
#p#e#
第二步
将三个Locator用鼠标中键从Outliner窗口拖至Hypershade窗口中,同时创建两个DistanceBetween节点,如图链接,以计算射灯和两个Locator的距离值。(图03)

图03
第三步
继续创建PlusMinusAverage和MultiplyDivide两个节点,利用PlusMinusAverage求上图中1和2的差值。而MultiplyDivide节点则输出数值提供给下一步的计算,连接方法如下图所示,PlusMinusAverage的计算方式选择为Subtract减法计算。 这样我们可以计算出两个距离差值。MultiplyDivide节点是为后面的计算作准备。(图04)

图04
第四步
下面我们创建一个LightInfo节点,链接方式如图所示,通过这个节点的SampleDistance属性我们可以得到主灯到被作用物体的采样距离,这个值是一个随着物体位置上采样点不同而变化的值,同时再链接一个PlusMinusAverage节点,为后面的计算做准备。(图05)

图05
#p#e#
第五步
把这两部分节点群链接如下图所示。MultiplyDivide节点设置为Divide除法计算。这样我们可以把Lightlocator到Endshadow和到Startshadow的距离差值,通过SampleDistance得到的灯光采样距离进行计算,由于SampleDistance是一个变量,所以这个比值也是一个变化的数值。(图06)

图06
第六步
创建两个Remp节点,通过上面得到的数值来控制灯光投影的属性,链接方法如下,我们创建的Clamp节点的作用是截取了一段数据,这段数据的范围被设置成0到1,以此来控制Ramp节点的vCoord属性。(图07)

图07
#p#e#
第七步
如图调整Ramp的颜色分布来控制灯光的阴影深度分布和阴影的。(图08)

图08
第八步
通过参数调整得到比较好的测试结果,如下图所示。(图09)

图09
此练习的基本原理是:用主灯和地面投影范围起始结束点的距离差值与用LightInfo采样得到的数值之间的比例关系,来控制阴影的分布。模拟出了类似Raytrace Shadow的效果,虽然节点有点复杂,但是渲染速度飞快。希望本教程能给大家带来帮助。
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答可灵年化5亿美元谷歌带队出海安徽举办省级漫剧大赛AI设计日报0623
可灵正推进从快手分拆独立运营,内部方向为2027年初递交港股上市申报 来源:上海证券报(2026-06-17) AI短剧"产......
火星时代
腾讯又放大招这款AI工具让游戏美术效率提升300是真革命还是噱头
但对于追求极致细节的资深原画师来说,自动化程度高也意味着部分控制权让渡,需要适应 实测体验:响应速度确实惊艳,比传统生图的等待......
2026年,AI短剧早已不是"写一段提示词等生成"的粗放阶段真正拉开差距的,是谁先把从立项到出片的整套工业化流程跑通 过去做A......
什么是负面提示词? 在AI绘画中,我们通常用正向提示词告诉模型想要什么——比如"一个穿红色连衣裙的女孩站在海边"这时候你需要一......
做AI漫剧最头疼的是什么?不是剧情写不好,不是场景出不来——是角色脸上的表情 想写角色开心,只会一句"他开心地笑了";想写难过......
同学您好!