预备知识
1.opengl的透视投影矩阵是把一个棱锥视见体转化为规范化视见体的投影矩阵。所谓规范化视见体,就是由x=+-1, y=+-1, z=+-1围成的视见体。
2.透视投影基础:透视投影的数学原理是相似三角形。 视见体中的一个点(x,y,z)沿着向量它和原点的连线,投影到透视平面z = d上,投影所得到的点坐标设为(xp,yp,d)。根据相似三角形原理,有xp/d = x /z,故xp = x/z*d。同理,yp = y/z*d。

3.齐次坐标在透视投影当中的作用:我们知道,一个三维坐标点的齐次坐标形式是(x,y,z,w)。当w为1时,(x,y,z)即为点的三维坐标,否则需要用w去除x,y,z。下面的投影矩阵把点(x,y,z,w)变成(x,y,z,z/d)。用z/d去除x,y,z,得到的结果是:
x = x/z*d
y = y/z*d
z = z/z*d = d

推导
1.推导过程可参见这篇文章,写的很清楚,也很容易理解。他是先推导出新点和原来的点的数学关系,再根据这种关系构造矩阵。
2.我看的书《交互式计算机图形学——基于OpenGL着色器的自顶向下方法》(第六版)则是先考虑投影平面x,y取值范围在[-1,

本文是作者对OpenGL透视投影矩阵的个人理解和总结,探讨了透视投影的基础原理——相似三角形,以及齐次坐标的运用。文章详细介绍了如何从数学角度推导透视投影矩阵,包括两种不同的推导方法,并最终得出透视投影矩阵的表达式。
最低0.47元/天 解锁文章
720

被折叠的 条评论
为什么被折叠?



