再继续问个ogre游戏引擎的问题,希望这次有高人相助

Ginie 2012-09-10 10:56:29
我原先通过irrlicht引擎实现过,记得irrlicht里有一个方法是getTarget,返回camera看到的那个点,我通过算法把这个点拉近,一直固定在前方的某一段距离里,代码如下


camtar = camera->getTarget();

campos = camera->getPosition();

float length = sqrt(pow(camtar.X-campos.X,2)+pow(camtar.Y-campos.Y,2)+pow(camtar.Z-campos.Z,2));

vector3df HandPos;

HandPos.X = ((camtar.X-campos.X)*30/length)+campos.X;

HandPos.Y = ((camtar.Y-campos.Y)*30/length)+campos.Y;

HandPos.Z = ((camtar.Z-campos.Z)*30/length)+campos.Z;

Hand_Node.irr_node->setPosition(HandPos);


这个可以实现,但是现在要用ogre实现,我就想到了射线,它好像也是与看到的地方交汇,我就试着写了下面的代码,可是发现不是这样的,它没有按着鼠标的轨迹走,模型的座标有点乱,代码如下


Vector3 v;

float length = sqrt(pow(itr->worldFragment->singleIntersection.x-mCamera->getPosition().x,2)+pow(itr->worldFragment->singleIntersection.y-mCamera->getPosition().y,2)+pow(itr->worldFragment->singleIntersection.x-mCamera->getPosition().z,2));

v.x = ((itr->worldFragment->singleIntersection.x-mCamera->getPosition().x)*30/length)+mCamera->getPosition().x;

v.y = ((itr->worldFragment->singleIntersection.y-mCamera->getPosition().y)*30/length)+mCamera->getPosition().y;

v.z = ((itr->worldFragment->singleIntersection.x-mCamera->getPosition().z)*30/length)+mCamera->getPosition().z;

mCurrentObject->setPosition(v);

// cout<<"源座标"<<itr->worldFragment->singleIntersection<<endl;

// cout<<"更新后的座标"<<v<<endl;

cout<<"Distence="<<itr->distance<<endl;

cout<<"new Distence ="<<length<<endl;


开始我想用itr->distance获取到交点与camera之间的距离,就是上面的length,可是打印出itr->distance和自己计算的length发现两者不一样,请大侠们帮帮忙,谢谢了,或是有什么更快的代码方法可以实现这种功能,我现在就是想要控制一个手的模型,控制方法是用鼠标,移到哪它就走到哪,谢谢了

...全文
103 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ginie 2012-09-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

3D图像引擎,我感觉前途很光明啊,ORGE又不是只能做游戏啊。
上次有猎头找我就要对这个很熟,可我只研究过一点点。悲剧啊
[/Quote]
感觉做这方面的真不多,可能opengl的会多点,但是现在发展出了挺多好的3D引擎,公司要求,只能压着自己学了,多门技术防身
傻X 2012-09-13
  • 打赏
  • 举报
回复
3D图像引擎,我感觉前途很光明啊,ORGE又不是只能做游戏啊。
上次有猎头找我就要对这个很熟,可我只研究过一点点。悲剧啊
Ginie 2012-09-12
  • 打赏
  • 举报
回复
算了,自己想办法解决了,崩溃啊,来人拿分
Ginie 2012-09-11
  • 打赏
  • 举报
回复
Ginie 2012-09-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

又见 衣衣 啊
帮顶下,MFC区玩OPENGL的就少,OGRE的就更少了
[/Quote]
是啊,搞的我相当郁闷,对游戏这块完全不知道,该死的老总,非得把我这个搞嵌入式的弄的去搞游戏开发,这不折磨我么,蛋疼的要命。
傻X 2012-09-10
  • 打赏
  • 举报
回复
又见 衣衣 啊
帮顶下,MFC区玩OPENGL的就少,OGRE的就更少了

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧