Uploaded by Cyan X

0003 点乘Dot和叉乘Cross

advertisement
0003_点乘Dot和叉乘Cross
向量与标量,
向量(Vector):既有大小,也有方向的量;比如:力,速度等。
标量(Scalar):只有大小,没有方向的量;比如年龄,体重等。
理论上不存在没有大小,只有方向的量;但存在大小无现实意义的量,我们
多把它归一化处理。
1.Dot点乘
点乘,通俗的来说就是计算两个单位向量的Cos值,得出来的结果是标量。
两向量间的一种运算方式,结果为一标量,
几何意义:一个向量在另一向量上的投影长度
图形学表现:两向量,方向相同时结果为1(白色),方向相反结
果为-1(黑色),垂直结果为0(黑色)
可以用来制作菲涅尔或者制作一些简单的卡通材质(详情可看B站庄懂技美
教程)。
Cos函数的曲线主要记住 0度 = 1, 90度 = 0, 180度 = -1即可。
当两个向量的夹角为0时,比如1号线和世界空间下的光照方向夹角为0,
得出来的值就为Cos 0 = 1。因为1为白色,所以正对光照的点为白色,如上所示。
当两个向量的夹角为90时,比如2号线和世界空间下的光照方向夹角为90,
得出来的值就为Cos 90 = 0。因为0为黑色,所以垂直光照的点为黑色,如上所示
1号线和2号线中间的颜色即为灰色的过渡。
当两个向量的夹角为180时,得出来的值就为Cos 180 = -1。小于0的都为黑色,如上所示
2.Cross叉乘
叉乘的运算结果是一个向量而不是一个标量。
坐标平面垂直。
并且两个向量的外积与这两个向量组成的
计算法线。
所以可以用来
叉乘节点
拆解ASE中的Normal Create节点
上图为ASE中的Normal Create节点
我们主要关注一下叉乘部分的计算,以下为运算结果
叉乘是将两个三维向量进行如下公式的运算。
按照ASE中Normal Create节点的演示, 通过将一张图片分别向下和向右进行偏移,
并将两个值分别变成两个三维向量的Z值。
a=(1, 0, Z1)
b=(0, 1, Z2)
a x b = ((0 * Z2 - 1 * Z1), -(1 * Z2 - 0 * Z1), 1 * 1 - 0 * 0)
a x b=(-Z1, -Z2, 1)
叉乘以后的结果为(-Z1, -Z2, 1),即可得到一张法线贴图。
Download