方投影到二维平面(OpenGL的ES2)(Projection of Square onto 2D

2019-09-19 00:35发布

我在创建Android上的CoverFlow视图的过程,但我在操控性上视图点击时运行到一个路障的一点点。 我无法确定哪方是点击下面。 为了确定被单击的正方形,在(X,Y)从点击事件数据被取和转换成OpenGL的视图空间。 麻烦来放置这一个正方形时:换位,旋转和比较都可以用Java来完成,但是这似乎是一个巨大的浪费,因为渲染视图所有这些操作都正在做。

所以,我的问题是: 我怎样才能提取2D视图映射对象OpenGL的坐标中呈现进程?

我已经得到了我的大脑有点扭曲试图找出什么是真正在OpenGL的模型和投影矩阵,而我似乎无法找到的东西在矩阵中的数字实际上是指任何规范。

谢谢!

Answer 1:

您可以使用gluUnProject()gluProject()为对象,窗口空间和保存自己的一些数学之间的转换。 文档是在这里和这里 。



Answer 2:

还有就是涉及渲染一帧,其中场景中所有的原语不同的颜色呈现另一种技术。 然后,你可以测试触摸事件下的像素颜色。 有技巧,你可以用这个技术就像缩小了视口,以便它仅在触摸,面积小且渲染到纹理,使用户永远看不到它玩。



文章来源: Projection of Square onto 2D Plane (OpenGL ES2)