资源描述
Condition[条件节点]:将两组数据进行比较,根据比较结果输出数据。其工作原理是:第一组数据与第二组数据以某种方式进行条件比较。其比较结果如果成立,则输出color if true[判断真输出颜色]数据;如果不成立,则输出color if false[判断假输出颜色]。在通常情况下,condition需要与其他节点配合使用,常用于制作卡通勾边材质、双面材质等。IF
判断假输出颜色:条件不成立时所输出的数据。该项为3通道属性,输出结果可是以颜色也可以是其他属性
判断真输出颜色:条件成立时所输出的数据。该项为3通道属性,输出结果可是以颜色也可以是其他属性
设置比较条件,共有6种方式:等于、不等于、大于、大于等于、小于、小于等于
作为比较的第二组数据,该项可以是一个单数,也可以是一组数据
作为比较的第一组数据,该项可以是一个单数,也可以是一组数据
Sampler Info节点是maya软件中最复杂也是实用性较高的节点。措施用于采样信息节点,为渲染节点提供相应措施的信息。
Sampler Info提供的信息不仅是一种,它还可以提供空间位置、表面切线方向、UV、法线方向等多项信息。
相机空间点坐标:提供采样点在摄影机坐标系中的X、Y、Z坐标信息
物体空间点坐标:提供采样点在物体自身坐标系中的X、Y、Z坐标信息。
世界空间点坐标:提供采样点在世界坐标系中的X、Y、Z坐标信息。
相机空间法线方向:提供采样点处表面与摄影机的关系
射线方向:提供一个向量,由采样点到摄影机的位置.
UV坐标:采样点的UV坐标,该范围值为0,0~1,1
像素中心:提供采样点在渲染图中的像素位置,结果与图像有关,与几何体无关。
相机空间U、V向切线:用于提供物体表面U、V的切线方向。
翻转法线:提供采样点处的表面法线信息,是向内还是向外。该参数值只有0和1,可以用它来制作双面材质
面比率:提供采样点表面法线与摄影机方向的夹角信息。该参数值范围是一个0~1之间的数值:当夹角为900,facing ration值为0;当夹角为00时,即平行时,facing ration为1。
在这里它的作用是用来判断物体表面法线方向的正反,通俗地说,就是要判断油桶哪个面是“表(正)”面,哪个面是“里(反)”面
1. vectorProduct节点允许一个矢量乘以另一个矢量或矩阵,它实际上就是一个运算器。在程序语言中经常用到这种运算。vectorProduct节点的主要部分的解释如下:
Operation
No operation:将Input1的值不做处理,然后输出;
Dot Product:这是缺省值。Input1和Input2做点乘运算。点乘运算的原理如以下公式:
假设有两个矢量(a,b,c)和(d,e,f)
Dot Product = (a*d) + (b*e) + (c*f)
2. 注意Dot Product的值是一个单一的值,这就意味着vectorProduct节点在输出的时候,选择OutputX、OutputY、OutputZ三个值中的任何一个都可以。
Cross Product:叉乘产生一个新的矢量,原理如下:
x = (b*f)-(c*e)
y = (c*d)-(a*f)
z = (a*e)-(b*d)
注意不要将它和Multiply Divide节点弄混了,Multiply Divide节点的原理是:
x = a*d, y=b*e, z=c*f
Vector Matrix Product:将Input1乘以矩阵生成一个新的矢量,公式如下:
Outvector = Input x Matrix
假设有一个Input矢量为(a,b,c)
和一个Input矩阵:
A B C D
E F G H
I J K L
M N O P
则:
x = (a*A) + (b*B) + (c*C)
y = (a*E) + (b*F) + (c*G)
z = (a*I) + (b*J) + (c*K)
Point Matrix Product的原理是:
Output = Input x Matrix
x = (a*A) + (b*B) + (c*C) + D
y = (a*E) + (b*F) + (c*G) + H
z = (a*I) + (b*J) + (c*K) + L
注意以上两种算法都会忽略Input2。
3. Normalize Output:
缺省情况下是关闭的。当打开时,它生成的矢量值在-1到1的范围之间。
在使用Point Matrix Product操作时,Normalize Output无效。
Matrix:
Matrix不出现在属性面板中,只出现在Connection Editor中。
使用Matrix可以将场景中的对象从相机坐标空间转换到世界坐标空间。
4. 下面用一些小例子来感受一下vectorProduct节点的作用:
Dot Product操作:
建立一个球体并指定Blinn材质。
创建一个directionalLight并将其Light Direction连接到vectorProduct节点的Input1;
建立一个SampleInfo节点并将其Normal Camera连接到vectorProduct节点的Input2;
vectorProduct节点的操作方式为Dot Product
将vectorProduct节点的Output值任意一个连接到Blinn.ColorR上。
结果如图:
现在球体红色的部分对应Blinn.ColorR的值就为Dot Product操作后产生的值,我这里的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。
5. 03Cross Product操作:
建立一个球体并指定Blinn材质;
建立一个SampleInfo节点;
建立一个Set Range节点。
将SampleInfo节点的Ray Direction连接到vectorProduct节点的Input1;
提取出物体表面光线方向的信息。
将SampleInfo节点的Normal Camera连接到vectorProduct节点的Input2;
6. 提取出物体表面法线信息。
将vectorProduct节点的Output连接到Set Range节点的Value;
将Set Range节点的outValue连接到Blinn.Color。
设置操作方式为Cross Product
打开vectorProduct节点的Normalize Output,
这样vectorProduct节点的Output值的范围在-1到1之间。
因为颜色没有负值,所有用Set Range节点来将vectorProduct节点的Output值限制在0——1之间。
7. Set Range节点的值按如下设置:
我们所要得到的是:
Min=0;Max=1
vectorProduct节点的Output值范围是:
OldMin=-1,OldMax=1
渲染场景。
另:如果不是很清楚的话不要紧,先感觉一下这些操作所起的作用,慢慢做得多了,就理解了。有时间的话,我再做一些实用的例子,
就象前面的卡通材质一样。
01颜色工具节点
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通道连接。
展开阅读全文