有时候会在Unity ShaderLab代码中看到两个float3或者float4的颜色做乘法:
col = col1 * col2
一直没搞懂这个乘法是怎么算的,float3是3个float,两个float3直接相乘,从计算结果来看既不是点乘也不是叉乘,网上搜了半天最后终于找到了正规叫法。
Unity里的这种颜色相乘做的是哈达玛积(Hadamard product),是一种矩阵乘法,只能用于两个行和列长度都相同的矩阵,运算方式非常简单,直接把两个矩阵对应位置上的值乘起来就行了:
有时候会在Unity ShaderLab代码中看到两个float3或者float4的颜色做乘法:
col = col1 * col2
一直没搞懂这个乘法是怎么算的,float3是3个float,两个float3直接相乘,从计算结果来看既不是点乘也不是叉乘,网上搜了半天最后终于找到了正规叫法。
Unity里的这种颜色相乘做的是哈达玛积(Hadamard product),是一种矩阵乘法,只能用于两个行和列长度都相同的矩阵,运算方式非常简单,直接把两个矩阵对应位置上的值乘起来就行了: