用户名 密    码

Maya材质教程:铅笔画效果(2)

来源:互联网 作者:未知 发布时间:2011-01-27 19:55:18 网友评论 0


这是用该方法实现的另一效果

\

        首先先来分析一下。要达到的目的是要将图片转换为铅笔画效果,如前面的例子,因此就需要对图片进行处理和分析:这里我们需要首先回顾一下bump工具,它的作用是将图片中的亮度不同的区域相交位置的信息读取并根据这些信息输出一组法线信息(out nomal),关于bump2d节点的解释在maya的help中是这样描述的Bump2s is a utility node that is useful for doing Bump Mapping.Its job is to take the output of any 2d texture(usually the Out Alpha attribute) and convert it to "perturbed normals" that are used to calculate bump maps遗憾的是. Maya并未给出更深入的解释二因此在通常情况下,我们只是使用bump节点用作产生凹凸效果,这时bump节点的outNormal属性会联接到材料(如lambert)的normalGamera属性。我们可以简单的分析一下产生凹凸效果的原理,简单的说,bump节点的outNormal属性所包含的信息是图片中明暗相交位置及相领区域的亮度经bump节点计算后生成的一些杂乱无章的法线信息(这些区域亮度变化丰富),而这些信息有提供给了材料的nornalCamera属性,ma归在渲染时会根据这些法线方向、摄影机与表面的相对角度以及光的方向计算出图片的哪些区域是“凹〔或凸)”的,就在这些区域(即暗相交区域)加深色彩,模拟凹〔或凸)的效果。了解了这个原理,我们就可以继续进行了。

       既然了解的bump的大概原理,我们就可以利用这点。但是现在的问题是如何才能利用这些法线信息二这里我们需要用到表面的法线,因为表面的法线是比较规则的,所以通过比较bump的outNarmal与表面的法线的夹角,就可以得到一个数值,也就是将outNormal这种矢量数值转化为一个单一的数值。这里我们就需要两个操作,第一是得到表面的法线,第二是计算表面的法线与bump的outNormal的夹角这时我们可以利用samplerlnfo节点取得表面的法线,而通过vector product工具中的dot product功能可以得出两个矢量的夹角的余弦值,如果两个矢量方向相同(即他们的夹角为0度),则vector product工具得出的数是t:如果如果两个矢量方向相垂直(即他们的夹角为90度),则vector product工具得出的数是0,如果两个矢量方向相反(即他们的夹角为180度),则vector product工具得出的数是-1。通过这种方法,我们就可以将图片中明暗相交的区域转化为一组一、到T之间的浮点数。那么这组数有什么用呢?大家也许还记得X-Ray材质里面的ramp的经典用法,就是将samp一er info的facing ratio连到ramp的vcoord.这样联接的目的是因为表面上不同的点法线与摄影机的视线都有一个不同的夹角,这个夹角就是用facing rati。的值来表示,也就是说表面上不同的点有自己的一个faci吧ratio值,而这个值是在fl到之间,而ramp的vcoord值直接决定了ramp输出的颜色,所以表面上不同的点对应了ramp中不同的vcoord,最终也就有了各自不同的颜色〔即ramp输出的颜色)。下面这张图标是的比较清楚

搜索栏目