繁体   English   中英

线和3D模型交叉

[英]Line and 3D model intersection

我正致力于平板电脑的应用程序,它可以显示不同的3D模型。 我目前的任务是找出用户是否在触摸屏幕时击中模型。 我有X,Y触摸坐标,我有两个解决方案:

1)我使用OpenGL ES 2.0进行模型渲染,所以也许我可以创建额外的帧缓冲区,并在片段着色器中以每个像素深度颜色渲染它。 我的意思是如果深度是MAX,我可以设置黑色的像素颜色,如果是零,我可以设置白色。 然后,我可以使用来自该帧缓冲区的数据来获取我的点深度并找出我需要的东西。

2)第二种解决方案是从接触点运行射线,然后使用常见的射线三角形相交算法查看我所有的模型三角形。

我的问题是:有没有更快的解决方案? 谢谢。

我知道这是一个老问题,但AFAIK在这种情况下的最佳实践是执行光线三角交叉测试。 您可以通过蛮力测试每个三角形来实现。 或者您可以使用数据结构来加速。 八叉树kd树应该可以解决问题,尽管它们都有优点和缺点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM