到目前为止,我使用gluProject
,透视投影以及一个以屏幕左侧顶点(-1,-1,0)为中心的可缩放方格。我缩放调整Z轴的方块。
例如,我将方块缩放到Z = -5,然后使用openGL对象参数(-1,-1,0)调用gluProject
以知道窗口像素X,该顶点的Y位置广场。它工作正常。
但是现在,我对我的架构感兴趣,现在我没有使用Z来缩放,我正在缩放以缩放。我的方格在Z = -1.0f,最初它被缩放到(0.01f,0.01f,0.0f),是一个小方块。
我必须将X,Y,Z值传递给gluProject
?我传递-1,-1,0,gluProject
给我错误的x,y outPutCoords值,( - 101.774124,-226.27419)
答案 0 :(得分:1)
一次又一次: gluProject
与OpenGL转换管道完全相同(当然,如果使用OpenGL的矩阵和视口调用)。因此,无论您发送到OpenGL的顶点是什么,这些都是您必须放入gluProject
的顶点。
如果使用顶点(-1,-1,0)渲染多边形,则必须使用此顶点调用gluProject
。每个其他变换(无论是平移,缩放,旋转等)都来自变换矩阵。但如果您确实使用顶点(0.01,0.01,0)渲染多边形,则必须将其放入gluProject
。
确保您完全理解OpenGL转换管道(this question的答案可能有帮助)以及gluProject
的工作方式,然后再继续使用它并针对您认为错误的每个小输入发布问题结果