GLSL 内置函数

inverse()

返回可逆方阵的逆矩阵。

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

函数签名

mat inverse(mat m)

参数

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

返回值

与 m 相乘得到单位矩阵的方阵;输入奇异或病态时结果未定义。

在线示例

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

inverse 做什么

返回可逆方阵的逆矩阵。

看懂预览

inverse(mat2(1.0,0.5,0.0,1.0)) 用与原矩阵相反的方向错切坐标网格。把 0.5 改为 0.0,网格会恢复为横平竖直。

核心调用

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

奇异或病态矩阵的结果未定义,不能用来稳健地补救坏变换。

修改实验

把这个非对角元素 0.5 改成 -0.5。斜线会向另一侧倾斜,行列式仍为 1,因此新矩阵依旧可逆。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数