您现在的位置: 博杰 >> 文章频道 >> 3 D 教程 >> 材质教程 >> MAYA教程 >> 正文
[教程] MAYA材质系统的Utilities工具简介     
[教程] MAYA材质系统的Utilities工具简介
[ 作者:佚名 | 转贴自:本站原创 | 点击数:5367 | 更新时间:2006-12-20 | 文章录入:liubo ]

颜色工具节点
   Blend Colors:Blend Colors节点混合Color1和Color2的颜色,它根据Blender参数控制混合的程度。Blender参数的值的范围是0——1。当Blender=1时,输出Color1;当Blender=0时,输出Color2。Blend Colors节点的工作原理如下:
   Output = Color1*Blender + Color2 * (1 - Blender)比如我们可以利用Blend Colors节点在纹理上加一行字,Color1是文字纹理,Color2是背景纹理。而Blender参数由文字纹理的Alpha通道连接。如图。(图片是Luis幻想画中的那个著名的女孩儿)

   Clamp:Clamp节点用来将某一颜色值保持在指定的范围内。Clamp节点的运算方法可以从下面这个例子来理解。
假设Clamp节点的InputR被连接,我们设置MinR=0.3,MaxR=0.6,那么Clamp节点的输出为:
   InputR: 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
   OutputR: 0.3 0.3 0.3 0.4 0.5 0.6 0.6 0.6 0.6

   Contrast:Contrast节点可以改变纹理的对比。参数的解释如下:
   Value
   Color或者Texture的输入口;
   Contrast
   调整对比的程度,可以单独调整R、G、B通道。
   Bias
   Bias参数的值也可以单独调节R、G、B通道,Bias参数可以理解成中间色,当Contrast增加时,Bias参数增加图像将会变暗。
   Gamma Correction:Gamma Correction节点可以校正Color或Texture的伽玛值。
   Hsv To Rgb和Rgb To Hsv一看就明白,在HSV模式和RGB模式之间转换。那么这两个节点有什么用?下面用一个极为常用的铬金属材质来解释一下。创建一球体然后指定一Blinn材质,Blinn的主要参数设置为:Color为黑色;Diffuse=0;Eccentricity=0.025;Specular Roll Off=1;Specular Color为白色;Reflectivity=1。
   创建一EnvBall环境节点;创建一Ramp节点;创建一rgbTohsv节点;再创建一file纹理节点,然后指定一反射贴图。节点连接情况如下:File.outColor输出到rgbTohsv .inRgb;rgbTohsv.outHsvH输出到Ramp..uCoord;rgbTohsv.outHsvV输出到Ramp..vCoord;Ramp.outColor输出到envBall.imgae;envBall.outColor输出到Blinn.Reflected Color。Ramp的颜色设置如图,最后渲染场景。

 Luminance:Luminance节点将颜色转换为灰度。
   下面的例子解释Luminance节点的作用。建立一个球体并指定一Blinn材质。再建立一个Luminance节点;建一bump2d节点;建一grid节点;建一fractal节点。连接方法如下:
   fractal.outColor到grid.fillerColor;grid.outColor到luminance..value;luminance.outValue到bump2d.bumpValue;
bump2d.outNormal到Blinn.normalCamera。因为grid的outColor不传递fractal的颜色,所以应该将fractal的颜色和grid的颜色通过luminance节点转为灰度,再送入bump2d节点。效果如图。

   深入了解Hsv To Rgb和Rgb To Hsv。有朋友捎话说有上面那个Hsv To Rgb和Rgb To Hsv节点工具节点讲得不是很清楚。下面我选择一个小例子,可以更清楚地理解Hsv To Rgb和Rgb To Hsv节点的用途。以后的教程我也许会用更多的实例深入理解一下MAYA的这些工具。
   这个样例的目的是设计一个材质,并且我们可以用HSV方式随意控制最后的渲染效果。首先做一Plane然后指定一lambert材质。建立一个file纹理;建立一个Rgb To Hsv节点;建立一个Hsv To Rgb节点;建立一个setRange节点。
   材质的连接方法如下:
   file.outColor到rgbToHsv.inRgb;RgbToHsv.outHsv到setRange.Max;setRange.outValue到hsvToRgb.inHsv;hsvToRgb.outRgb到lambert.Color,给lambert材质添加三个自定义属性:
   Hue:最小值=0、最大值=255、缺省值=128,float;
   Saturation:最小值=0、最大值=255、缺省值=128,float;
   Value:最小值=0、最大值=255、缺省值=128,float;
   然后将Hue、Saturation、Value分别连接到setRange的ValueX、ValueY、ValueZ上。将setRange的OldMaxX、OldMaxY、OldMaxZ都设置为255,OldMin和Min都为0。
   用IPR渲染场景,你会发现,我们随意更改Hue、Saturation、Value的值就可以改变贴图的色相、饱和度和亮度。解释一下这个材质的实现原理:
   通过前面的教程我们知道,Set Range节点是将Old Min到Old Max范围之间的值,重新映射到Min到Max的范围内。三个通道分别代表着R、G、B。
   将file.outColor通过rgbToHsv节点转换为H、S、V模式,然后送入setRange节点里,这时,setRange节点的通道从左到右就等于代表H、S、V。所以我们用lambert材质的三个自定义属性分别控制setRange节点的Value值,就可以改变最后渲染结果的H、S、V。
   因为lambert.Color要接受RGB模式的颜色,所以我们又通过hsvToRgb节点将已经变为HSV模式的颜色转换为RGB模式的颜色。
   MAYA材质系统确实具有极大的灵活性,在MAYA中,现成的东西不是太多,但它给我们提供了思想、工具、空间并指明了道路。古人说过,“受之以鱼不如授之以渔”,我以为MAYA正象一位导师,教我们方法而不是替我们写作业。

材质的连接方式如图。

   Hue=128;Saturation=128;Value=255。这是贴图按原来颜色正常渲染的效果。

   Hue=0;Saturation=128;Value=255。

 Hue=255;Saturation=128;Value=255。

   File.outColor输出到rgbTohsv .inRgb;rgbTohsv.outHsvH输出到Ramp..uCoord;rgbTohsv.outHsvV输出到Ramp..vCoord。
   深入了解vectorProduct节点
   这是从国外网站下载的一个材质,设计得极为精巧,是用来模拟全局光效果的,我稍微添加了一点儿内容。建立一个球体并指定一lambert材质,在相机的左侧面打一方向光。再建立两个vectorProduct节点;建立一个setRange节点;建立一个ramp节点。建立一个sampleInfo节点。
   连接方式如下:
   sampleInfo.normalCamera到vectorProduct1.input1;
   vectorProduct1.output到vectorProduct2.input1;
   vectorProduct2.output到setRange.value;
   setRange.outValueX到ramp.vCoord;
   setRange.outValueZ到ramp.uCoord;
   ramp.outColor到lambert.ambientColor
   设置方式如下:
   vectorProduct1的操作方式为Vector Matrix Product;
   vectorProduct2的操作方式为Dot Product;
   setRange的Max、OldMax都设为1;
   给lambert添加三个自定义属性:
   X_Light:最小值为-1、最大值为1、缺省值为0;
   Y_Light:最小值为-1、最大值为1、缺省值为0;
   Z_Light:最小值为-1、最大值为1、缺省值为0;
   lambert的自定义属性连接方式如下:
   lambert. X_Light到vectorProduct2.input2X;
   lambert. Y_Light到vectorProduct2.input2Y;
   lambert. Z_Light到vectorProduct2.input2Z;
   ramp的Color0为白色,Color1为黑色,Color2删除。

当改变X_Light、Y_Light、Z_Light的值时,就会驱动vectorProduct2的input2的相应参数。这时,可以控制场景中的球体任何方向的受光程度。注意场景中只有左上方一个光源。建议初学者认真做一下。

 

   对于在本教程的学习中遇到任何疑问或有更好的建议,请到技术论坛讨论。

上一篇文章:没有了
下一篇文章:[教程]  车灯材质的制作
发表评论 | 告诉好友 | 打印此文 | 关闭窗口
热门文章
 
推荐文章
 
相关文章
· [教程]Smart3D系列教程[2281]
· [随笔] 故宫保护总体规划2…[2983]
· [知识] 建筑动画知识大全[3607]
· [流程] 建筑动画的制作流程…[2939]
· [论文] 世界上最奇怪的桥[3476]
 
· [教程]Smart3D系列教程[2281]
· [论文] 流动城市:超低成本…[2915]
· [浅谈] 浅谈住宅小区规划中…[2642]
· [教程] 3D教程-建筑漫游设…[3300]
· [访谈] 城市建设要注重保护…[2475]
  · 没有相关文章
网友评论 只显示最新10条。评论内容只代表网友观点,与本站立场无关!
    没有任何评论
查看关于此文章的所有评论