【发布时间】:2011-07-28 15:07:04
【问题描述】:
问题很简单,如何在 OpenGL 中识别用户触摸了哪个对象。 我已经尝试了 utilizat envento onTouchEvent 但这只会返回 possição X、Y 屏幕。
【问题讨论】:
-
Android OpenGL 3D picking 的可能重复项
问题很简单,如何在 OpenGL 中识别用户触摸了哪个对象。 我已经尝试了 utilizat envento onTouchEvent 但这只会返回 possição X、Y 屏幕。
【问题讨论】:
在此线程中提出(并回答)了一个类似的问题: Detect user's touches over an OpenGL square
基本上有 2 种方法: 1 将所有对象以各种不同的颜色渲染到缓冲区,然后查看指定“拾取坐标”处的颜色信息以识别您的对象。 另一个(我认为资源密集度较低)是检索“射线”,然后使用您为当前呈现在屏幕上的所有对象提供的边界框进行命中测试。
编辑: 如果您正在以正交/二维方式进行渲染,那么这在某种程度上简化了事情。 您可以使用您触摸的点和为您绘制的图像提供的矩形(或者可能是圆形或多边形)进行简单的点击测试。
希望这会有所帮助。
【讨论】: