如何在Android OpenGL ES中实现多维数据集的颜色选择

时间:2012-02-18 16:06:51

标签: android opengl-es cube color-picker

我已经实现了一个可以在Android OpenGL ES中通过手势旋转的立方体。现在我想实现这一点,当我点击立方体上的某个地方时,它可以判断哪个面被触摸并做出一些响应。

我搜索了互联网并找到了一个好方法,这里有一些教程:http://www.lighthouse3d.com/opengl/picking/index.php?color1

但我仍觉得我很难。

如何为每张脸分配不同的颜色?

如何读取从后台缓冲区中点击鼠标的像素?

有人能告诉我一些更多细节吗?非常感谢!

如果您不介意,请给我留下电子邮件地址,我可以将您的工作发送给您。谢谢:))

1 个答案:

答案 0 :(得分:0)

第一个评论是,通过将光线投射到世界中,分析性地执行此操作几乎总是更快。那个评论放在一边......

您可以为每个面部分配不同的颜色,以便像任何其他类型的渲染一样,无论是通过更改传递给glColorPointer(如果使用ES 1)或切换到单个像素,单个彩色纹理或任何其他方式。如果您启用了照明,请务必将其禁用。

您可以使用glReadPixels从帧缓冲区中读取颜色。在触摸屏设备上,您可能想要抓住一个20x20像素的区域,并选择最常出现的颜色,或类似的东西,因为手指不是很精确。