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),即可得到一张法线贴图。