游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6845|回复: 21

关于pick拾取,再次发上我写的源代码,望指正!!!

[复制链接]

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2006-11-12 14:03:00 | 显示全部楼层 |阅读模式
我写了一个很简单的例子,就是拾取一个移动中的茶壶,没包围体,移动拾取已经没问题了,可是老问题还是没解决,那就是拾取的物体Y坐标方向有些偏差,点茶壶底一段空白也有反映,这个问题今天搞了我第二天了,不过有前辈的指引,我把移动过程中的拾取算是搞掂了,可是偏差问题还没解决,我再次把代码发上来,用的是很简单的封装还写了一部分注释,应该很容易读懂。望高人继续给予指点一二!!!!  拜托了!

sf_2006111214245.rar

14.03 KB, 下载次数:

3

主题

121

帖子

121

积分

注册会员

Rank: 2

积分
121
QQ
发表于 2006-11-12 19:46:00 | 显示全部楼层

Re:关于pick拾取,再次发上我写的源代码,望指正!!!

你的程序我没有看,
不过会有这个问题,可能是网格的实际顶点数据位置,与所显示在屏幕中的位置不相同(也就是顶点缓冲中的数据).
你所说的问题我以前也出现过,也是这样.

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2006-11-12 20:47:00 | 显示全部楼层

Re:关于pick拾取,再次发上我写的源代码,望指正!!!

可是微软的例子里面是丝毫都没有偏差,这怎么解释呢?当物体很远的时候,根本就难拾取啊

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2006-11-12 20:48:00 | 显示全部楼层

Re:关于pick拾取,再次发上我写的源代码,望指正!!!

我正在改装微软那个pick的例子,老虎已经被我该成茶壶了,正在慢慢简化,我一定要找到问题究竟出在哪里

3

主题

121

帖子

121

积分

注册会员

Rank: 2

积分
121
QQ
发表于 2006-11-12 20:52:00 | 显示全部楼层

Re:关于pick拾取,再次发上我写的源代码,望指正!!!

这正是问题的关键,这是一个网格与网格的不同,
也就是网格的质心的不同.

3

主题

121

帖子

121

积分

注册会员

Rank: 2

积分
121
QQ
发表于 2006-11-12 20:58:00 | 显示全部楼层

Re:关于pick拾取,再次发上我写的源代码,望指正!!!

这么说吧.
如果你的网格是一个立方体,质心在原点.
此时你不做任何的移动或旋转的话没有问题.
一但移动了或旋转了,就出问题了.
这是因为它只对顶点缓冲的数据有兴趣,移动后顶点缓冲的数据并没有变化,
只是世界空间坐标所发生的变化,此时就出问题了.

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2006-11-12 21:17:00 | 显示全部楼层

Re:关于pick拾取,再次发上我写的源代码,望指正!!!

我开始也这样认为,微软的pick的例子实际上是有bug的,老虎移动以后拾取就会出错
我 是看了nlo大侠回复在知道,平截头(0,0,0)发出的射线交上投影面的p点的射线是要做进一步的世界网格物矩阵的逆矩阵变换的,这样物体发生位移也能被拾取,并且没有偏差

http://www.mvps.org/directx/articles/improved_ray_picking.htm

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2006-11-12 21:21:00 | 显示全部楼层

Re:关于pick拾取,再次发上我写的源代码,望指正!!!

这些已经被论证了的,我的例子也是能取得位移之中的网格物,而且不需要包围体做辅助,里面就用到了上面个网站的例子里面的 “空间坐标逆矩阵” 变换技术,可是偏差还是有,即使不移动,放在原点上不做任何的变换也还是有,这是我最郁闷的。

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2006-11-12 21:25:00 | 显示全部楼层

Re:关于pick拾取,再次发上我写的源代码,望指正!!!

很希望大家能一起研究研究,拾取技术太重要了。这个论坛对于这此主题好像也没有一个最终的解决方案,如果偏差问题解决了,才是完美的

3

主题

121

帖子

121

积分

注册会员

Rank: 2

积分
121
QQ
发表于 2006-11-12 21:32:00 | 显示全部楼层

Re:关于pick拾取,再次发上我写的源代码,望指正!!!

我现在正做国际象棋,现已到完善人工智能的部分.
当然对于拾取是非常精确的.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 20:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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