我正在 OpenGLES 2.0 中制作 ipad 应用程序,并且我有一些对象应该能够通过触摸事件进行翻译。所以我需要与屏幕(X,Y,Z)坐标对应的(x,y,z)对象坐标。我能够在线获得此教程:
http://softwareprodigy.blogspot.com/2009/08/gluunproject-for-iphone-opengl-es.html
但问题是当我在 OpenGL ES 2.0 上工作时,我有自己的投影、模型和相机矩阵,我将它们传递给顶点着色器。首先我需要视口矩阵(我提到了使用 glViewPort() 内置函数的视口),我怎样才能得到它?
其次,我无法获得所描述的将射线与平面相交的过程?有人可以解释一下或提供另一种方法吗?
好的,我从上面弄清楚了所有内容及其工作,现在我有一个新问题:P
我能够获得 (x,y) 对象坐标,并且也可以根据光线的交点获得 z 坐标。但是,当我平移或旋转对象时,我的模型矩阵会发生变化,这会导致对象坐标发生变化,但我只知道用于绘制对象的初始坐标(因此我无法确定被射线击中的对象是否是正确的)。
有什么办法可以跟踪我的对象坐标???一种方法是将相同的变换应用于对象的中心点并保持其值,但这仅适用于球形(对称对象)。有任何想法吗???