将平面投影到2D平面上(OpenGL ES2)

时间:2012-07-02 20:04:49

标签: android graphics matrix opengl-es-2.0

我正在为Android创建一个Coverflow视图,但是在处理视图点击时我遇到了一些障碍。我无法确定点击下方的哪个方格。为了确定单击哪个方块,将获取click事件中的(X,Y)数据并将其转换为opengl视图空间。把它放在一个正方形上时会遇到麻烦:换位,旋转和比较都可以在java中完成,但这似乎是一个巨大的浪费,因为渲染视图时所有这些操作都已完成。

所以,我的问题是:如何在opengl渲染过程中提取2d视图映射对象坐标?

我试图弄清楚opengl的模型和投影矩阵实际上是什么,我的脑子有点扭曲,我似乎无法找到矩阵中的数字实际上是什么意味着

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用gluUnProject()gluProject()在对象和窗口空间之间进行转换,并节省一些数学运算。文档为herehere

答案 1 :(得分:1)

还有另一种技术涉及渲染一个帧,其中场景中的所有基元都以不同的颜色呈现。然后,您可以测试触摸事件下的像素颜色。你可以使用这种技巧来玩耍,比如缩小视口,使其只是触摸周围的一小块区域,并将其呈现给纹理,以便用户永远不会看到它。