Android 如何检测已触摸的3d对象?

Android 如何检测已触摸的3d对象?,android,opengl-es,Android,Opengl Es,假设我有3个在视口中可见的随机位置/旋转立方体。如果我触摸(或单击emulator)一个特定的多维数据集,我希望能够检测到其中的哪个多维数据集被触摸。如果我只是触摸空白而不是立方体,这也应该被正确地检测到。我知道有一个onTouchEvent回调,你在一个视图上运行,但这只给了我触摸发生的x,y坐标。我正在寻找基于OpenGL ES的解决方案,尤其是基于Java的Android应用程序。在x/y坐标上可能有多个对象(或者没有)。您应该找到它们,然后如果有,检查z坐标以查看哪一个最接近视口(以及被

假设我有3个在视口中可见的随机位置/旋转立方体。如果我触摸(或单击emulator)一个特定的多维数据集,我希望能够检测到其中的哪个多维数据集被触摸。如果我只是触摸空白而不是立方体,这也应该被正确地检测到。我知道有一个onTouchEvent回调,你在一个视图上运行,但这只给了我触摸发生的x,y坐标。我正在寻找基于OpenGL ES的解决方案,尤其是基于Java的Android应用程序。

在x/y坐标上可能有多个对象(或者没有)。您应该找到它们,然后如果有,检查z坐标以查看哪一个最接近视口(以及被触摸的视口)。

经常想知道没有glSelect()的最佳方法。。。这个答案看起来不错:


(你可以忽略这是一个iOS问题……OpenGL ES API在AFAIK和AFAIK两个平台上都是相同的)。

不幸的是,我无法理解基于C的解决方案以及如何切换到基于Java的Android应用程序。正如问题中所述,我正在寻找基于Java的Android解决方案。然后试试这个:。。。它是gluUnproject()的Android实现,这正是您想要的。