GLSL 内置函数

matrixCompMult()

矩阵逐元素相乘,区别于代数矩阵乘法。

示例版本:GLSL ES 1.00 / WebGL 1示例阶段:片段

函数签名

mat matrixCompMult(mat x, mat y)

参数

x
输入值或左侧向量
y
右侧向量或比较值

返回值

形状相同的矩阵,每个元素为 x、y 对应位置元素的乘积。

在线示例

修改右侧代码,左侧预览会实时更新。

matrixCompMult 做什么

矩阵逐元素相乘,区别于代数矩阵乘法。

看懂预览

第二个矩阵中的零会消掉第一个矩阵的 0.2 元素。把 mat2(1.0,1.0,0.0,1.0) 中的零改成 1.0,网格便恢复这部分错切。

核心调用

matrixCompMult(mat2(1.0,0.5,0.2,1.0),mat2(1.0,1.0,0.0,1.0))*vec2(x,y);

两个矩阵尺寸必须相同,星号运算符另有矩阵乘法含义。

修改实验

把第二个矩阵换成 mat2(1.0,0.0,0.0,1.0)。逐元素相乘会消掉两个非对角元素,网格因此恢复为横平竖直。

规范

GLSL ES 1.00 built-in functions, chapter 8

相关函数