游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6792|回复: 20

场景的改变与鼠标的拾取(请教)

[复制链接]

6

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
QQ
发表于 2005-8-8 12:01:00 | 显示全部楼层 |阅读模式
做鼠标的拾取的时候,我是参考pick来做的,Gameres上的历来贴子我也看过了,但还是无法解决这个问题,所以在此提出来,希望大家能指点一二。
我觉得我的程序中拾取部分应该没错,问题是场景与射线出发点。

现在无论我把场景变大变小左移右移,结果总是:鼠标在视窗右下角点击刚检测出射线与场景相交(即使视窗右下角没有场景);鼠标在其它地方点击,检测结果总是不相交(即使场景就在那里)。

好像场景的改变不会影响拾取结果,这令我非常头痛!

8

主题

182

帖子

268

积分

中级会员

Rank: 3Rank: 3

积分
268
发表于 2005-8-8 14:13:00 | 显示全部楼层

Re: 场景的改变与鼠标的拾取(请教)

你是怎样改变场景的?通过矩阵?那么拾取时也要把应用到场景上的矩阵考虑进去。

6

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
QQ
 楼主| 发表于 2005-8-8 14:41:00 | 显示全部楼层

Re:场景的改变与鼠标的拾取(请教)

是通过矩阵。你说的我也考虑到了,但是不知道如何把那个矩阵“考虑”进去;在整个拾取过程中,好像都没有与矩阵相关的东西!

8

主题

182

帖子

268

积分

中级会员

Rank: 3Rank: 3

积分
268
发表于 2005-8-8 15:06:00 | 显示全部楼层

Re:场景的改变与鼠标的拾取(请教)

把施加到场景的世界矩阵反一下,然后把从鼠标算出来的两个点用这个反矩阵算一下,再拾取,应该就可以了。

8

主题

182

帖子

268

积分

中级会员

Rank: 3Rank: 3

积分
268
发表于 2005-8-8 15:46:00 | 显示全部楼层

Re: 场景的改变与鼠标的拾取(请教)

代码传上来看看。

6

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
QQ
 楼主| 发表于 2005-8-8 16:07:00 | 显示全部楼层

Re: 场景的改变与鼠标的拾取(请教)

一次压缩太大了,论坛不让上转,
所以我把它分三次压缩,呆会你把它们解压到同一目录下就好了

sf_20058816655.rar

650.64 KB, 下载次数:

6

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
QQ
 楼主| 发表于 2005-8-8 16:09:00 | 显示全部楼层

Re: 场景的改变与鼠标的拾取(请教)

第二个

sf_20058816921.rar

605.32 KB, 下载次数:

6

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
QQ
 楼主| 发表于 2005-8-8 16:11:00 | 显示全部楼层

Re: 场景的改变与鼠标的拾取(请教)

最后一个

sf_200588161054.rar

581.9 KB, 下载次数:

8

主题

182

帖子

268

积分

中级会员

Rank: 3Rank: 3

积分
268
发表于 2005-8-8 17:53:00 | 显示全部楼层

Re:场景的改变与鼠标的拾取(请教)


                        m_viewPt.x=(((2.0f * pt->x)/m_d3dsdBackBuffer.Width) -1)/m_ProjMatrix._11;
                        m_viewPt.y=-(((2.0f * pt->y)/m_d3dsdBackBuffer.Height) -1)/m_ProjMatrix._22;
                        m_viewPt.z=1.0f;
注意编译警告。

                        m_world.x=m_viewPt.x * m_ViewMatrix._11 + m_viewPt.y * m_ViewMatrix._21 + m_viewPt.z * m_ViewMatrix._31;
                        m_world.y=m_viewPt.x * m_ViewMatrix._12 + m_viewPt.y * m_ViewMatrix._22 + m_viewPt.z * m_ViewMatrix._32;
                        m_world.z=m_viewPt.x * m_ViewMatrix._13 + m_viewPt.y * m_ViewMatrix._23 + m_viewPt.z * m_ViewMatrix._33;
        仔细检查代码。

6

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
QQ
 楼主| 发表于 2005-8-8 20:13:00 | 显示全部楼层

Re:场景的改变与鼠标的拾取(请教)

我的天啊!!!!
hugp1973 师兄(请允许我这样称呼你),你真是我的偶像啊,我对你的敬仰有如滔滔江水,绵绵不绝!!!!!!!!!!!!

谢谢了!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-26 19:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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