【问题标题】:Projection of Square onto 2D Plane (OpenGL ES2)将正方形投影到 2D 平面 (OpenGL ES2)
【发布时间】:2012-07-02 20:04:48
【问题描述】:

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

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

我的大脑有点扭曲,试图弄清楚 opengl 的模型和投影矩阵中的实际内容,但我似乎找不到任何关于矩阵中实际数字的规范意思

谢谢!

【问题讨论】:

  • 您目前如何构建变换矩阵?使用图书馆?

标签: android graphics matrix opengl-es-2.0


【解决方案1】:

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

【讨论】:

【解决方案2】:

还有另一种技术涉及渲染一个帧,其中场景中的所有图元都以不同的颜色渲染。然后就可以在触摸事件下测试像素颜色了。您可以使用这种技术玩一些技巧,例如缩小视口,使其仅是触摸周围的一小块区域,并将其渲染为纹理,以便用户永远看不到它。

【讨论】:

  • 该死的,从来没想过。非常方便。
  • 是的,这是我从一些老同学那里学到的巧妙技巧!
猜你喜欢
  • 2017-10-06
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 2014-05-06
  • 1970-01-01
  • 1970-01-01
  • 2012-08-30
  • 1970-01-01
相关资源
最近更新 更多