游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2832|回复: 6

怎样获得一个Entity的交点?

[复制链接]

4

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2007-6-26 11:43:00 | 显示全部楼层 |阅读模式
连续三天都不得其解~~
不知道各位前辈有没有遇到过这种问题,或者是有其它解决办法,还望赐教!

13

主题

90

帖子

96

积分

注册会员

Rank: 2

积分
96
发表于 2007-6-26 12:34:00 | 显示全部楼层

Re: 怎样获得一个Entity的交点?

你所说的“交点”是什么意思?

4

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2007-6-26 12:50:00 | 显示全部楼层

Re: Re: 怎样获得一个Entity的交点?

ArenAK: Re: 怎样获得一个Entity的交点?

你所说的“交点”是什么意思?

就像terrain一例中摄像机获得与地面的交点,目的是为了让摄像机紧贴地面.

13

主题

90

帖子

96

积分

注册会员

Rank: 2

积分
96
发表于 2007-6-26 15:27:00 | 显示全部楼层

Re: 怎样获得一个Entity的交点?

一般你最好把这样做目的写出来,这样别人才能很明确。

你求交点是求什么跟entity的交点,最好把亩地写出来就明确了。
不知道这些是不是你想要的:

        Ogre::RaySceneQuery *rsq = mSceneMgr->createRayQuery(Ray());
        Ogre::Vector3 _intersectPoint;


        rsq->setRay(mCamera->getRealCamera()->getCameraToViewportRay(0.5, 0.5));
        RaySceneQueryResult& rsqResult = rsq->execute();
        RaySceneQueryResult::iterator ri = rsqResult.begin();
        while (ri != rsqResult.end())
        {
            RaySceneQueryResultEntry& res = *ri;
                        if(res.movable->getName() == Ogre::String("YourName"))
                        {
                                _intersectPoint = rsq->getRay().getPoint(res.distance);
                                break;
                        }
                        ++ri;
        }

4

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2007-6-26 17:31:00 | 显示全部楼层

Re: Re: 怎样获得一个Entity的交点?

ArenAK: Re: 怎样获得一个Entity的交点?

一般你最好把这样做目的写出来,这样别人才能很明确。

你求交点是求什么跟entity的交点,最好把亩地写出...

非常感谢ArenAK,我试过了,还是不能得到摄像机与Entity的交点,根据你提供的代码_intersect每次返回的好像是摄像机与Entity距离坐标.我想要得到摄像机与地面的交点(地面是一个Entity)

13

主题

90

帖子

96

积分

注册会员

Rank: 2

积分
96
发表于 2007-6-26 23:34:00 | 显示全部楼层

Re: 怎样获得一个Entity的交点?

用rayscenequery的办法得到的交点应该是射线与Entity的包围盒的交点,并不是与entity的交点,所以你认为是"距离".

看来你需要精确的交点,那属于碰撞检测的范畴,Ogre不负责处理这个.
碰撞检测库才会去做这样的工作,如opcode,ode是部分Ogre使用着采用的.可以找到OgreOpcode,OgreOde的下载.

4

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2007-6-27 00:11:00 | 显示全部楼层

Re: Re: 怎样获得一个Entity的交点?

ArenAK: Re: 怎样获得一个Entity的交点?

用rayscenequery的办法得到的交点应该是射线与Entity的包围盒的交点,并不是与entity的交点,所以你认为是&qu...

看来我以前的努力白费了,谢谢ArenAK给我指明了方向,以后还请多多关照!  [em5]
我知道用DX可以实现这一点.再融合到OGRE太麻烦,但不知道采用物理引擎好还是直接用DX写代码好?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 00:45

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表