[Maya 材质教程]MAYA材质系统的Utilities工具简介(三)
来源:vacce华设 作者: 发布时间:2007-05-31

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正象一位导师,教我们方法而不是替我们写作业。