MAYA材质系统的Utilities工具简介_第1页
MAYA材质系统的Utilities工具简介_第2页
MAYA材质系统的Utilities工具简介_第3页
MAYA材质系统的Utilities工具简介_第4页
MAYA材质系统的Utilities工具简介_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MAYA材质系统的Utilities工具简介MAYA的材质体系是非常优秀的,它把程序的逻辑思想直接体现在高效的操作中。在MAYA中编辑材质其实很象在编写一段程序。这是有别于MAX的方法。所以MAYA独特的思考方法令人难以理解。掌握MAYA的材质系统不仅仅是创造完美的shader,Maya是一个将感性和理性完美融合的动画软件,如果熟练地掌握了Maya材质编辑系统独特的工作方式,会令我们在材质的设计能力上获得巨大的技术突破。因为Maya的“Utilities”工具的能力非凡,并且要想灵活使用这些工具需要较强的逻辑能力,所以我试图把MAYA的Utilities用我自己的理解解释一下。Maya自带的Help文件非常系统和完善,是最好的学习资料。因此这里的文字和帮助内容重复是不可避免的。另:在接触三维动画软件的渲染系统时,很容易碰到“Shader”这个术语。目前国内对这个术语的翻译有很多种,比如:阴影、材质、明暗生成器等等,我自己更倾向于“明暗生成器”这种译法。常规工具节点:ArrayMapperArrayMapper节点一般是嵌入在粒子系统中用的,粒子通过ArrayMapper节点调用Maya的Texture。BumpUtilities有两种方法在一个表面上创建Bump(凹凸)效果。应用一个Bump贴图,从而在表面产生凹凸感觉。使用置换(Displacement)贴图建立凹凸感,置换贴图是真实地移动物体表面的几何结构。这两种方法各有利弊。Bump贴图渲染效率更高,但物体表面边缘实现不了凹凸效果,还有一点是Bump贴图只能创建轻微的凹凸效果,不能实现极凹凸的感觉。置换(Displacement)贴图实际上是移动物体表面的几何特性,所以是效果最真实的方法,但应用这种方法的物体的UV段数必须足够多,所以这种方法的计算量非常大,最后渲染成品的时候比Bump贴图要慢很多。Bump2d和Bump3d的公共属性BumpFilter和BumpOffset是用来改善Bump贴图的细节。如果着色后的图像中凹凸区域有明显的锯齿和闪烁,可以通过调节BumpFilter或者BumpOffset的值来改善。BumpFilter的缺省情况下值为1,当其大于1的时候,凹凸的渲染趋向于平滑;小于1的时候,凹凸的渲染效果趋向于尖锐。BumpOffset的缺省值为0,把它理解为在BumpFilter效果的基础上相对地放大更通俗一些。缺省情况下,把BumpOffset的值增加很小的一部分就能起到很大的模糊作用。要想精确地看到BumpOffset效果,可以把BumpFilter的值设为0,然后增大BumpOffset的值。BumpDepth控制凹凸效果的程度。使用Bump贴图的方法:建立一个Bump2d或者Bump3d节点,在ConnectionEditor中将Bump2d或者Bump3d节点的OutNormal连接到材质(比如:Blinn)的NormalCamera上。将Texture的OutAlpha连接到Bump节点的BumpValue上。Bump2dBump2d节点用来转换一个2DTexture在表面上产生凹凸效果。用前面提过的方法可以很轻易地做出凹凸效果来。有必要提的是,如果材质上要有混合两种以上的2Dtexture的凹凸效果时,如何来实现这种材质外观?Maya4.0的Help里讲述了方法。这里用一个样例简单介绍一下。1、建立两个2DTexture,一个是Cloth,一个是Fractal;2、建立两个Bump2d节点和一个Blinn材质;3、将Cloth1的outAlpha连接到Bump2d1的bumpValue上,并将Bump2d1的outNormal连接到Blinn1的normalCamera上。4、同样,将Fractal1的outAlpha连接到Bump2d2的bumpValue性上,并将bump2d2的outNormal连接到bump2d1的normalCamera上。5、把Blinn1指定给所需要的物体对象。还有一个问题就是:如果同时指定了Bump贴图和环境贴图(EnvironmentTexture)到物体后,你会发现由环境贴图生成的反射会不真实。原因是Bump贴图的信息没有传递到环境贴图上。有两种方法来解决:一是用鼠标拖放操作将Bump贴图的outNormal属性连接到环境贴图的normalCamera属性上;二是利用Maya提供的一个MEL命令来实现,在命令行中输入以下命令:cnctBumpProjNormalshader-name其中shader-name是材质的名称。Bump2d节点还有两个参数是AdjustEdges和Provide3dInfo。AdjustEdges用来改善边界效果。缺省情况下,在两个相接地并指定了Bump贴图的表面之间的接缝处渲染后会有一些杂乱,打开AdjustEdges选项后可以解决这个问题。如果在一个材质网络中,凹凸效果由一个2DTexture和一个3DTexture嵌套生成,那么应该打开Provide3dInfo选项,这样,3DTexture的效果才能实现。Bump3dBump3d节点的使用方法和Bump2d节点基本一样,所不同的是Bump3d节点是用来转换一个3DTexture在表面上产生凹凸效果。ConditionCondition节点的原理可以按以下形式写出:If(AoperationB)Outcolor=Color1elseOutcolor=Color2Condition节点输出的颜色值是根据预定的条件产生的。Condition节点通过比较A值与B值来发现A值是否大于、小于、等于、不等于、大于等于或小于等于B值,如果条件为真,则Outcolor输出Color1;否则,Outcolor输出Color2。如果懂一点编程的常识,就不难理解Condition节点的原理。Condition节点总是和其它节点结合使用,它可以使Shader网络在一种情况下用一种形式工作,而在另一种情况下用另一种形式工作。Condition节点的这种智能性的可以自动判断的工作方式极具灵活性,在设计材质时非常有价值。LightInfoLightInfo节点在某种角度上说,其功能有点儿象SamplerInfo节点。SamplerInfo节点提供物体表面的信息,而LightInfo节点提供场景中灯光的信息。LightInfo节点需要嵌套在其它节点中起作用,主要提供灯光的位置、方向和距离等灯光信息。下面的一个简单样例可以感性地理解一下LightInfo节点的作用:1、建立一个NurbsPlane并进行缩放操作使其与Maya透视视图中缺省的Grid差不多大小;2、建立一个SpotLight并调整位置和角度:3、选择SpotLight,按Ctra+A叫出属性编辑器,在LightEffects部分,单击IntensityCurve旁边的Create按纽。则Maya创建了一个强度曲线节点,并把它连接到Intensity上。4、选择SpotLight,在Hypershade中显示出上、下游节点,可以看到刚才的操作创建了两个节点,一个是LightInfo节点,一个是IntensityCurve节点。Maya的这个功能允许用户使用强度曲线来创建自定义的亮度衰减。5、在Hypershade中选择spotLightShape1节点,打开GraphEditor,可以看到方才创建的强度曲线。在这里,可以自由地编辑灯光的强度。为了容易理解和简化操作,删除中间的所有编辑点,只保留首尾两个编辑点。6、这里X轴为取样距离,Y轴为灯光的强度。将末尾的编辑点Y轴的值设为1,开始的编辑点Y轴的值设为2。利用Maya的IPR渲染场景,以便在改变强度的数值时,可以在渲染视图中实时地看到调节后的效果。这个节点网络的连接情况是这样:spotLightShape1.worldMatrix[0]输出到LightInfo.worldMatrix;LightInfo.sampleDistance输出到IntensityCurve.input;IntensityCurve.output输出到spotLightSensity。MultiplyDivideMultiplyDivide(乘除)节点有三部分——两个Input属性和一个Operation(操作)选项。Operation选项给Input1和Input2提供Multiply(乘)、Divide(除)或者Power(幂)的运算规则,然后通过Output将运算的结果输出。不同的运算规则产生的结果可以用以下的公式解释:MultiplyOutputX=Input1X*Iinput2XOutputY=Input1Y*Input2YOutputZ=Input1Z*Input2ZDivideOutputX=Input1X/Iinput2XOutputY=Input1Y/Input2YOutputZ=Input1Z/Input2ZPowerOutputX=Input1XIinput2XOutputY=Input1YInput2YOutputZ=Input1ZInput2Z需要注意的是MultiplyDivide节点不能进行矢量运算,如果需要进行矢量运算,应该用的是VectorProduct节点。PlusMinusAveragePlusMinusAverage节点顾名思义,是对Input属性列中进行Plus(加)、Minus(减)和Average(平均值)运算。PlusMinusAverage节点有一些区别于其它工具节点的特性。首先,它可以输入多个连接;其次,PlusMinusAverage节点的Input1D、Input2D和Input3D部分的输入值必须分别是相对应的一个值、两个值和三个值。比方说,要把“Stucco”的Outcolor输入到PlusMinusAverage节点中,应该连接到PlusMinusAverage节点的Input3D中,而不是Input1D和Input2D。因为“Stucco”的Outcolor包括OutcolorR、OutcolorG和OutcolorB三个值。ProjectionProjection节点应用频率很高,通常是用来把2DTexture投影到3D表面上。这个节点原理比较容易理解,和其它三维软件的同类功能相近,很容易掌握,这里不过多解释。StencilStencil节点可以用来创建诸如酒瓶上的标签这样的效果。因为Stencil节点的Mask(遮罩)能非常有效地控制表面纹理哪一部分是透明的。值得一提的事Stencil节点甚至还能对表面纹理根据进行抠像。Stencil节点有它自己独特的合成材质的作用。Reverse在某些情况下,可能需要将材质或纹理的效果反转,Reverse节点可以提供这种能力。Reverse节点的原理可以用如下公式表示:Output=1-Input用实际例子似乎更能提高兴趣。现在来制作一个卡通材质来理解MAYA的材质系统的能力。这个材质是在国外网站上下载的,好象有人写过类似的教程。我理清了一下思路。首先,建立以下几个节点:一个Blinn材质(不要带ShadingGroup);一个SurfaceShader节点(带ShadingGroup);一个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。这样,BlinnColor的颜色强度(注意现在为灰度)被Clamp控制在0——1之间。连接Clamp的OutputR到Ramp的Vcoord属性中,确认Ramp的模式为VTypeRamp。这样,Ramp的颜色强度可以用BlinnColor的灰度控制在0——1之间,前面说的映射就是指这个。将RampOutColor连接到Condition节点的Color1中。同样,将SampleInfo的FacingRation连接到Condition的FirstTerm中。SamplerInfo节点也是不容易理解的节点,然而,SamplerInfo节点的作用在Maya的材质编辑中极为重要,经常会用到。SamplerInfo节点必须与其它节点嵌套才能发挥作用。SamplerInfo节点主要的功用是提供物体表面上任意一点的各种空间信息,如位置、方向和相切特性等等。需要指出的是,SamplerInfo节点返回的信息是针对于“相机空间坐标”进行定位的。在Maya中,存在“相机空间坐标”和“世界空间坐标”两种概念。“世界空间坐标”和“世界空间坐标”的关系可以这样理解:假设你就是MAYA场景中的物体,有一个操作MAYA的人在显示器外面看着你。“相机空间坐标”的Z轴方向和“世界空间坐标”的Z轴方向相反。FacingRatio的值受场景物体朝向相机的表面的法线和相机目光方向之间角度的影响。值在0——1之间。如果物体表面上的某个位置的法线同相机的目光方向的角度为90度,刚FacingRatio=0;如果角度为0,则FacingRatio=1。在SurfaceShader中增加以下四个自定义属性。Thickness:最小值为0,最大值为1,默认值为0.3;LineRLineGLineB皆为Float、Scalar属性。将Thickness属性连接到Conditionr的SecongTerm中;其余的三个依次连接到Color2的R、G、B通道中。设置Condition的Operation为GreaterThan。Thickness控制最后渲染效果的“勾边儿”厚度。其余三个属性分别控制“勾边儿”的颜色。最后连接Condition的OutColor到SurfaceShader的OutColor中。这个SurfaceShader材质网络即为我们需要的卡通材质。讲一下材质的实现原理:在Condition中,如果FirstTerm(就是SampleInfo的FacingRatio)>SecondTerm(自定义的Thickness);则输出Color1(就是Ramp的颜色);否则,输出Color2(由LineR、LineG、LineB实现,这里我们用黑色)而Thickness的值可以随意更改,这样,就能控制“勾边儿”的厚度。卡通材质的颜色同Ramp来决定,卡通上色效果中不同颜色区域之间的过渡是“硬边儿”。所以要把Ramp的Interpolation设置为None。Blinn也可以给一个BumpMap看看是什么效果,也可以换一个别的材质。Ramp的设置如图:01图02材质的连接方式如图:03我用《MAYA从入门到精通》里的小狗渲染了一下。效果如图:04有朋友建议我用实例来解释各个节点的作用,这样更好理解。实际上也是这个道理,只是机械地看参数,看完了也不知道怎么用。所以以后的教程我都用实例来讲解MAYA的材质节点。MAYA的有些节点如果用语言来描述它的作用的话是非常麻烦的,远不如简单地操作几步来得直接。我准备的实例有些是从国外的网站下载的,有些是自己制作的,原则是根据内容需要来选用。所以有的内容可能会看着“眼熟”。这一节探讨BlendColor节点和surfaceLuminance节点。两个节点从字面意义上都很好理解。BlendColor节点是以Blender参数为条件,然后混合它的Color1和Color2输出。surfaceLuminance节点顾名思义,作用是解决表面受光的问题。它可以控制表面的饱和度、对比等等。首先在MAYA中生成一个简单的NurbsPlane,然后指定一个LambertShader,再指定一个file贴图。这里我用了Luis的一幅幻想画的局部。在NurbsPlane前面用一个pointLight提供照明。将pointLight的Intensity设置为3,渲染一下。我们看到渲染效果“曝光”过度了。如图:这是经常会碰到的情况,想要提高场景的照明,但离光源近的地方又会出现图中的问题05现在来解决这个问题。建立一个BlendColor节点;建立一个surfaceLuminance节点。连接情况是这样的:surfaceLuminance.OutValue输出到BlendColor.Blender;BlendColor.Output输出到file.ColorGain。并调整BlendColor节点的Color1和Color2的颜色如图:06调节一下BlendColor节点的颜色值,可以看到不同的效果。当然也可以将BlendColor.Output输出到别的参数里。07常规工具节点(续)SetRangeSetRange节点将一段范围内的值,重新映射到另一段范围内,然后输出。注意它和Clamp节点的区别,Clamp节点是专门针对颜色值的。举一个MAYA帮助中的小例子可以理解SetRange节点的作用。建立一个nurbsSphere,然后指定一个Blinn材质。生成一个SetRange节点。我们下面要做的是用nurbsSphere的X、Y、Z轴向的旋转来控制Blinn的ColorR、ColorG、ColorB。换句话说,是将0——360这一范围的值,重新映射到0——1这一范围内。打开ConnectionEditor,将nurbsSphere的RotateX、RotateY、RotateZ、分别连接到SetRange节点的ValueX、ValueY、ValueZ上。把SetRange.OutValue输出到Blinn.Color上。然后设置SetRange节点的各项值如图:现在说明一下SetRange节点的各项参数:Min和Max的值是我们所希望得到的,在这个例子里是Min=0,Max=1;而OldMin和OldMax代表原来范围的值,在这里是OldMin=0,OldMax=360。Value可以理解为输入值的接口。SetRange节点的工作原理可以由如下公式来解释:OutValue=Min+(((Value-OldMin)/(OldMax-OldMin))*(Max-Min))现在,我们旋转nurbsSphere,它的颜色就会根据旋转的方向和角度变化。08lihanfeng在MAYA中很多节点的属性在属性面板中是看不到的,要用ConnectionEditor才能看到。你打开ConnectionEditor,然后将节点导入里面,就会看到的。添加自定义属性可以在SurfaceShader的属性面板中进行,Attributes>AddAttributes。或者在菜单中进行,Modify>AddAttributes。这样会打开AddAttributes窗口,里面有很多选项。float的意思是这个自定义属性是浮点类型,你理解成小数类型就可以。Sclar的意思是这个自定义属性是标量,这些其实都是AddAttributes的缺省选项。01常规工具节点(续)SetRangeSetRange节点将一段范围内的值,重新映射到另一段范围内,然后输出。注意它和Clamp节点的区别,Clamp节点是专门针对颜色值的。举一个MAYA帮助中的小例子可以理解SetRange节点的作用。建立一个nurbsSphere,然后指定一个Blinn材质。生成一个SetRange节点。我们下面要做的是用nurbsSphere的X、Y、Z轴向的旋转来控制Blinn的ColorR、ColorG、ColorB。换句话说,是将0——360这一范围的值,重新映射到0——1这一范围内。打开ConnectionEditor,将nurbsSphere的RotateX、RotateY、RotateZ、分别连接到SetRange节点的ValueX、ValueY、ValueZ上。把SetRange.OutValue输出到Blinn.Color上。然后设置SetRange节点的各项值如图:现在说明一下SetRange节点的各项参数:Min和Max的值是我们所希望得到的,在这个例子里是Min=0,Max=1;而OldMin和OldMax代表原来范围的值,在这里是OldMin=0,OldMax=360。Value可以理解为输入值的接口。SetRange节点的工作原理可以由如下公式来解释:OutValue=Min+(((Value-OldMin)/(OldMax-OldMin))*(Max-Min))现在,我们旋转nurbsSphere,它的颜色就会根据旋转的方向和角度变化。02vectorProductvectorProduct节点允许一个矢量乘以另一个矢量或矩阵,它实际上就是一个运算器。在程序语言中经常用到这种运算。vectorProduct节点的主要部分的解释如下:OperationNooperation:将Input1的值不做处理,然后输出;DotProduct:这是缺省值。Input1和Input2做点乘运算。点乘运算的原理如以下公式:假设有两个矢量(a,b,c)和(d,e,f)DotProduct=(a*d)+(b*e)+(c*f)注意DotProduct的值是一个单一的值,这就意味着vectorProduct节点在输出的时候,选择OutputX、OutputY、OutputZ三个值中的任何一个都可以。CrossProduct:叉乘产生一个新的矢量,原理如下:x=(b*f)-(c*e)y=(c*d)-(a*f)z=(a*e)-(b*d)注意不要将它和MultiplyDivide节点弄混了,MultiplyDivide节点的原理是:x=a*d,y=b*e,z=c*fVectorMatrixProduct:将Input1乘以矩阵生成一个新的矢量,公式如下:Outvector=InputxMatrix假设有一个Input矢量为(a,b,c)和一个Input矩阵:ABCDEFGHIJKLMNOP则:x=(a*A)+(b*B)+(c*C)y=(a*E)+(b*F)+(c*G)z=(a*I)+(b*J)+(c*K)PointMatrixProduct的原理是:Output=InputxMatrixx=(a*A)+(b*B)+(c*C)+Dy=(a*E)+(b*F)+(c*G)+Hz=(a*I)+(b*J)+(c*K)+L注意以上两种算法都会忽略Input2。NormalizeOutput:缺省情况下是关闭的。当打开时,它生成的矢量值在-1到1的范围之间。在使用PointMatrixProduct操作时,NormalizeOutput无效。Matrix:Matrix不出现在属性面板中,只出现在ConnectionEditor中。使用Matrix可以将场景中的对象从相机坐标空间转换到世界坐标空间。下面用一些小例子来感受一下vectorProduct节点的作用:DotProduct操作:建立一个球体并指定Blinn材质。创建一个directionalLight并将其LightDirection连接到vectorProduct节点的Input1;建立一个SampleInfo节点并将其NormalCamera连接到vectorProduct节点的Input2;vectorProduct节点的操作方式为DotProduct将vectorProduct节点的Output值任意一个连接到Blinn.ColorR上。结果如图:现在球体红色的部分对应Blinn.ColorR的值就为DotProduct操作后产生的值,我这里的ColorR=0.660。如果将vectorProduct节点的OutputX、OutputY、OutputZ分别连接到Blinn.ColorR、Blinn.ColorG、Blinn.ColorZ上。那么由于OutputX、OutputY、OutputZ的值是相等的,都是0.660。所以Blinn.ColorR、Blinn.ColorG、Blinn.ColorZ都等于0.660。03CrossProduct操作:建立一个球体并指定Blinn材质;建立一个SampleInfo节点;建立一个SetRange节点。将SampleInfo节点的RayDirection连接到vectorProduct节点的Input1;提取出物体表面光线方向的信息。将SampleInfo节点的NormalCamera连接到vectorProduct节点的Input2;提取出物体表面法线信息。将vectorProduct节点的Output连接到SetRange节点的Value;将SetRange节点的outValue连接到Blinn.Color。设置操作方式为CrossProduct打开vectorProduct节点的NormalizeOutput,这样vectorProduct节点的Output值的范围在-1到1之间。因为颜色没有负值,所有用SetRange节点来将vectorProduct节点的Output值限制在0——1之间。SetRange节点的值按如下设置:我们所要得到的是:Min=0;Max=1vectorProduct节点的Output值范围是:OldMin=-1,OldMax=1渲染场景。另:如果不是很清楚的话不要紧,先感觉一下这些操作所起的作用,慢慢做得多了,就理解了。有时间的话,我再做一些实用的例子,就象前面的卡通材质一样。01颜色工具节点BlendColorsBlendColors节点混合Color1和Color2的颜色,它根据Blender参数控制混合的程度。Blender参数的值的范围是0——1。当Blender=1时,输出Color1;当Blender=0时,输出Color2。BlendColors节点的工作原理如下:Output=Color1*Blender+Color2*(1-Blender)比如我们可以利用BlendColors节点在纹理上加一行字,Color1是文字纹理Color2是背景纹理。而Blender参数由文字纹理的Alpha通道连接。如图:另:图片是Luis幻想画中的那个著名的女孩儿。02ClampClamp节点用来将某一颜色值保持在指定的范围内。Clamp节点的运算方法可以从下面这个例子来理解。假设Clamp节点的InputR被连接,我们设置MinR=0.3,MaxR=0.6那么Clamp节点的输出为:InputR:OutputR:ContrastContrast节点可以改变纹理的对比。参数的解释如下:ValueColor或者Texture的输入口;Contrast调整对比的程度,可以单独调整R、G、B通道。BiasBias参数的值也可以单独调节R、G、B通道,Bias参数可以理解成中间色,当Contrast增加时,Bias参数增加图像将会变暗。GammaCorrectionGammaCorrection节点可以校正Color或Texture的伽玛值。HsvToRgb和RgbToHsv一看就明白,在HSV模式和RGB模式之间转换。那么这两个节点有什么用?下面用一个极为常用的铬金属材质来解释一下。创建一球体然后指定一Blinn材质,Blinn的主要参数设置为:Color为黑色;Diffuse=0;Eccentricity=0.025;SpecularRollOff=1;SpecularColor为白色;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.ReflectedColor。Ramp的颜色设置如图,最后渲染场景。03LuminanceLuminance节点将颜色转换为灰度。下面的例子解释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节点。效果如图:04深入了解HsvToRgb和RgbToHsv有朋友捎话说有上面那个HsvToRgb和RgbToHsv节点工具节点讲得不是很清楚。下面我选择一个小例子,可以更清楚地理解HsvToRgb和RgbToHsv节点的用途。以后的教程我也许会用更多的实例深入理解一下MAYA的这些工具。这个样例的目的是设计一个材质,并且我们可以用HSV方式随意控制最后的渲染效果。首先做一Plane然后指定一lambert材质。建一file纹理;建一RgbToHsv节点;建一HsvToRgb节点;建一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渲

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论