GLSL 内置函数

outerProduct()

用列向量和行向量生成外积矩阵。

示例版本:GLSL ES 3.00 / WebGL 2示例阶段:片段

函数签名

mat outerProduct(vec column, vec row)

参数

column
签名中给出的输入量,类型和尺寸必须匹配
row
签名中给出的输入量,类型和尺寸必须匹配

返回值

矩阵元素 [列][行] 等于第一个向量的对应行分量乘第二个向量的对应列分量,尺寸由两向量长度决定。

在线示例

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

outerProduct 做什么

用列向量和行向量生成外积矩阵。

看懂预览

outerProduct(vec2(1.0,0.4),vec2(0.5,1.0)) 生成秩为一的变换,网格没有两条独立的变化轴。把第一个向量改为 vec2(1.0,0.0),q.y 的变化就会消失。

核心调用

outerProduct(vec2(1.0,0.4),vec2(0.5,1.0))*vec2(x,y);

这不是 cross,也不是逐分量相乘。

修改实验

把第二个向量从 vec2(0.5,1.0) 改成 vec2(1.0,0.0)。两个输出坐标都只依赖 x,画面中的条纹会变成竖向。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数