OpenGL Frustum数学理解

时间:2014-10-01 16:43:31

标签: opengl matrix 3d

我有一个关于视锥体的数学方面的问题。由glFrustum(l,r,b,t,n,f)构造的矩阵我理解l,r基本上是x轴,b,t是y和n,f是z。现在我的问题是经典的截头矩阵:http://csc.lsu.edu/~kooima/articles/genperspective/eq5.svg

我想找到点p =(x,y,z)的视图坐标X,Y和Z 在特殊情况下,l = b = -1 r = t = 1并找到p,x,y-n和p(x,y,-f)的X,Y,Z

我只是很难理解如何用这样的抽象数字来做这件事。我知道如果n = f或n或f小于零则会出错。但我只是不明白我被问到了什么。

1 个答案:

答案 0 :(得分:0)

r 成为 r =(x,y,z,1)

形式的眼睛空间中的坐标向量

P 成为平截头体变换矩阵。这允许通过应用变换将 r 转换为 clip sapce 中的位置 r',对于向量和矩阵,可以使用变换来完成matrix-vector乘法 r'= P·r

然后通过应用同质透视划分 r''= r'/ r'.w 来获得标准化视口坐标 r''(不剪裁)

就是这样,除此之外别无选择。