我要发帖 回复

新手上路

1

主题

13

积分

0

专家分

:

私信
发表时间 : 2009-12-22 21:04:48 | 浏览 : 893    评论 : 0
由于VEGA的封装,它并没有公开其碰撞检测的底层算法,通过自己用VEGA 做仿真的过程中对其自带的碰撞检测的学习,我的理解是:
    vega 的碰撞检测的底层机制实质上是判断线段和三角面的相交问题。
    首先,VEGA对于导入的场景模型,是全部打碎为三角面进行读入和遍历的。其次,VEGA自带的7种碰撞检测方法,除了VOLUME(这里我理解为包围盒)方法,其他的都是以SEGMENT作为VOLUME(这里我理解为体),通过ISECTOR绑定来进行碰撞判断的,而SEGMENT其实就是线段。那么它内部的运作机制应该就是以观察者身上自带的各种各样的SEGMENT线段(由你选用的方法决定)来和场景模型的所有三角面进行判断,看线段和三角形的最短距离是不是小于0.
        而对于VOLUME方法,我理解为它给你想要的物体加上包围盒(球,柱,等等),然后场景模型的包围盒进行检测,VEGA默认会给导入的模型一个“体”,即包围盒。不过据相关文献和VEGA的帮助手册看,似乎其自身并未实现两个体之间的检测,在实际上,用自带的VOLUME 方法给观察者加上一个某种类型包围盒(球,柱等)的VOLUME,然后和其他体进行检测好像也没有成功。所以前面的那几种方法的实质,还是,线段和三角面的相交求解问题。

以上是我个人的理解,有的是猜测,不知道对不对?请大虾指正。

最近VR访客

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-5-17 11:47 PM

返回顶部