我要发帖 回复

正式会员

8

主题

43

积分

0

专家分

:

私信
发表时间 : 2007-11-12 20:41:39 | 浏览 : 2242    评论 : 14
看了vega的例子,也在论坛找了不少贴子,但是对碰撞检测还是弄不明白,不知道碰撞检测信息该如何返回,最后碰撞响应的代码该在哪写,谁会,帮帮忙哦。谢谢

最近VR访客

tan_dunming 评论于2007-11-13 18:48:21
在Vega中新建一个碰撞检测的矢量“catchIsector”,设置其碰撞检测方法为“BUMP”,即在碰撞检测的矢量的X、Y、Z三个方向均作检测。碰撞检测的矢量的结果为返回被检测的对象(在Result面板中选中Objects选项。)。碰撞检测矢量“catchIsector”的Isector Class为Special Object1,对应的Value为0x1000000。碰撞检测矢量“catchIsector”的具体的设置见下图:
此外还需要设置被检测物体“catchObject”的Isector Class为Special Object1,对应的Value为0x1000000。因为碰撞检测的矢量与对象的Isector Class要求有至少一位(Bit)相同。

接下来就可以在程序中查询碰撞检测的结果,并根据结果使用Vega API完成相应的碰撞相应。代码如下:
vgIsector* isector = vgFindIsect("catchIsector ");
char collisionObjectName[MAXSIZE];
bool collisionObjectstatus=false;
……
void checkcollision(vgPosition* currentPosition)
{       
        vgPos(isector, currentPosition);
        /* Calculate the intersection and store results */
        vgUpdate(isector);

catchedstatus = vgGetIsectResult( isector, VGIS_GETLOS, iresult );       
// get the LOS isector result
    vgObject* collisionObject= (vgObject*)vgGetIsectHitObj(isector, VGIS_GETOBJ);
    if(collisionObject)
        {
                collisionStatus=true;
vgGetName(collisionObject, collisionObjectName);
        }
}

评分

参与人数 1积分 +10 收起 理由
matrix2009 + 10 我很赞同

查看全部评分

tan_dunming 评论于2007-11-13 18:49:23
仅供参考,代码不全。
tan_dunming 评论于2007-11-13 18:50:20
再每帧刷新前后调用void checkcollision(vgPosition* currentPosition)
chentaodark 评论于2007-11-14 09:48:00
谢谢,太感谢了……
xiaoming630 评论于2007-11-16 21:34:20
你太厉害了
tan_dunming 评论于2007-11-16 22:22:28
对了我当时记得Vega的Lynx有个Bug,Isector的参数设置为浮点数,<1时没有效果,系统自动取成1了。但是用代码在程序中设置是有效的,具体的再试一下吧。如果需要碰撞检测的精度比较高的时候用得着。

[ 本帖最后由 tan_dunming 于 2007-11-16 10:23 PM 编辑 ]
追求卓越
chentaodark 评论于2007-11-18 09:03:28
谢谢,能不能加你QQ请教,我的QQ49766606
tan_dunming 评论于2007-11-18 10:10:18

碰撞检测的回复

两年前用过Vega,我现在不用了,有些东西所以也不是很清楚了,不过你想交流的话我就怕我也解决不了你的问题啊。呵呵!
多看一些资料吧,我也会和你联系的。
祝愿你早日解决问题;
追求卓越
yangwang21 评论于2008-4-21 21:43:28
I can try
nihongyin 评论于2008-4-23 13:54:10
版主人好啊!
ggw0122 评论于2011-4-13 22:39:37
学习了,谢谢
ggw0122 评论于2011-4-13 22:40:58
学习了,谢谢
begin 评论于2012-2-23 19:08:05
谢谢楼主的提问和二楼精彩的回答
lumengmeng 评论于2012-4-11 20:24:20
谢谢版主啊

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

GMT+8, 2021-4-21 09:26 PM

返回顶部