透视投影矩阵的构建
投影矩阵最终建立的是一个平截头体(也可以称为台),在这种变换下呈现远小近大的效果。这里我将我学到知识记录下来,以后备忘用。
蒋彩阳原创文章,首发地址:http://blog.csdn.net/gamesdev/article/details/44926299。欢迎同行前来探讨。
首先是使用OpenGL的glFrustum函数,它要求传入的是前后、左右、上下等参数,这要求这个平截头体是轴对称的。由它构成的矩阵是为:
如果我们使用的不是glFrustum,而是glPerspetive,那么它的公式就更加简单了:
我们可以借助Qt来验证一下:
#include <math.h>
#include <QDebug>
#include <QCoreApplication>
#include <QVector3D>