标签: c++ opengl glu projection-matrix
gluProject的OpenGL documentation写道,点v的投影是使用给定投影和模型视图矩阵通过v'' = P * M * v计算的,然后使用窗口坐标导出当前的视口,例如winZ = (v''(2) + 1)/2。
gluProject
v
v'' = P * M * v
winZ = (v''(2) + 1)/2
这不是v'' v''(3)的{{1}}的视角划分吗?那么我们应该有像winZ = (v''(2)/v''(3) + 1)/2这样的公式。
v''
v''(3)
winZ = (v''(2)/v''(3) + 1)/2
这与我的机器的opengl实现和OpenGL wiki上的实现一致。
那么,文档是错误的吗?
答案 0 :(得分:3)
是的,文档似乎没有划分(顺便说一下,这是返回GLU_FALSE的唯一原因)。例如,检查mesa implementation(第249-252行)。
GLU_FALSE