GLSL 内置函数

transpose()

交换矩阵行和列。

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

函数签名

mat transpose(mat m)

参数

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

返回值

行列互换后的矩阵,结果的 [列][行] 元素等于 m 的 [行][列] 元素。

在线示例

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

transpose 做什么

交换矩阵行和列。

看懂预览

转置 mat2(1.0,0.6,0.0,1.0) 会把错切系数移到另一处非对角位置。把 0.6 改为 0.0,网格就会恢复方正排列。

核心调用

transpose(mat2(1.0,0.6,0.0,1.0))*vec2(x,y);

GLSL 矩阵构造器按列填写,转置后剪切方向改变。

修改实验

把 transpose(mat2(1.0,0.6,0.0,1.0)) 换成未经转置的原矩阵。网格会沿另一个坐标方向错切,显示行列互换的作用。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数