2012-01-24 89 views
3

我转换屏幕坐标为世界使用访问项目和模型视图矩阵中的OpenGL ES 2.0

GLU.gluUnProject(winX, winY, winZ, model, modelOffset, project, projectOffset, view, viewOffset, obj, objOffset) 

但是在OpenGL ES 2.0的坐标,我对如何检索模型视图和项目矩阵不确定。我发现的所有示例仅适用于opengl es 1.0和1.1。任何帮助将非常感激。谢谢。

+0

在Android中使用opengles 2时,你可以自己跟踪你的矩阵,通常是一对float []。如果你直接在着色器中计算它们,我认为你不能得到它们。 – Jave

+0

我开始怀疑GLU.gluUnProject()是否可用于opengl es 2.0上下文。 –

+1

不,它不可用,正如Jave所说,OpenGL es 2.0必须自己照顾矩阵。 –

回答

0

当然这在OpenGL ES 2.0中是可行的。唯一的区别是你不必使用glGetFloatv(GL_MODELVIEW_MATRIX,array)来拉矩阵,但是你的代码中有矩阵计算,因为OpenGL ES 2.0不再具有诸如glRotatef()glTranslate()等函数。这就是为什么你使用Android类,称为矩阵可以为你做这些计算。将矩阵传递给gluUnProject()非常简单。

请参阅how to do Object detection in opengl Android?

+0

是的,但显然OP没有意识到Matrix类:) http://developer.android.com/reference/android/opengl/Matrix.html – Erik