| 设为首页 加入收藏 联系站长 网络游戏卡 |
|
| 网站首页 | 文章中心 | 图片中心 | 下载中心 | 设计动态 | 平面设计 | 三维/视频/动画 | 网页制作 | 数码科技 | | |
| 您现在的位置: 卓越设计网 >> 三维/视频/动画 >> 三维/视频/动画正文 |
|
|||||
| 在Maya中模拟水面 | |||||
| 作者:佚名 三维/视频/动画来源:本站原创 点击数: 更新时间:2005-5-3 | |||||
|
一:引言 也许在Maya中最能令人信服地模拟出真实水面的方法是使用置换贴图的方法,通过在一个模型平面上使用水波纹贴图来进行置换贴图计算可以得到非常真实的效果。但是这种方法是很耗费渲染时间的,在很多的场合下显得不太实用。 在这篇文章中将要介绍的方法也许并不能产生超真实的水波图像,但是对一些要求较低的具有滚动波浪的镜头来说,却是一个很不错的替代方法。由于这里使用的是Maya的粒子系统,所以整个的设置、调整以及预览水波运动的过程非常的简单而快捷。 尽管我还没有使用这种方法来模拟一些更精致的流体动力学效果,比如水面在波峰的处的碎裂等,但是可以肯定地说,使用这种方法是可以做到的。 二:动力学的设置 首先创建一个具有较高密度的NURBs平面,使其在U和V方向上的Patches U 和Patches V参数为50,因为NURBs平面的密度越高,最终水波图像的波纹越细致。 ![]() 资料来源:http://renderfast.com/tutorials/water/ 一:引言 也许在Maya中最能令人信服地模拟出真实水面的方法是使用置换贴图的方法,通过在一个模型平面上使用水波纹贴图来进行置换贴图计算可以得到非常真实的效果。但是这种方法是很耗费渲染时间的,在很多的场合下显得不太实用。 在这篇文章中将要介绍的方法也许并不能产生超真实的水波图像,但是对一些要求较低的具有滚动波浪的镜头来说,却是一个很不错的替代方法。由于这里使用的是Maya的粒子系统,所以整个的设置、调整以及预览水波运动的过程非常的简单而快捷。 尽管我还没有使用这种方法来模拟一些更精致的流体动力学效果,比如水面在波峰的处的碎裂等,但是可以肯定地说,使用这种方法是可以做到的。 二:动力学的设置 首先创建一个具有较高密度的NURBs平面,使其在U和V方向上的Patches U 和Patches V参数为50,因为NURBs平面的密度越高,最终水波图像的波纹越细致。 ![]() 以上操作会在场景中创建出一个与baseWater一样的NURBs平面,但是这个新的NURBs平面上的每一个控制顶点都将被粒子所控制,将这个新的NURBs平面命名为:water。 打开Outliner,在Outliner窗口中展开water栏目,可以在其下面看到一个与之相连的粒子节点,就是这个粒子节点被用来控制整个平面。将这个粒子节点命名为:waterParticles。 ![]() 现在,选择这个waterParticles节点,执行菜单命令Fields>Turbulence,创建一个湍动场,设置这个湍动场的magnitude属性为40,Attenuation属性为0。 现在播放动画进行动力学模拟,此时应可以看到粒子会产生移动并带动NURBs平面产生变形。可以试着进行若干次这样的模拟,直到NURBs平面变成一个完全紊乱的水波表面并具有合适的波高和波谷,然后停止动画模拟。在模拟过程中可以调节湍动场的magnitude属性值或者waterParticles的Goal Weight值,以得到满意的波浪尺寸。 ![]() 现在,选择这个waterParticles节点,执行菜单命令Fields>Turbulence,创建一个湍动场,设置这个湍动场的magnitude属性为40,Attenuation属性为0。 现在播放动画进行动力学模拟,此时应可以看到粒子会产生移动并带动NURBs平面产生变形。可以试着进行若干次这样的模拟,直到NURBs平面变成一个完全紊乱的水波表面并具有合适的波高和波谷,然后停止动画模拟。在模拟过程中可以调节湍动场的magnitude属性值或者waterParticles的Goal Weight值,以得到满意的波浪尺寸。 ![]() 首先打开Hypershade窗口,创建一个Blinn材质,将颜色(color属性)调整为深蓝色,给它一个较高的diffuse属性值0.8,较低的Eccentricity属性值0.1,以及一个较高的specular rolloff属性值8.0(以上的这些设置是一些高反射物质表面,向金属、水面的的典型设置),此外,我将高光颜色调整为稍微有一些发蓝,让水面产生一种深蓝色的,具有冷色调的冰一样的质感。将这个Blinn材质命名为:waterDepthBlinn,稍后,这个材质将要被放置到层材质中的底层。 将一个2维fractal程序纹理节点映射到waterDepthBlinn材质的凹凸贴图(bump)属性之上,我将2维fractal程序贴图的amplitude属性调节得很低,大概为0.4左右,而它的frequency ratio属性则设置得很高,大概为6.0左右,这样能够从中得到更多的细节。另外,我还将它的minimum levels和 maximum levels相应地调节为4.0和15.0,这2个属性用来控制在生成fractal程序纹理时的递归计算次数。 使用上面的2维fractal程序纹理节点是为了模拟水面上比较细碎的水波纹,它们会将照射到水面上的光线发散开来。在真实的世界中,这些细碎的水波纹会保持一种持续的运动状态,为此,我使用了一个非常简单的表达式来控制这个2维fractal程序纹理节点的时间(time)属性。 在这个2维fractal程序纹理节的属性编辑器中,勾选Animated选项,在time属性名称上用鼠标右健点击,在弹出菜单上选择Create Expression,打开表达式编辑器,并输入fractacl1.time += 0.002;如下图所示。 ![]() 这个简单的表达式的含义是,随着时间轴上的每一帧,将变量fractacl1.time的取值增加(+=)0.002。这种控制时间变量的方法与传统的做法稍微有些不同,传统的做法是将fractacl1.time节点与time1节点的“out”time变量连接起来。但是我所使用的这个方法会使调节水波纹运动的工作更加容易一些,只需简单地调整这个时间增量即可。 现在如果播放动画进行模拟,就可在Hypershade窗口中看到fractal程序纹理的更新情况,也可以看到,随着动画的播放,纹理的形态随着时间发生缓慢的变化。 接下来要进行顶层材质的制作。 这个材质我使用了www.highend3d.com网站上的Antarctic Water v1.0材质shader。使用这个shader的好处是它使用了环状的ramp纹理来控制材质的透明度属性和颜色属性,使得最终的模拟结果会随着摄像机距离的远近产生非常好的颜色改变。另外这个shader本身还使用了一个brownian程序纹理来映射凹凸贴图属性,这与前面我们创建的那个高频率的fractacl纹理可以很好地符合起来。 对于这个Antarctic Water v1.0材质shader,我做了最大改动的地方是将一个环境天空(environment sky)节点映射到这个材质的reflected color属性之上,这样做可以使水面的蓝颜色产生变化,提高反射高光的白颜色,使得水面看上去更加“湿”。下图中是我对environment sky节点所做的设置。 ![]() 将以上设置完成以后,将其命名为:waterSurfaceBlinn。现在要做的就是用层材质shader将上面两个材质shader结合起来。 创建一个层材质shader,将它命名为waterLayeredShader,在Hypershade中讲这几个节点排列布置起来,以方便操作。 在层材质waterLayeredShader的属性编辑器中创建两个新层,将waterSurfaceBlinn托拽到color属性上,Maya会自动为它们建立连接;将aterDepthBlinn的outcolor属性连接到waterLayeredShader.inputs[2]color属性之上;将ramp2节点的outColor属性连接到waterLayeredShader.inputs[1]transparency属性之上。其中层材质中的透明度区域的含义与photoshop是一样的。最后在关闭属性编辑器窗口之前,一定要确认第2层(也就是waterDepthBlinn这一层)的透明度属性值为0,并且Compositing Flag属性设置为Layer Shaders,如下图。 ![]() 最后要做的是调整这个层材质的阴影属性,使得最终渲染出的阴影正确无误。选择两个水面waterDepthBlinn和waterSurfaceBlinn材质中的一个,将它的out Matte Opacity R属性连接到层材质waterLayeredShader的Matte Opacity属性之上,否则的话,渲染出来的阴影通道将会使用层材质的全黑设置。 至此全部过程结束,将这个层材质waterLayeredShader分配给场景中的水面模型,渲染,可以看到,渲染速度比使用置换贴图的方法要快很多。 |
|||||
| 三维/视频/动画录入:as8130239 责任编辑:as8130239 | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
![]() |
| 最新热点 | 最新推荐 | 相关三维/视频/动画 | ||
| |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | | |
|
|