查看: 1496|回复: 4

请问,如何访问模型的三角面片?

[复制链接]

该用户从未签到

发表于 2010-3-10 16:37:13 | 显示全部楼层 |阅读模式
先介绍一下我的需求。
一个在飞行的粒子,前方是一个模型(假设是一头牛)。用LineSegmentIntersect做碰撞检测并得到碰撞点位置。此时我需要在牛身上把碰撞点所在的面片涂上别的颜色来标示被粒子击中!
请问,由碰撞点坐标如何得到它所在的面片?谢谢。

该用户从未签到

发表于 2010-3-10 17:15:16 | 显示全部楼层
恐怕没有什么现成的方法,您只能自己遍历模型的所有面片并判断哪些面片与碰撞点相交,可以用仿函器TriangleFunctor来快速遍历模型中所有的三角面片,我的书里也有相应的介绍

该用户从未签到

 楼主| 发表于 2010-3-10 20:53:37 | 显示全部楼层
您书上的那个例子我看了,觉得在此基础上修改下可以实现我的要求。但还有一个问题:如果粒子数目为M个(M大概是1W左右),模型又有N个面片,这样的话一次遍历可是要进行M*N次比较?
可不可以利用已知的碰撞点来减少比较次数?

该用户从未签到

发表于 2010-3-10 22:44:13 | 显示全部楼层
我个人完全不认为对每个粒子进行检测是一种正确的选择,您应当有更好的计算方案,比如获得粒子束的凸包并用于计算等等

该用户从未签到

 楼主| 发表于 2010-3-11 18:39:28 | 显示全部楼层
我知道该怎么做了,谢谢老大。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表