【发布时间】:2018-07-04 23:18:29
【问题描述】:
我正在开发可显示不同 3D 模型的平板电脑应用程序。我当前的任务是找出用户在触摸屏幕时是否点击了模型。我有 X、Y 触摸坐标,我有两种解决方案:
1) 我使用 OpenGL ES 2.0 进行模型渲染,所以也许我可以创建额外的帧缓冲区,并在片段着色器中以每个像素深度的颜色渲染它。我的意思是,如果深度为 MAX,我可以将像素颜色设置为黑色,如果深度为零,则可以设置为白色。然后我可以使用这个帧缓冲区中的数据来获取我的点深度并找出我需要的东西。
2) 第二种解决方案是从接触点运行射线,然后使用常见的射线-三角形相交算法查看我所有的模型三角形。
我的问题是:有更快的解决方案吗? 谢谢你。
【问题讨论】:
-
您是否已经有一个具有广泛相位的场景图,例如八叉树?我们在谈论什么样的几何形状?
-
@Tommy 我只有顶点和法线数组。通常我使用我的应用程序只显示一个模型。但是它可能有近 10,000 个顶点。