Android 这个项目不工作。。。如果对象的Z=-1.0f,并且它被缩放为(0.01f,0.01f,0.0f),那么我必须将哪些参数传递给项目?
到目前为止,我一直在使用Android 这个项目不工作。。。如果对象的Z=-1.0f,并且它被缩放为(0.01f,0.01f,0.0f),那么我必须将哪些参数传递给项目?,android,opengl-es,Android,Opengl Es,到目前为止,我一直在使用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值必须传递到gl
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输出坐标值,(-101.774124,-226.27419)一次又一次:gluProject
做了与OpenGL转换管道完全相同的事情(当然,如果用OpenGL的矩阵和视口调用的话)。因此,无论您发送到OpenGL的顶点是什么,这些都是您必须放入gluProject
中的顶点
如果使用顶点(-1,-1,0)渲染多边形,则必须使用该顶点调用gluProject
。其他变换(无论是平移、缩放、旋转还是其他)都来自变换矩阵。但如果确实使用顶点(0.01、0.01、0)渲染多边形,则必须将其放入gluProject
在继续使用OpenGL转换管道之前,请确保您完全了解OpenGL转换管道(的答案可能会有所帮助)以及
gluProject
的工作原理,并针对您认为会产生错误结果的每个小输入提出问题。显示转换代码可能有助于解决您的问题。您是在使用glScale
还是真的在使用(0.01,0.01,0)渲染多边形?在前一种情况下,请记住不要使用值0进行缩放。