Bump 2d
Bump 2d节点用来转换一个2D Texture在表面上产生凹凸效果。用前面提过的方法可以很轻易地做出凹凸效果来。
有必要提的是,如果材质上要有混合两种以上的2D texture的凹凸效果时,如何来实现这种材质外观?Maya4.0的Help里讲述了方法。这里用一个样例简单介绍一下。
1、建立两个2D Texture,一个是Cloth,一个是Fractal;
2、建立两个Bump 2d节点和一个Blinn材质;
3、将Cloth1的outAlpha连接到Bump 2d1的bumpValue上,并将Bump 2d1的outNormal连接到Blinn1的normalCamera上。
4、同样,将Fractal1的outAlpha连接到Bump 2d2的bump Value性上,并将bump 2d2的outNormal连接到bump 2d1的normalCamera上。
5、把Blinn1指定给所需要的物体对象。
还有一个问题就是:如果同时指定了Bump贴图和环境贴图(Environment Texture)到物体后,你会发现由环境贴图生成的反射会不真实。原因是Bump贴图的信息没有传递到环境贴图上。有两种方法来解决:一是用鼠标拖放操作将Bump贴图的outNormal属性连接到环境贴图的normalCamera属性上;二是利用Maya提供的一个MEL命令来实现,在命令行中输入以下命令:
cnctBumpProjNormal shader-name
其中shader-name是材质的名称。
Bump 2d节点还有两个参数是Adjust Edges和Provide3d Info。
Adjust Edges用来改善边界效果。缺省情况下,在两个相接地并指定了Bump贴图的表面之间的接缝处渲染后会有一些杂乱,打开Adjust Edges选项后可以解决这个问题。
如果在一个材质网络中,凹凸效果由一个2D Texture和一个3D Texture嵌套生成,那么应该打开Provide3d Info选项,这样,3D Texture的效果才能实现。
Bump 3d
Bump 3d节点的使用方法和Bump 2d节点基本一样,所不同的是Bump 3d节点是用来转换一个3D Texture在表面上产生凹凸效果。
Condition
Condition节点的原理可以按以下形式写出:
If ( A operation B )
Outcolor = Color1
else
Outcolor = Color2
Condition节点输出的颜色值是根据预定的条件产生的。Condition节点通过比较A值与B值来发现A值是否大于、小于、等于、不等于、大于等于或小于等于B值,如果条件为真,则Outcolor输出Color1;否则,Outcolor输出Color2。
如果懂一点编程的常识,就不难理解Condition节点的原理。
Condition节点总是和其它节点结合使用,它可以使Shader网络在一种情况下用一种形式工作,而在另一种情况下用另一种形式工作。
Condition节点的这种智能性的可以自动判断的工作方式极具灵活性,在设计材质时非常有价值。
Light Info
Light Info节点在某种角度上说,其功能有点儿象Sampler Info节点。Sampler Info节点提供物体表面的信息,而Light Info节点提供场景中灯光的信息。
Light Info节点需要嵌套在其它节点中起作用,主要提供灯光的位置、方向和距离等灯光信息。
下面的一个简单样例可以感性地理解一下Light Info节点的作用:
1、建立一个Nurbs Plane并进行缩放操作使其与Maya透视视图中缺省的Grid差不多大小;
2、建立一个Spot Light并调整位置和角度:
3、选择Spot Light,按Ctra+A叫出属性编辑器,在Light Effects部分,单击Intensity Curve旁边的Create按纽。则Maya创建了一个强度曲线节点,并把它连接到Intensity上。
4、选择Spot Light,在Hypershade中显示出上、下游节点,可以看到刚才的操作创建了两个节点,一个是Light Info节点,一个是IntensityCurve节点。Maya的这个功能允许用户使用强度曲线来创建自定义的亮度衰减。
5、在Hypershade中选择spotLightShape1节点,打开Graph Editor,可以看到方才创建的强度曲线。在这里,可以自由地编辑灯光的强度。为了容易理解和简化操作,删除中间的所有编辑点,只保留首尾两个编辑点。
6、这里X轴为取样距离,Y轴为灯光的强度。将末尾的编辑点Y轴的值设为1,开始的编辑点Y轴的值设为2。利用Maya的IPR渲染场景,以便在改变强度的数值时,可以在渲染视图中实时地看到调节后的效果。
这个节点网络的连接情况是这样:
spotLightShape1.worldMatrix[0]输出到Light Info.worldMatrix;
Light Info.sampleDistance输出到IntensityCurve.input;
IntensityCurve.output输出到spotLightShape1.intensity。
Multiply Divide
Multiply Divide(乘除)节点有三部分——两个Input属性和一个Operation(操作)选项。Operation选项给Input1和Input2提供Multiply(乘)、Divide(除)或者Power(幂)的运算规则,然后通过Output将运算的结果输出。
不同的运算规则产生的结果可以用以下的公式解释:
Multiply
OutputX = Input1X *Iinput2X
OutputY = Input1Y * Input2Y
OutputZ = Input1Z * Input2Z
Divide
OutputX = Input1X /Iinput2X
OutputY = Input1Y / Input2Y
OutputZ = Input1Z / Input2Z
Power
OutputX = Input1X Iinput2X
OutputY = Input1Y Input2Y
OutputZ = Input1Z Input2Z
需要注意的是Multiply Divide节点不能进行矢量运算,如果需要进行矢量运算,应该用的是Vector Product节点。
Plus Minus Average
Plus Minus Average节点顾名思义,是对Input属性列中进行Plus(加)、Minus(减)和Average(平均值)运算。Plus Minus Average节点有一些区别于其它工具节点的特性。
首先,它可以输入多个连接;
其次,Plus Minus Average节点的Input1D、Input2D和Input3D部分的输入值必须分别是相对应的一个值、两个值和三个值。比方说,要把“Stucco”的Outcolor输入到Plus Minus Average节点中,应该连接到Plus Minus Average节点的Input3D中,而不是Input1D和Input2D。因为“Stucco”的Outcolor包括Outcolor R、OutcolorG和OutcolorB三个值。
Projection
Projection节点应用频率很高,通常是用来把2D Texture投影到3D表面上。这个节点原理比较容易理解,和其它三维软件的同类功能相近,很容易掌握,这里不过多解释。
Stencil
Stencil节点可以用来创建诸如酒瓶上的标签这样的效果。因为Stencil节点的Mask(遮罩)能非常有效地控制表面纹理哪一部分是透明的。值得一提的事Stencil节点甚至还能对表面纹理根据进行抠像。Stencil节点有它自己独特的合成材质的作用。
Reverse
在某些情况下,可能需要将材质或纹理的效果反转,Reverse节点可以提供这种能力。Reverse节点的原理可以用如下公式表示:
Output = 1 - Input
用实际例子似乎更能提高兴趣。
现在来制作一个卡通材质来理解MAYA的材质系统的能力。这个材质是在国外网站上下载的,好象有人写过类似的教程。我理清了一下思路。
首先,建立以下几个节点:
一个Blinn材质(不要带Shading Group);
一个Surface Shader节点(带Shading Group);
一个Ramp节点(不要带Placement);
一个SampleInfo节点;
一个Clamp节点;
一个Condition节点。
我们用Blinn控制场景物体上的高光区域。将Blinn的Color设置为灰度。
场景对象的颜色用Ramp的颜色队列(我是指Ramp上的颜色标签)来实现。Blinn将通过后面要讲到的方法将它的灰度值重新映射到Ramp的Color中,以达到控制Ramp的强度的目的。
SampleInfo是用来实现卡通材质的“勾边儿”效果的。
将Blinn的OutColor连接到Clamp的Input属性中。
Clamp节点的作用是将某个值控制在一定的范围内。
在这里是准备将最后的强度值减到不大于1。在实际渲染结果中,有些高光区域也许会过于“白”了,为了事先准备好,这里设置一个Clamp节点,可以去掉多余的强度。
将Clamp的MAX文字框中的R值设为1,就是最左边的那个。
Clamp节点属性面板中的Min、Max和Input的文字框从左到右分别代表R、G、B。因为单独一个通道就可以表现强度值,所以这里不妨选择R,选择别的也可以。MinR的值为0,
MaxR的值为1。
这样,Blinn Color的颜色强度(注意现在为灰度)被Clamp控制在0——1之间。
本文引用地址:
http://www.cgchina.com/article/2007/0210/article_5104.html