2010-07-26 130 views
0

使用Iphone和Objective C 我试图找到在我的opengl视图中点击/触摸了哪个平面。通常我会使用glPushName/flPopName,但是这个函数似乎没有在sdk中实现或定义在。有谁知道去哪里获得有用的功能或其他方式来获得被点击的对象?Iphone opengl es - glu,glPushName

回答

2

OpenGL ES不支持这些功能。你必须找到另一种选择。或者:

  1. 将具有不同颜色的实心面渲染到低分辨率缓冲区中。选择渲染缓冲区分辨率,使拾取平方占据3x3像素网格,选择中心像素的颜色或占据最边缘像素的颜色。

  2. 确定几何选择。这通常需要将几何图形放置在某种类型的BSP中,并使用从拍摄像素开始向下射入屏幕的光线进行断层测试。

  3. 分析确定选择。如果几何图形很简单并且/或者足够规律,那么您可以使用一些简单的数学来找出您点击的内容。

+0

我认为选择1也许是最适合我 - 在这里描述: http://gpwiki.org/index.php/OpenGL_Selection_Using_Unique_Color_IDs – yeahdixon 2010-07-26 23:02:36