我有一个关于拍摄观察者及其投影平面以及如何精确计算应该创建的投影点的问题。
EX。查看器位于原点,朝负Z方向看。 z = -2时的投影平面。点(-6,1,-4)。
我看到一些网站谈论使用类似的三角形,有些网站有一个矩阵来乘以它。对我来说问题是我不知道如何设置任何一个。
我猜我的观察者的观点是原点(0,0,0,1)。当我搜索透视投影矩阵时,我找到一个设置这样的矩阵的网站。
1 0 0 0
0 1 0 0
0 0 0 0
0 0 1 0
但是,就我所知,观察者的观点是(0,0,0,1),那么投影对于它如何影响等式是没有意义的。该矩阵还需要根据公式进行调整,以便在此网站上进行设置:
http://www.cs.nps.navy.mil/people/faculty/capps/iap/class2/viewing/projection.html
我只是需要一些帮助来解决这个问题,而我们在课堂上讨论的只是使用了对我来说没有意义的类似三角形......
答案 0 :(得分:3)
观察者的位置通常不是通过投影矩阵处理,而是通过模型视图矩阵处理。投影矩阵仅处理从眼睛空间到剪辑空间的转换。
通过将相机的逆变换应用为模型视图堆栈上的第一个矩阵来实现相机变换。
答案 1 :(得分:0)
考虑使用glGet...()
函数读出OpenGL的矩阵,并自己运行相关矩阵的顶点。首先要了解转换管道的细节当然,所以你知道如何应用矩阵,订购问题一如既往。
答案 2 :(得分:0)
我在我的网站上详细讨论了(opengl)投影矩阵的推导。你可以看看这里
http://divineabomination.blogspot.com/2009/12/derivation-of-perspective-matrix-part-1.html
,第二部分也可以在右边的菜单中找到。