透视矩阵如何工作?

def*_*nct 2 opengl matrix webgl

我开始在Learningwebgl博客上阅读第1课,我注意到了这一部分:

var pMatrix = mat4.create();
mat4.perspective(45, gl.viewportWidth / gl.viewportHeight, 0.1, 100.0, pMatrix);
Run Code Online (Sandbox Code Playgroud)

我粗略地理解矩阵(平移/旋转/多重)是如何工作的,但我不知道是什么mat4.perspective(...)意思.它是干什么用的?如果我用这个矩阵乘以一个向量,结果是什么?

小智 5

透视矩阵用于缩放,并且可能平移或翻转坐标系以准备透视分割.由于透视投影操作涉及除法,因此不能仅通过线性矩阵变换来表示.

在可编程图形管道中(参见像素着色器),您无法看到除法运算 - 它仍然是固定功能部件之一.程序员通过调整操作中涉及的变量来控制它.在透视分割的情况下,它是投影矩阵,为您提供此控制.