Camera::getCameraToViewportRay 应用的白痴错误。

我弄了一周多,烦死了,最后找出来发现太白痴,太丢人了。 不过,好歹弄了一周多,记录一下。

错误代码行如下:

Ogre::Ray mouseRay = m_Camera->getCameraToViewportRay(mousePt.x/width, mousePt.y/height);

这行代码得出了的Ray总是向着左上方严重偏离。

但是,这行代码我在另一个工程里面用过没数次了。不可能错。

反正研究了各种启动配置,今天已经开始看OGRE源码,了解平截头体矩阵相乘什么的了。

然后,我灵机一动⊙﹏⊙b汗。

上次的项目用的是QT的GUI,所以鼠标点定义为 Ogre::Vector2 mousePt;

但是这次是MFC的ATL,所以鼠标点和宽高定义为 :

POINT mousePt;
int width,height;


POINT的定义如下:

typedef struct tagPOINT
{
    LONG  x;
    LONG  y;
} POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;

所以杯具了……

修改成如下代码:

 

 Ogre::Ray mouseRay = m_Camera->getCameraToViewportRay(
  (double)mousePt.x/(double)width, (double)mousePt.y/(double)height);

丢人,面壁反省去了委屈

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值