maya 制作水的涟漪效果
在这一课中,你将会学到如何制作水面上相互交错的涟漪。这里用了多个水的纹理。这些纹理被分层次的提供给 bump node 来产生涟漪。通过把纹理指定给 color offset 来产生水面上的涟漪。这篇论文是先前一篇论文( texture mapping aoffsets" by erik noteboom, alias assistant, lssue#14) 的提高篇。步骤1
打开 hypershade 窗口,建立一个 blin 材质接点
打开 blin 的属性编辑器。
设置 color =light blue
指定一个 water texture=bump mapping
把这个纹理更名为 ripple.
步骤2
建一个 nurbs plane ,缩放他使他和透视图中网格大小差不多。
加一盏方向光使之能照亮平面。 指定 blin 给平面。
步骤 3
在 ripple 的属性编辑器设置如下:
wave amplitude =0.0
ripple amplitude =4.0
spread rate = 0.5
这是主要的水的纹理,其他的水的纹理将加到 color offset 属性中。
步骤 4
要让涟漪动起来,你还需要在 ripple time 属性中加关键帧。
确信 timeslider 在第一帧, 在 ripple 贴图的属性编辑器中,设置 ripple time 为 0
使用 鼠标右键设置关键帧。移动时间滑条到 40 ,将 ripple time 设为 1 。
步骤 5
现在复制带有动画的 ripple 纹理。选择 hypershade 窗口中的 ripple 结点。执行 edit%26gt;duplicate%26gt;shading network. 把这个纹理改为 ripple1. 这样就建立了一个新的水的节点。
步骤 6
在 ripple1 的属性编辑器中,改变 ripple origin = 0.2 and 0.3, 最后用鼠标中键拖动 ripple1 到 ripple 上,在弹出的菜单中连接到 color offset 上,注意在 hypershade 中水的纹理发生的变化。 在这你会发现原来的纹理变白了,这是因为 color offset 是用来增加颜色的。把一个纹理赋给他,实际上也给他加了更多的颜色,结果产生的白色的效果。 这时的 bump 还在,尽管你看不到他。
注: 看到了 hypershade 窗口中原来的水纹理所发生的变化,你也可以用 ramp 重新设置原始水纹的颜色。
步骤 7
重复上面的步骤再生成两个水的纹理,将他们的名字变为 ripple2 和 ripple3. 连接 ripple2 到 ripple2 的 coloroffset 上。
把 ripple2 的 ripple origin 改为 0.4 and 0.4, 把 ripple3 的 origin 改为 0.3 and 0.5
步骤 8
在 hypershade 窗口中,选择 ripple3 texture ,选择 window%26gt;animation editors%26gt;graph editor, 按下 w 键,选择移动工具。在曲线上面敲下选择他,按住左键不放配合 shift 键,向右移动曲线使最后的一个关键帧在 70 附近。
依次类推, ripple2 和 ripple1 的最后一帧,设为 60 , 55 左右。
步骤 9
渲染场景,你会看到只有 ripple 渲染出来了,而其他几个水纹并未看到,产生这种效果的原因是 bump node 使用了没有被提供的 alpha 信息。在前面,你只提供了颜色信息。你需要使用颜色信息来提供给 bump 信息。
实现这一步⒁桓?luminace node (在 hypershade 窗口中 utilites menu 下面),点亮 ripple 和 bump node 结点之间的连接删除之, 将 ripple 拖到 luminace node 上,连接 ripple.outcolor 到 luminance.outvalue 到 bump.bumpvalue 上, 然后在拖 luminance 到 bump node 上。连接 luminance.outvalue 到 bump.bumpvalue. 上。
最终结果。
在几个不同的帧,测试渲染场景。你会看到这些涟漪。你也可以通过增加 ripple amplitude 的植来建立涟漪。
给一个纹理的 coloroffset 指定另一种纹理。这也为分层纹理提供了一种手段。能够最好的使用 bump 贴图。你需要使用一个 luminance node 来完成这个结果。
另一个方法是连接纹理的 outalpha 到 alpha offset 以保持 alpha 信息。直接连接到 bump node 上,
把 luminance node 省略了。
|