我已经实现了一个可以在Android OpenGL ES中通过手势旋转的立方体。现在我想实现这一点,当我点击立方体上的某个地方时,它可以判断哪个面被触摸并做出一些响应。
我搜索了互联网并找到了一个好方法,这里有一些教程:http://www.lighthouse3d.com/opengl/picking/index.php?color1
但我仍觉得我很难。
如何为每张脸分配不同的颜色?
如何读取从后台缓冲区中点击鼠标的像素?
有人能告诉我一些更多细节吗?非常感谢!
如果您不介意,请给我留下电子邮件地址,我可以将您的工作发送给您。谢谢:))
答案 0 :(得分:0)
第一个评论是,通过将光线投射到世界中,分析性地执行此操作几乎总是更快。那个评论放在一边......
您可以为每个面部分配不同的颜色,以便像任何其他类型的渲染一样,无论是通过更改传递给glColorPointer
(如果使用ES 1)或切换到单个像素,单个彩色纹理或任何其他方式。如果您启用了照明,请务必将其禁用。
您可以使用glReadPixels
从帧缓冲区中读取颜色。在触摸屏设备上,您可能想要抓住一个20x20像素的区域,并选择最常出现的颜色,或类似的东西,因为手指不是很精确。